Connexion android et serveur web php

Résolu
cs_lila22 Messages postés 7 Date d'inscription jeudi 3 mai 2012 Statut Membre Dernière intervention 28 mai 2012 - 3 mai 2012 à 21:36
souraya16 Messages postés 1 Date d'inscription mardi 3 mai 2016 Statut Membre Dernière intervention 3 mai 2016 - 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.

15 réponses

Utilisateur anonyme
5 mai 2012 à 01:09
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.)
0
cs_lila22 Messages postés 7 Date d'inscription jeudi 3 mai 2012 Statut Membre Dernière intervention 28 mai 2012
5 mai 2012 à 01:16
salut,
le message provient d'android , au niveau de la connexion android/web
je vous remercie.
0
Utilisateur anonyme
5 mai 2012 à 22:47
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.)
0
cs_lila22 Messages postés 7 Date d'inscription jeudi 3 mai 2012 Statut Membre Dernière intervention 28 mai 2012
5 mai 2012 à 23:12
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 .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
karaminfo Messages postés 14 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 6 octobre 2012
6 mai 2012 à 17:07
- Utiliser localhost 10.0.2.2
et ajouter ce ligne dans le fichier AndroidManifest:
0
cs_lila22 Messages postés 7 Date d'inscription jeudi 3 mai 2012 Statut Membre Dernière intervention 28 mai 2012
6 mai 2012 à 17:28
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 .
0
karaminfo Messages postés 14 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 6 octobre 2012
6 mai 2012 à 20:12
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
0
cs_lila22 Messages postés 7 Date d'inscription jeudi 3 mai 2012 Statut Membre Dernière intervention 28 mai 2012
6 mai 2012 à 20:54
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.
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
9 mai 2012 à 09:32
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...
0
cs_lila22 Messages postés 7 Date d'inscription jeudi 3 mai 2012 Statut Membre Dernière intervention 28 mai 2012
10 mai 2012 à 15:54
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.
0
Utilisateur anonyme
28 mai 2012 à 23:01
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.)
0
cs_lila22 Messages postés 7 Date d'inscription jeudi 3 mai 2012 Statut Membre Dernière intervention 28 mai 2012
28 mai 2012 à 23:28
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.
0
souraya16 Messages postés 1 Date d'inscription mardi 3 mai 2016 Statut Membre Dernière intervention 3 mai 2016
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
0
lezj Messages postés 66 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 juillet 2013
10 août 2012 à 19:38
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
0
Utilisateur anonyme
28 août 2012 à 18:49
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.
0
lezj Messages postés 66 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 juillet 2013
28 août 2012 à 20:32
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
0
Rejoignez-nous