IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Authentification Android MySQL


Sujet :

Android

  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 77
    Par défaut Authentification Android MySQL
    Bonsoir à tous,

    je suis en train d'établir une connexion entre mon application android et ma base de données mysql. ci-dessous mon code source:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    package com.exemple.test; 
    import java.util.ArrayList;  
    import org.apache.http.NameValuePair;  
    import org.apache.http.message.BasicNameValuePair;  
    import android.view.View;  
    import android.widget.Button;  
    import android.widget.EditText;  
    import android.widget.TextView;  
    import android.app.Activity;
    import android.os.Bundle;
     
    public class TestActivity extends Activity {
     
    	EditText un,pw;  
    	TextView error;  
    	Button ok;  
    	/** Called when the activity is first created. */  
    	@Override  
    	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() {  
     
    	@Override  
     
    	public void onClick(View v) {  
    	// TODO Auto-generated method stub  
    	ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();  
    	postParameters.add(new BasicNameValuePair("ID_Candidat", un.getText().toString()));  
    	postParameters.add(new BasicNameValuePair("MP_candidat", pw.getText().toString()));  
     
    	//String valid = "1";  
    	String response = null;  
    	try {  
    	response = CustomHttpClient.executeHttpPost("http://10.0.2.2/mesRequetes/verifier.php", postParameters);  //Enetr Your remote PHP,ASP, Servlet file link  
    	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());  
    	}}  
    	});  
    	}}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     package com.exemple.test;
    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;
    public class CustomHttpClient {
     
    	/** 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 le code php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     < ?php
    $un=$_POST['ID_Candidat'];
    $pw=$_POST['MP_candidat'];
    //connect to the db
    $user = ‘root’;
    $pswd = ‘’;
    $db = ‘tmjob_db’;
    $conn = mysql_connect(‘localhost’, 'root', '');
    mysql_select_db($db, $conn);
    //run the query to search for the username and password the match
    $query = “SELECT * FROM candidat WHERE ID_Candidat = ‘$un’ AND MP_candidat = ‘$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) > 0)
    // ( $un == “ajay” && $pw == “ajay”)
    echo 1; // for correct login response
    else
    echo 0; // for incorrect login response
    ?>

    Le problème c'est au nvieau de "id" puisqu'on me souligne les lignes suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     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);
    Merci de m'aider

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Les views ont bien cet ID dans le fichier XML ?
    Si oui, essayez un "clean" du projet (des fois que le compilateur de resources se soit mélangé les pinceaux).

    Dans tous les cas, tu auras aussi un problême d'exception à l'éxecution (enfin sous 3.0+ mais c'est de toute manière prohibé): utilisation d'une connection internet depuis le thread UI (onClick).
    Si c'est antérieur à 3.0 pas d'exception, mais un probleme en cas de serveur lent (Application Not Responding), 30s de timeout n'y feront rien... D'ailleurs 30s c'est un peu limite pour internet, 2 minutes est en général plus approprié (ca laisse le temps à un programme tier d'établir la "vraie" connection internet si besoin, genre Tasker ou autres).

  3. #3
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 77
    Par défaut authentification android mysql
    Bonsoir,

    Le problème de l'ID est résolu. Néanmoins, l'émulateur ne m'affiche même pas mon application dans le menu des apps d'android Voici les erreurs affichées par la console:
    [2012-02-27 22:27:19 - Authentification] Failed to install Authentification.apk on device 'emulator-5554': timeout
    [2012-02-27 22:27:19 - Authentification] Launch canceled!

Discussions similaires

  1. Authentification Android / MySQL
    Par analystedodo dans le forum Android
    Réponses: 2
    Dernier message: 01/03/2012, 11h58
  2. Script d'authentification PHP / MySQL avec session
    Par king_soft dans le forum Langage
    Réponses: 6
    Dernier message: 09/07/2010, 15h00
  3. authentification flex mysql
    Par gasper06 dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 09/04/2009, 10h27
  4. authentification sur mysql
    Par SHERPAE dans le forum Requêtes
    Réponses: 8
    Dernier message: 05/12/2007, 12h22
  5. [MySQL] Authentification avec MYSQL ?
    Par Kenshin86 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 23/03/2007, 21h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo