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 :

Récupération des variables de page PHP dans le client Android


Sujet :

Android

Vue hybride

saturne2008 Récupération des variables de... 08/03/2010, 00h38
nicolofontana12 Mon ami Mohamed j'ai remplacé... 08/03/2010, 02h45
saturne2008 :lahola: ça fonctionne... 08/03/2010, 07h39
drmadder Oui mais.... 11/05/2010, 10h35
MrDuChnok Ce n'est pas comme ça qu'on... 11/05/2010, 10h41
drmadder Autre solution 16/05/2010, 18h56
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut Récupération des variables de page PHP dans le client Android
    Bonsoir


    Je veut récupérer le résultat retourné par ma page PHP dans mon programme client Android

    code page PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    $connexion=mysql_connect( "localhost" ,  "root"  ,  "" );
    mysql_select_db("maison");
    $requete="SELECT prenom FROM personne";
    $resultat=mysql_query($requete)or die(mysql_error());
    $personne=mysql_fetch_array($resultat); 
    ?>
     <?php 
    echo $personne['prenom'];
    ?>
    le code de mon client Android:
    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
    96
    97
     
    package com.saturne.externalDB;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
     
    public class Main extends Activity implements OnClickListener {
     
     
    	//  private static final String CLASSTAG = SimpleGet.class.getSimpleName();
     
    	    private EditText getInput;
    	    private TextView getOutput;
    	    private Button getButton;
     
    	    @Override
    	    public void onCreate(Bundle icicle) {
    	        super.onCreate(icicle);
    	        setContentView(R.layout.main);
     
    	        this.getInput = (EditText) findViewById(R.id.get_input);
    	        getInput.setText("http://192.168.1.4/S1.php");
    	        this.getOutput = (TextView) findViewById(R.id.get_output);
    	        this.getButton = (Button) findViewById(R.id.get_button);
     
    	        this.getButton.setOnClickListener(new OnClickListener() {
     
    	            public void onClick(View v) {
    	                getOutput.setText("");
    	                String output = getHttpResponse(getInput.getText().toString());
    	                if (output != null) {
    	                    getOutput.setText(output);
    	                }
    	            }
    	        });
    	    };
     
    	    /**
                 * Perform an HTTP GET with HttpUrlConnection.
                 * 
                 * @param location
                 * @return
                 */
    	    private String getHttpResponse(String location) {
    	        String result = null;
    	        URL url = null;
    	        // Log.d(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " location = " + location);
     
    	        try {
    	            url = new URL(location);
    	            //   Log.d(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " url = " + url);
    	        } catch (MalformedURLException e) {
    	        	//  Log.e(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " " + e.getMessage());
    	        }
     
    	        if (url != null) {
    	            try {
    	                HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
    	                BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
    	                String inputLine;
     
    	                int lineCount = 0; // limit the lines for the example
    	                while ((lineCount < 10) && ((inputLine = in.readLine()) != null)) {
    	                    lineCount++;
    	                    //  Log.v(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " inputLine = " + inputLine);
    	                    result += "\n" + inputLine;
    	                }
     
    	                in.close();
    	                urlConn.disconnect();
     
    	            } catch (IOException e) {
    	               // Log.e(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " " + e.getMessage());
    	            }
    	        } else {
    	        	//  Log.e(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " url NULL");
    	        }
    	        return result;
    	    }
     
    		public void onClick(View arg0) {
    			// TODO Auto-generated method stub
     
    		}
    	}
    le résultat dans l'émulateur est:


    Ma question est: ce null dans l'affichage d'où vient t-il?

    y'a t-il un autre moyen pour transmettre les informations ( les variables depuis la page PHP??)


  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Mon ami Mohamed j'ai remplacé ta methode getHttpReponse par cela :

    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
        private String getHttpResponse(String location) {
    	        String result = "";
    	        URL url = null;
    	        // Log.d(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " location = " + location);
     
    	        try {
    	            url = new URL(location);
    	            //   Log.d(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " url = " + url);
    	        } catch (MalformedURLException e) {
    	        	//  Log.e(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " " + e.getMessage());
    	        }
     
    	        if (url != null) {
    	            try {
    	                HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
    	                BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
    	                String inputLine;
     
    	                int lineCount = 0; // limit the lines for the example
    	                while ((lineCount < 10) && ((inputLine = in.readLine()) != null)) {
    	                    lineCount++;
    	                    //  Log.v(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " inputLine = " + inputLine);
    	                    result += "\n" + inputLine;
    	                }
     
    	                in.close();
    	                urlConn.disconnect();
     
    	            } catch (IOException e) {
    	               // Log.e(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " " + e.getMessage());
    	            }
    	        } else {
    	        	//  Log.e(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " url NULL");
    	        }
    	        return result;
    	    }

    Ceci resouds ton problème mais il y'a une autre facon plus meilleurs encore le voila :

    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
        private String getHttpResponse(String location) {
            StringBuffer result = new StringBuffer();
            URL url = null;
            // Log.d(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " location = " + location);
     
            try {
                url = new URL(location);
                //   Log.d(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " url = " + url);
            } catch (MalformedURLException e) {
            	//  Log.e(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " " + e.getMessage());
            }
     
            if (url != null) {
                try {
                    HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
                    BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
                    String inputLine;
     
                    int lineCount = 0; // limit the lines for the example
                    while ((lineCount < 10) && ((inputLine = in.readLine()) != null)) {
                        lineCount++;
                        //  Log.v(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " inputLine = " + inputLine);
     
                        result.append(inputLine);
                        //result += "\n" + inputLine;
                    }
     
                    in.close();
                    urlConn.disconnect();
     
                } catch (IOException e) {
                   // Log.e(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " " + e.getMessage());
                }
            } else {
            	//  Log.e(Constants.LOGTAG, " " + SimpleGet.CLASSTAG + " url NULL");
            }
            return result.toString();
        }


    Ton probleme c'est que tu ajoute des lignes à null, il fallait remplacer par "" pour ne pas avoir null avant Mohamed

    Une solution mieux adapté au lieu d'utiliser String [ taille statique] tu peux utiliser StringBuffer pour ajouter des nouvelles String c'est mieux et reposant pour le code.

    Il n'a pas de probleme dans le code php c'est juste dans la methode gethttpreponse(..);

    J'espere t'avoir bien aidé.

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Par défaut
    Citation Envoyé par jahbromo Voir le message

    Ton probleme c'est que tu ajoute des lignes à null, il fallait remplacer par "" pour ne pas avoir null avant Mohamed

    Une solution mieux adapté au lieu d'utiliser String [ taille statique] tu peux utiliser StringBuffer pour ajouter des nouvelles String c'est mieux et reposant pour le code.

    Il n'a pas de probleme dans le code php c'est juste dans la methode gethttpreponse(..);

    J'espere t'avoir bien aidé.



    ça fonctionne très bien la deuxième méthode avec StringBuffer :




    la première méthode: String result = ""; => elle efface le null, mais pas l'espace alloué lool

    jahbromo

  4. #4
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Par défaut Oui mais....
    J'ai suivi avec attention les solutions proposées (merci pour ça!) car j'ai un problème similaire.
    En utilisant le code suggéré j'arrive effectivement à afficher les caractères renvoyés en PHP.
    MAIS, si je compare la chaîne renvoyée avec une String, la comparaison ne fonctionne pas.

    code php:
    $OK = "OK";
    echo $OK;

    code java:
    String okString = "OK";
    String returnedMsgFromPHP;
    ...
    if (returnedMsgFromPHP == okString)
    codeA;
    else
    codeB;

    C'est code B qui est exécuté, bien que le debuggeur et l'affichage de returnedMsgFromPHP sur l'émulateur montre "OK".

    Je subodore un problème de hashcode mais n'arrive pas à le résoudre.
    Des suggestions ?
    Merci !
    Alain.

  5. #5
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Ce n'est pas comme ça qu'on fait une comparaison de chaine de caractères en Java.
    http://java.developpez.com/faq/java/...NG_comparaison

  6. #6
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Par défaut Autre solution
    Merci pour la référence.
    J'ai finalement trouvé une solution simple qui semble marcher:
    J'ai utilisé la fonction compareTo:

    if (returnedMsgFromPHP.compareTo(okString) == 0)

    à la place de:

    if (returnedMsgFromPHP == okString)

  7. #7
    Membre actif
    Inscrit en
    Mars 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 62
    Par défaut problem android (logcat)
    Citation Envoyé par MrDuChnok Voir le message
    Ce n'est pas comme ça qu'on fait une comparaison de chaine de caractères en Java.
    http://java.developpez.com/faq/java/...NG_comparaison
    salut

    j'ai essayé avec le même exemple de sature mais ca marche et j'ai fait pour vous une image imprime ecran de log cat
    svp si vous avez une idee aide moi
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 04/10/2007, 12h15
  2. [Tableaux] contenu page php dans variable
    Par Clorish dans le forum Langage
    Réponses: 10
    Dernier message: 06/06/2007, 12h13
  3. récupération des variables système dans pl/sql
    Par neqrouzbr dans le forum PL/SQL
    Réponses: 2
    Dernier message: 28/03/2007, 11h53

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