Aller au contenu

Problème de récupération d'informations database


Mister S

Recommended Posts

Bonjour tout le monde !

Je viens vous demander un peu d'aide car j'ai un petit soucis.

 

L'énoncé est assez simple, j'ai une application android ou s'enregistre des utilisateurs. Les informations des utilisateurs sont ensuite envoyés sur un fichier php pour que celui-ci me créé l'utilisateur dans une base de données en MySQL.

 

Une fois l'utilisateur crée dans la database, l'utilisateur peut se connecter. Lorsqu'il essaye de se connecter, un autre fichier php hébergé sur mon serveur va vérifier que les données fournises existe bien dans la database afin d'autoriser, ou non, la connexion. Le problème vient malheureusement de là, dans tous les cas, la connexion est refusé alors que les données de l'utilisateurs ont bel et bien été créé dans la database.

 

Afin de vérifier les identifiants de l'utilisateur j'ai utilisé les JSONObject, concept dont je ne suis pas super à l'aise, je pense donc que le problème vient peut-être de là mais j'ai du mal l'identifier.

        protected User doInBackground(Void... params) {
            ArrayList<NameValuePair> dataToSend = new ArrayList<>();
            dataToSend.add(new BasicNameValuePair("username", user.username));
            dataToSend.add(new BasicNameValuePair("password", user.password));

            HttpParams httpRequestParams = new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT);
            HttpConnectionParams.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT);

            HttpClient client = new DefaultHttpClient(httpRequestParams);
            HttpPost post = new HttpPost(SERVER_ADDRESS + "LoginRegister/fetchUserData.php");


            User returnedUser = null;

            try {
                post.setEntity(new UrlEncodedFormEntity(dataToSend));
                HttpResponse httpResponse = client.execute(post);

                HttpEntity entity = httpResponse.getEntity();
                String result = EntityUtils.toString(entity);
                JSONObject jObject = new JSONObject(result);

                if(jObject.length() != 0){
                    user = null;
                } else {
                    String name = jObject.getString("name");
                    int age = jObject.getInt("age");

                    returnedUser = new User(name, age, user.username, user.password);
                }

            } catch (Exception e){
                e.printStackTrace();
            }

            return returnedUser;
        }

Voyez-vous quelque chose pouvant être la source de mon problème ?

Je me permets aussi, du coup, de vous partager mon fetchUserData.php, sait-on jamais.

<?php
    $con=mysqli_connect("localhost","root","XXXX","XXXX");
     
    $username = $_POST["username"];
    $password = $_POST["password"];
         
    $statement = mysqli_prepare($con, "SELECT * FROM user WHERE username = ? AND password =?");
    mysqli_stmt_bind_param($statement, "ss", $username, $password);
    mysqli_stmt_execute($statement);
     
    mysqli_stmt_store_result($statement);
    mysqli_stmt_bind_result($statement, $user_id, $name, $age, $username, $password);
     
    $user = array();
     
    while(mysqli_stmt_fetch($statement)){
        $user[name] = $name;
        $user[age] = $age;
        $user[username] = $username;
        $user[password] = $password;
    }
     
    echo json_encode($user);
     
    mysqli_stmt_close($statement);
     
    mysqli_close($con);
?>

Mon serveur et ma base de données sont tous les deux hébergé grâce à Wamp et administré via phpmyadmin. Mon application quand à elle tourne sous API21.

Merci d'avoir prit le temps de lire mon post !

Modifié par Mister S
Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...