Connexion android et serveur web php [Résolu]

cs_lila22 7 Messages postés jeudi 3 mai 2012Date d'inscription 28 mai 2012 Dernière intervention - 3 mai 2012 à 21:36 - Dernière réponse : souraya16 1 Messages postés mardi 3 mai 2016Date d'inscription 3 mai 2016 Dernière intervention
- 3 mai 2016 à 12:48
salut,
je prépare un projet de fin d'étude qui s'intitule " application web orienté mobile" mais je trouve des difficulté , j'arrive pas à établir la connexion entre l'application mobile(android) et un serveur web php. mon projet est doté d'une interface authentification (login +mot passe) sous android et il faut que je vérifié l’existence (login+mot de passe) via une BD phpmyadmin . j'ai essayer déjà des tutoriaux mais j'avais tjrs un mes d'erreur qui s'affiche( "Couldn't establish a connection")
merci pour votre attention.
Afficher la suite 

Votre réponse

16 réponses

Utilisateur anonyme - 5 mai 2012 à 01:09
0
Merci
Quelle est l'origine de ce message ? Il provient d'Android (connexion Android/web) ou de ton serveur web (connexion serveur web/BDD qui coince) ?


--
Pylouq
(Lire le Réglement n'a jamais tué personne, au pire ça a instruit des gens.)
Commenter la réponse de Utilisateur anonyme
cs_lila22 7 Messages postés jeudi 3 mai 2012Date d'inscription 28 mai 2012 Dernière intervention - 5 mai 2012 à 01:16
0
Merci
salut,
le message provient d'android , au niveau de la connexion android/web
je vous remercie.
Commenter la réponse de cs_lila22
Utilisateur anonyme - 5 mai 2012 à 22:47
0
Merci
Visiblement tu n'arrives pas à communiquer avec le serveur à partir du smartphone. Tes paramètres réseaux sont bine configurés ?

--
Pylouq
(Lire le Réglement n'a jamais tué personne, au pire ça a instruit des gens.)
Commenter la réponse de Utilisateur anonyme
cs_lila22 7 Messages postés jeudi 3 mai 2012Date d'inscription 28 mai 2012 Dernière intervention - 5 mai 2012 à 23:12
0
Merci
Bonsoir,
j'ai rencontré un autre problème pendant l’exécution de mon projet voici une portion de mon code (pour accéder à la page php dans wampserver)
///////////////////////////////////////////
String response = null;
try {
//response = CustemHttpClient.executeHttpPost("http://engiguide.com/check.php", postParameters);
response = CustemHttpClient.executeHttpPost("http://192.168.2.2/projet/check2.php", postParameters);
String res=response.toString();
// res = res.trim();
res= res.replaceAll("\\s+","");
//error.setText(res);
if(res.equals("1"))
error.setText("Correct Username or Password");
else
error.setText("Sorry!! Incorrect Username or Password");

} catch (Exception e) {

un.setText(e.toString());
}
//////////////////////////////////////
l'erreur qui s'affiche(org.appache.http.conn.HttpHostConnectException: connection to http//:localhost refusé)

et si je remplace localhost par 127.0.0.1 et 10.0.2.2 et même parfois avec 10.0.2.2:8080 et meme par adresse ip de mon pc j'ai une autre erreur qui s'affiche dans mon emulateur :
java.net.sockettimeoutexception socket is not connected
et aussi activity monprojet (in application monprojet) is not reponding

je vous remercie .
Commenter la réponse de cs_lila22
karaminfo 14 Messages postés mercredi 28 octobre 2009Date d'inscription 6 octobre 2012 Dernière intervention - 6 mai 2012 à 17:07
0
Merci
- Utiliser localhost 10.0.2.2
et ajouter ce ligne dans le fichier AndroidManifest:
Commenter la réponse de karaminfo
cs_lila22 7 Messages postés jeudi 3 mai 2012Date d'inscription 28 mai 2012 Dernière intervention - 6 mai 2012 à 17:28
0
Merci
salut,
j'ai fait déjà cette ligne ,mais j'ai trouvé l'erreur , il faut que j'ajoute le driver de mysql (mysql_connector_jar), j'ai pu faire la connexion mais quand je saisi le login et le mot de passe j'ai toujours un message d'erreur (error.setText("Sorry!! Incorrect Username or Password"); ) malgré le mot de passe que je saisi est valide dans ma base de donnée .
voici le code php:
<?php
if (isset($_POST['username'])&& (isset($_POST['password']))) {
$un=$_POST['username'];
$pw=$_POST['password'];
//connect to the db
$user = 'root';
$pswd = '';
$db = 'database';

$conn = mysql_connect('localhost', $user, $pswd);
if($conn==true){
echo "connexion au serveur est etablie";
}
$base =mysql_select_db($db, $conn);
if($base==true){
echo "connexion à la base de donnée est etablie";
}

//run the query to search for the username and password the match
$query "SELECT * FROM auth_table WHERE username '$un' AND password = '$pw'";
$result = mysql_query($query) or die("Unable to verify user because : " . mysql_error());
//this is where the actual verification happens
if(mysql_num_rows($result)){
echo 1;} // for correct login response
else {
echo 0; // for incorrect login response
}
}
?>
je me suis dit que peut etre mon code php ne récupere pas les données (mot de passe et login).
je vous remercie .
Commenter la réponse de cs_lila22
karaminfo 14 Messages postés mercredi 28 octobre 2009Date d'inscription 6 octobre 2012 Dernière intervention - 6 mai 2012 à 20:12
0
Merci
salut,


il faut que j'ajoute le driver de mysql (mysql_connector_jar)


driver Mysql!!!!
y'a pas de driver Mysql en android.
c'est pa la pein de l'installer pour etablir une connexion avec base de donnée Mysql
Commenter la réponse de karaminfo
cs_lila22 7 Messages postés jeudi 3 mai 2012Date d'inscription 28 mai 2012 Dernière intervention - 6 mai 2012 à 20:54
0
Merci
salut,
donc comment faire?, mais quand j'ai le mysql_connect_jar presque le problème est réglé, juste que j'ai toujours le message qui me dit "Sorry!! Incorrect Username or Password" malgré je saisi le mot de passe juste
merci.
Commenter la réponse de cs_lila22
BunoCS 14181 Messages postés lundi 11 juillet 2005Date d'inscription 23 octobre 2018 Dernière intervention - 9 mai 2012 à 09:32
0
Merci
HEllo,
Peut-être que le problème vient du code PHP...
Essaie de voir avec Wireshark les données que tu envoies.


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
cs_lila22 7 Messages postés jeudi 3 mai 2012Date d'inscription 28 mai 2012 Dernière intervention - 10 mai 2012 à 15:54
0
Merci
salut,
je vous remercie tous pour vous répense ,mais j'ai pas encore résolu mon problème , j'utilise le dreamweaver et pour serveur web c'est le wampserver voici mon code php , je ne trouve pas l'erreur


<?php  
if (isset($_POST['username'])&& (isset($_POST['password']))) { 
$un=$_POST['username'];   
$pw=$_POST['password'];   
//connect to the db   
$user = 'root';   
$pswd = '';   
$db = 'database';   
 
$conn = mysql_connect('localhost', $user, $pswd);   
if($conn==true){
echo "connexion au serveur est etablie";
}
else echo "connexion au serveur n'est pas etablie"; 
$base =mysql_select_db($db, $conn);   
if($base==true){
echo "connexion à la base de donnée est etablie";
}else echo "connexion à la base de donnée n'est pas etablie";
 
//run the query to search for the username and password the match   
$query "SELECT * FROM auth_table WHERE username '$un' AND password = '$pw'";   
$result = mysql_query($query) or die("Unable to verify user because : " . mysql_error());   


//this is where the actual verification happens   
if(mysql_num_rows($result)){  

echo 1;}  // for correct login response   
else { 
echo 0; // for incorrect login response  
 }
}
?>



les echo qui vont etre traduit dans mon code android c'est selon le echo qui va etre afficher que j'aurais ma réponse , et le problème c'est que j'ai toujours le 2eme echo qui s'affiche (echo 0) (qui va etre traduit en erreur(sorry!!mot de passe et login incorrecte)

je vous remercie encore une autre fois.
Commenter la réponse de cs_lila22
Utilisateur anonyme - 28 mai 2012 à 23:01
0
Merci
Si tu fais un echo de 0, c'est parce que ton mysql_num_rows retourne quelque chose de faux. Par exemple, ton mysql_nuw_rows($result) doit renvoyer 0. Et pour ça, ta requêtes SQL query ne retourne aucun résultat. Vérifie si elle est bonne et redis nous ce qu'il en est.

--
Pylouq
(Lire le Réglement n'a jamais tué personne, au pire ça a instruit des gens.)
Commenter la réponse de Utilisateur anonyme
cs_lila22 7 Messages postés jeudi 3 mai 2012Date d'inscription 28 mai 2012 Dernière intervention - 28 mai 2012 à 23:28
0
Merci
Bonsoir ,
Alors j'ai enfin résolu mon problème , et voila mon code pour ce qui veulent l'utiliser
<?php
$un = isset($_POST['username']) ? $_POST['username'] : '';
$pw = isset($_POST['password']) ? $_POST['password'] : '';
//connect to the db
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('algerietelecom', $conn);
$query "SELECT username,password FROM compte1 WHERE username '".$un."' AND password = '".$pw."'";
$result = mysql_query($query) or die("Unable to verify user because : " . mysql_error());
if(mysql_num_rows($result) > 0)
echo 1; // for correct login response
else
echo 0; // for incorrect login response
?>


et voici ma classe CustemHttpClient qui s'occupe de HTTP:

package com.example.login2;  
import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStreamReader;  
import java.net.URI;  
import java.util.ArrayList;  
import org.apache.http.HttpResponse;  
import org.apache.http.NameValuePair;  
import org.apache.http.client.HttpClient;  
import org.apache.http.client.entity.UrlEncodedFormEntity;  
import org.apache.http.client.methods.HttpGet;  
import org.apache.http.client.methods.HttpPost;  
import org.apache.http.conn.params.ConnManagerParams;  
import org.apache.http.impl.client.DefaultHttpClient;  
import org.apache.http.params.HttpConnectionParams;  
import org.apache.http.params.HttpParams;  
//
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

//


public class CustemHttpClient {  
/** The time it takes for our client to timeout */  
public static final int HTTP_TIMEOUT = 30 * 1000; // milliseconds  
/** Single instance of our HttpClient */  
private static HttpClient mHttpClient;  


/** 
* Get our single instance of our HttpClient object. 
* 
* @return an HttpClient object with connection parameters set 
*/  
private static HttpClient getHttpClient() {  
if (mHttpClient == null) {  
mHttpClient = new DefaultHttpClient();  
final HttpParams params = mHttpClient.getParams();  
HttpConnectionParams.setConnectionTimeout(params, HTTP_TIMEOUT);  
HttpConnectionParams.setSoTimeout(params, HTTP_TIMEOUT);  
ConnManagerParams.setTimeout(params, HTTP_TIMEOUT);  
}  
return mHttpClient;  
}  
/** 
* Performs an HTTP Post request to the specified url with the 
* specified parameters. 
* 
* @param url The web address to post the request to 
* @param postParameters The parameters to send via the request 
* @return The result of the request 
* @throws Exception 
*/  
public static String executeHttpPost(String url, ArrayList postParameters) throws Exception {  
BufferedReader in = null;  
try {  
HttpClient client = getHttpClient();  
HttpPost request = new HttpPost(url);  
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters);  
request.setEntity(formEntity);  
HttpResponse response = client.execute(request);  
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));  
StringBuffer sb = new StringBuffer("");  
String line = "";  
String NL = System.getProperty("line.separator");  
while ((line = in.readLine()) != null) {  
sb.append(line + NL);  
}  
in.close();  
String result = sb.toString();  
return result;  
} finally {  
if (in != null) {  
try {  
in.close();  
} catch (IOException e) {  
e.printStackTrace();  
}}}}  
public static String executeHttpGet(String url) throws Exception {  
BufferedReader in = null;  
try {  
HttpClient client = getHttpClient();  
HttpGet request = new HttpGet();  
request.setURI(new URI(url));  
HttpResponse response = client.execute(request);  
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));  
StringBuffer sb = new StringBuffer("");  
String line = "";  
String NL = System.getProperty("line.separator");  
while ((line = in.readLine()) != null) {  
sb.append(line + NL);  
}  
in.close();  
String result = sb.toString();  
return result;  
} finally {  
if (in != null) {  
try {  
in.close();  
} catch (IOException e) {  
e.printStackTrace();  
}}}}}  


et enfin la classe principale:

package com.example.login2;  
import java.util.ArrayList;  
import org.apache.http.NameValuePair;  
import org.apache.http.message.BasicNameValuePair;  
import android.app.Activity;  
import android.content.Intent;
import android.os.Bundle;  
import android.view.View;  
import android.widget.Button;  
import android.widget.EditText;  
import android.widget.TextView;  
  
public class login2 extends Activity {  
EditText un,pw;  
TextView error;  
Button ok;  
/** Called when the activity is first created. */  

public void onCreate(Bundle savedInstanceState) {  
super.onCreate(savedInstanceState);  
setContentView(R.layout.main);  
un=(EditText)findViewById(R.id.et_un);  
pw=(EditText)findViewById(R.id.et_pw);  
ok=(Button)findViewById(R.id.btn_login);  
error=(TextView)findViewById(R.id.tv_error);  
ok.setOnClickListener(new View.OnClickListener() {  
  

  
public void onClick(View v) {  

// TODO Auto-generated method stub  
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();  
postParameters.add(new BasicNameValuePair("username", un.getText().toString()));  
postParameters.add(new BasicNameValuePair("password", pw.getText().toString()));  
  
//String valid = "1";  
String response = null;  
try {  
//response = CustemHttpClient.executeHttpPost("http://engiguide.com/check.php", postParameters);  //Enetr Your remote PHP,ASP, Servlet file link  
response = CustemHttpClient.executeHttpPost("http://10.0.2.2/at/fin/check3.php", postParameters);//il faut donner le chemin de la page php 
String res=response.toString();  
error.setText("okkkk");  
res = res.trim();  
res= res.replaceAll("\\s+","");


error.setText(res);  

if(res.equals("1"))  
error.setText("Correct Username or Password");

else  

error.setText("Sorry!! Incorrect Username or Password");  

}
catch (Exception e) {  
  
//un.setText(e.toString()); 
error.setText("ereeeeeur");  
}}  

});  
}

}


