mister s | 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.
Code :
- 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.
Code :
- <?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 ! Message édité par mister s le 16-10-2015 à 07:15:50
|