je vous remercie pour toute vous repense et j’espère que mon code aide les gens qui cherche à faire la connexion.
souraya16 1 Messages postés mardi 3 mai 2016Date d'inscription 3 mai 2016 Dernière intervention - 3 mai 2016 à 12:48
Bonjour merci pour votre aide , j’ai un projet de fin d'étude je dois réaliser la connexion entre mon application android et un serveur web et je suis une débutante en android jai essayer de mettre le même code que vous avez mis mais je trouve des erreurs à ce niveau ::
setContentView(R.layout.main);
un=(EditText)findViewById(R.id.et_un);
pw=(EditText)findViewById(R.id.et_pw);
ok=(Button)findViewById(R.id.btn_login);
error=(TextView)findViewById(R.id.tv_error);

je crois que je dois ajouter un fichier ou quelques chose si vous pouvez m'aidez je crois que mon projet manque de quelques chose Merci
Commenter la réponse de cs_lila22
lezj 70 Messages postés samedi 14 août 2004Date d'inscription 5 juillet 2013 Dernière intervention - 10 août 2012 à 19:38
0
Merci
bonjour à tous,

j'ai le même problème à quelques nuances près.

en fait, j'essaie juste d'afficher les données envoyées depuis mon application android sur mon serveur web en local.

voici mon code coté android:
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        

        List nameValuePairs = new ArrayList(1);

        nameValuePairs.add(new BasicNameValuePair("Nom","Bennour"));
        nameValuePairs.add(new BasicNameValuePair("Prenom","Mohamed"));

        //http post
        try{
        	HttpClient httpclient = new DefaultHttpClient();
        	HttpPost httppost = new      
        			HttpPost("http://192.168.1.67/androServ.php");
        	httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        	HttpResponse response = httpclient.execute(httppost);
        	HttpEntity entity = response.getEntity();
        	InputStream is = entity.getContent();
        	Log.i("postData", response.getStatusLine().toString());
        }

        catch(Exception e)
        {
        	Log.e("log_tag", "Error in http connection "+e.toString());
        }
    }


et voici mon code coté PHP

<?php
if(isset($_POST) && !empty($_POST)){
extract($_POST);
echo $Nom." ".$Prenom;
}
else{
echo "les données ne sont pas arrivées";
}
?>


Note: l'adresse de mon ordinateur est 192.168.1.67
j'ai mis mon serveur wamp en mode online

Problème: lorsque je regarde dans le logCat j'ai ceci: HTTP/1.1 200 OK
donc je suppose que mes données sont bien envoyées et reçues mais le problème est que quand je lance la page web coté serveur, il me donne le message d'erreur selon lequel mes données ne sont pas parvenues au serveur. et donc il n'affiche rien.
Alors je vous demande si l'un d'entre vous saurait comment résoudre ce problème svp.
Merci bien.

Lez-J
Commenter la réponse de lezj
Utilisateur anonyme - 28 août 2012 à 18:49
0
Merci
Salut,

je lance la page web coté serveur


Tu veux dire quoi par là ?

--
Pylouq
Heureux sont ceux qui lisent le Réglement, ils ne finiront peut-être pas au bûcher.
Commenter la réponse de Utilisateur anonyme
lezj 70 Messages postés samedi 14 août 2004Date d'inscription 5 juillet 2013 Dernière intervention - 28 août 2012 à 20:32
0
Merci
bonjour a tous, alors j'avais résolu mon problème et j'en ai fait un tutoriel pour ceux que çà intéresserait de le voir la première partie est ici:
tutoriel d'envoi de données Android vers serveur distant


Lez-J
Commenter la réponse de lezj

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.