Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur php android studio

Sujet résolu
    28 août 2016 à 19:15:42

    Bonjour,

    Un peu d'aide pour trouver l'erreur dans ce PHP ?

    Je m'arrache les cheveux dessus car il me retourne une erreur org.json.JSONException: Value <br><table of type java.lang.String cannot be converted to JSONObject dans Android studio.

    Merci d'avance.

    <?php
    
    $db = new PDD("mysql:host=xxxx.com;dbname=xxxx_data","xxxx_user","mdpxxxx");
    $results["error"] = false;
    $results["message"] = [];
    
    if(isset($_POST)){
    	
    	if(!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password2'])){
    
    		$pseudo = $_POST['pseudo'];
    		$email = $_POST['email'];
    		$password = $_POST['password'];
    		$pssword2 = $_POST['password2'];
    
    //Vérification du pseudo
    	if(strlen($pseudo) < 2 || !preg_match("/^[a-zA-Z0-9 _-]+$/", $pseudo) || strlen($pseudo) > 60){
    		$results['error'] = true;
    		$results['message']["pseudo"] = "Pseudo invalide";
    	}else{
    		$requete = $db->prepare("SELECT id FROM users WHERE pseudo = :pseudo");
    		$requete->execute([':pseudo' => $pseudo]);
    		$row = $requete->fetch();
    	if($row){
    		$results['error'] = true;
    		$results['message']["pseudo"] = "Le pseudo est déjà pris";
    			}
    		}
    
    //Vérification de l'email
    	if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
    		$results['error'] = true;
    		$results['message']["email"] = "Email invalide";
    	}else{
    		$requete = $db->prepare("SELECT id FROM users WHERE email = :email");
    		$requete->execute([':email' => $email]);
    		$row = $requete->fetch();
    	if($row){
    		$results['error'] = true;
    		$results['message']["email"] = "L'email existe déjà";
    			}
    		}
    
    // Vérification du password
    	if($password !== $password2){
    		$results ['error'] = true;
    		$results ['message']["password"] = "Les mots de passe doivent être identiques";
    	}
    
    	if($results["error"] === false){
    		$password = password_hash($password, PASSWORD_BCRYPT);
    
    //Insertion
    		sql = $db->prepare("INSERT INTO users(pseudo, email, password) VALUES (:pseudo, :email, :password)");
    		$sql->execute([":pseudo" => $pseudo, ":email" => $email, ":password" => $password]);
    				
    	if(!$sql){
    		$results['error'] = true;
    		$results['message'] = "Erreur lors de l'inscription";
    	}
    	
    	}else{
    		$results['error'] = true;
    		$results['message'] = "Veuillez remplir tout les champs";
    		}
    
    
    		echo json_encode($results);
    
    	}
    }
    
    ?>
    

    -
    Edité par Lech4tnoir 28 août 2016 à 19:16:19

    • Partager sur Facebook
    • Partager sur Twitter
      28 août 2016 à 20:13:02

      Bonjour,

      Essaye d'appeler ta page dans un navigateur avec les mêmes arguments passés par ton appli.
      A mon avis, PHP ajoute un message d'erreur au début de ta page avant ton JSON.

      -
      Edité par SteeveL 28 août 2016 à 20:13:24

      • Partager sur Facebook
      • Partager sur Twitter
        28 août 2016 à 21:00:41

        Apparemment j'aurais une erreur au niveau de la ligne 21. Mais comment le régler ?

        Parse error: syntax error, unexpected '[', expecting ')' in /home/axxxxx/public_html/register.php on line 21

        Merci

        -
        Edité par Lech4tnoir 28 août 2016 à 21:19:23

        • Partager sur Facebook
        • Partager sur Twitter
          29 août 2016 à 9:19:24

          Salut,

          Es-tu sûr de correctement utiliser la fonction execute ?

          Dans mes souvenirs, c'est plutôt quelque chose comme ça :

          $requete->execute(array('pseudo' => $pseudo));
          

          -
          Edité par rolandl 29 août 2016 à 9:19:33

          • Partager sur Facebook
          • Partager sur Twitter
            29 août 2016 à 12:47:18

            rolandl : Depuis php 5.4 on peut utiliser les 2 notations. array() ou []. Mais en effet, c'est un problème de version de php.

            De même pour password_hash et password_verify, il te faudra la version de php 5.5 minimum. Sachant qu'on en est actuellement à la version 7 ( dont les performances ont grandement été améliorée ), je ne peux que te conseillé de mettre à jour ta version de php ;)

            Au passage, la connexion à la base de donnée, c'est new PDO et non PDD. 

            Je te conseille de rajouter cette ligne juste en dessous de ta connexion pour voir tes erreurs qd tu testes côté php.

            $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);



            -
            Edité par IpProg 29 août 2016 à 12:50:11

            • Partager sur Facebook
            • Partager sur Twitter
              30 août 2016 à 23:59:49

              Bonsoir,

              Malgré votre aide et après avoir cherché, cherché, cherché... Je n'y arrive toujours pas.

              J'ai suivi vos conseils et je suis passé en PHP 7.0 sauf que j'ai le message suivant :

              {"error":false,"message":[]}

              Et mon code ressemble maintenant à ça :

              <?php
                
              $db = new PDO("mysql:host=xxx.com.mysql;dbname=xxx_com","xxx_com","MDPXXX");
              $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
              $results['error'] = false;
              $results['message'] = [];
                
              if(isset($_POST)){
                    
                  if(!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password2']))
                  {
                
                          $pseudo = $_POST['pseudo'];
                          $email = $_POST['email'];
                          $password = $_POST['password'];
                          $pssword2 = $_POST['password2'];
                
                          //Vérification du pseudo
                      if(strlen($pseudo) < 2 || !preg_match("/^[a-zA-Z0-9 _-]+$/", $pseudo) || strlen($pseudo) > 60)
                      {
                          $results['error'] = true;
                          $results['message']['pseudo'] = "Pseudo invalide";
                      }
                      else
                      {
                          $requete = $db->prepare("SELECT id FROM users WHERE pseudo = :pseudo");
                          $requete->execute([':pseudo' => $pseudo]);
                          $row = $requete->fetch();
                      if($row)
                      {
                          $results['error'] = true;
                          $results['message']['pseudo'] = "Le pseudo est déjà pris";
                      }
                      }
                
                          //Vérification de l'email
                      if(!filter_var($email, FILTER_VALIDATE_EMAIL))
                      {
                          $results['error'] = true;
                          $results['message']['email'] = "Email invalide";
                      }
                      else
                      {
                          $requete = $db->prepare("SELECT id FROM users WHERE email = :email");
                          $requete->execute([':email' => $email]);
                          $row = $requete->fetch();
                      if($row)
                      {
                          $results['error'] = true;
                          $results['message']['email'] = "L'email existe déjà";
                      }
                      }
                
                          // Vérification du password
                      if($password !== $password2)
                      {
                          $results ['error'] = true;
                          $results ['message']['password'] = "Les mots de passe doivent être identiques";
                      }
                      if($results['error'] === false)
                      {
                          $password = password_hash($password, PASSWORD_BCRYPT);
                
                          //Insertion
                          $sql = $db->prepare("INSERT INTO users(pseudo, email, password) VALUES (:pseudo, :email, :password)");
                          $sql->execute([":pseudo" => $pseudo, ":email" => $email, ":password" => $password]);
                                
                      if(!$sql)
                      {
                          $results['error'] = true;
                          $results['message'] = "Erreur lors de l'inscription";
                      }
                      }
                      else
                      {
                      $results['error'] = true;
                      $results['message'] = "Veuillez remplir tout les champs";
                      }
              
                  }
              }
                echo json_encode($results);
              ?>



              • Partager sur Facebook
              • Partager sur Twitter
                31 août 2016 à 0:05:14

                Ca semble cohérent. Fais-tu bien une requête POST ? Si oui, es-tu sûr de n'oublier aucun champ ?

                -
                Edité par rolandl 31 août 2016 à 0:05:54

                • Partager sur Facebook
                • Partager sur Twitter
                  31 août 2016 à 0:18:02

                  Honnêtement j'ai suivi un tuto sur YT donc je ne veux pas dire de bêtise mais j'ai bien l'impression d'utiliser du POST dans la JAVA CLASS qui s'appelle MyRequest.

                  package xxxx.xxxx.myrequest;
                  
                  import android.content.Context;
                  
                  import com.android.volley.AuthFailureError;
                  import com.android.volley.NetworkError;
                  import com.android.volley.Request;
                  import com.android.volley.RequestQueue;
                  import com.android.volley.Response;
                  import com.android.volley.VolleyError;
                  import com.android.volley.toolbox.StringRequest;
                  
                  import org.json.JSONException;
                  import org.json.JSONObject;
                  
                  import java.util.HashMap;
                  import java.util.Map;
                  
                  public class MyRequest {
                  
                      private Context context;
                      private RequestQueue queue;
                  
                      public MyRequest(Context context, RequestQueue queue)
                      {
                          this.context = context;
                          this.queue = queue;
                      }
                  
                      public void register(final String pseudo, final String email, final String password, final String password2, final RegisterCallBack callback){
                  
                      String url = "http://xxx.com/register.php";
                  
                      StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>()
                      {
                          @Override
                          public void onResponse(String response)
                          {
                  
                              Map<String, String> errors = new HashMap<>();
                  
                              try
                              {
                                  JSONObject json = new JSONObject(response);
                                  Boolean error = json.getBoolean("error");
                  
                                  if (!error)
                                  {
                                      callback.onSuccess("Vous êtes bien inscrit");
                                  }
                                  else
                                  {
                                      JSONObject messages = json.getJSONObject("message");
                                      if(messages.has("pseudo"))
                                      {
                                          errors.put("pseudo", messages.getString("pseudo"));
                                      }
                                      if(messages.has("email"))
                                      {
                                          errors.put("email", messages.getString("email"));
                                      }
                                      if(messages.has("password"))
                                      {
                                          errors.put("password", messages.getString("password"));
                                      }
                                      callback.inputErrors(errors);
                                  }
                              }
                              catch (JSONException e)
                              {
                                  e.printStackTrace();
                              }
                  
                          }
                      }
                  
                              ,new Response.ErrorListener()
                      {
                          @Override
                          public void onErrorResponse(VolleyError error)
                          {
                              if(error instanceof NetworkError)
                              {
                                  callback.onError("Impossible de se connecter");
                              }
                              else if(error instanceof VolleyError)
                              {
                                  callback.onError("Une erreur s'est produite");
                              }
                          }
                      })
                  
                      {
                          @Override
                          protected Map<String, String> getParams() throws AuthFailureError
                          {
                  
                             Map<String, String> map = new HashMap<>();
                              map.put("pseudo", pseudo);
                              map.put("email", email);
                              map.put("password", password);
                              map.put("password", password2);
                  
                              return map;
                          }
                      };
                  
                      queue.add(request);
                  
                      }
                  
                      public interface RegisterCallBack
                      {
                          void onSuccess(String message);
                          void inputErrors(Map<String, String> errors);
                          void onError(String message);
                      }
                  
                  }
                  



                  -
                  Edité par Lech4tnoir 31 août 2016 à 0:18:27

                  • Partager sur Facebook
                  • Partager sur Twitter
                    31 août 2016 à 0:41:09

                    Dans ta méthode getParams tu mets deux fois le paramètre password au lieu de mettre password et password.

                    Du coup, côté PHP toutes tes conditions ne sont pas remplies et tu ne rentres pas dans tes if.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      31 août 2016 à 1:06:28

                      Héhéhé Effectivement ça marche déjà mieux ! Tout ça pour un petit "2". Faut que j'arrête de bosser la dessus après les heures de boulots, ça aide pas...

                      En revanche j'ai de nouveau un problème de JSON.

                      org.json.JSONException: Value Veuillez remplir tout les champs at message of type java.lang.String cannot be converted to JSONObject

                      Ca vient donc bien du dernier else mal placer mais aucune idée de l'endroit ou je dois le mettre.

                      EDIT : Effectivement, le else... C'est mieux comme ça

                          }
                          else
                              {
                              $results['error'] = true;
                              $results['message'] = "Veuillez remplir tout les champs";
                              }
                      }
                        echo json_encode($results);
                      ?>


                      EDIT 2 : Il me reste juste un problème à régler avant de pouvoir poster le code complet fonctionnel et de mettre en résolu le sujet.

                      Lorsque je tape 2 mot de passe différents, je suis censé recevoir le message "Les mots de passe doivent être identiques" d'après ce morceau de code

                      // Vérification du password
                              if($password !== $password2)
                              {
                                  $results ['error'] = true;
                                  $results ['message']['password'] = "Les mots de passe doivent être identiques";
                              }
                              

                      Effectivement quand j'essaie de valider mon inscription avec deux MDP différent ça ne marche pas mais je ne reçois pas le message d'erreur.

                      -
                      Edité par Lech4tnoir 31 août 2016 à 1:53:41

                      • Partager sur Facebook
                      • Partager sur Twitter
                        31 août 2016 à 9:27:47

                        Salut, en haut de ton fichier php, quand tu récupères les variables, tu as aussi une erreur de syntaxe au niveau du password2 :

                        $pssword2 = $_POST['password2']; // Rajoute le a manquant et ton égalité devrait mieux fonctionner ;).

                        Après quand tu codes quelques choses comme ça, utilises Postman pour pouvoir tester facilement, ou alors, avec des parametres en durs pour la phase de test pour être sûr d'avoir la réponse que tu souhaites et du coup passer côté android en sachant que côté serveur ça fonctionne ;).

                        • Partager sur Facebook
                        • Partager sur Twitter
                          31 août 2016 à 16:29:56

                          - Effectivement le "a" avait été oublier, je l'avais corriger, mais je n'avais pas remonter l'info ici.

                          - Concernant "Postman", je ne sais pas utiliser ça :)

                          - Et pour finir, le message que j'obtiens maintenant est le suivant : {"error":true,"message":"Veuillez remplir tout les champs"}

                          Mon code actuel

                          <?php
                            
                          $db = new PDO("mysql:host=xxx.com;dbname=xxx_data","xxx_user","mdpxxx");
                          $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                          $results['error'] = false;
                          $results['message'] = [];
                            
                          if(isset($_POST)){
                                
                              if(!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password2']))
                              {
                            
                                      $pseudo = $_POST['pseudo'];
                                      $email = $_POST['email'];
                                      $password = $_POST['password'];
                                      $password2 = $_POST['password2'];
                            
                                      //Vérification du pseudo
                                  if(strlen($pseudo) < 2 || !preg_match("/^[a-zA-Z0-9 _-]+$/", $pseudo) || strlen($pseudo) > 60)
                                  {
                                      $results['error'] = true;
                                      $results['message']['pseudo'] = "Pseudo invalide";
                                  }
                                  else
                                  {
                                      $requete = $db->prepare("SELECT id FROM users WHERE pseudo = :pseudo");
                                      $requete->execute([':pseudo' => $pseudo]);
                                      $row = $requete->fetch();
                                  if($row)
                                  {
                                      $results['error'] = true;
                                      $results['message']['pseudo'] = "Le pseudo est déjà pris";
                                  }
                                  }
                            
                                      //Vérification de l'email
                                  if(!filter_var($email, FILTER_VALIDATE_EMAIL))
                                  {
                                      $results['error'] = true;
                                      $results['message']['email'] = "Email invalide";
                                  }
                                  else
                                  {
                                      $requete = $db->prepare("SELECT id FROM users WHERE email = :email");
                                      $requete->execute([':email' => $email]);
                                      $row = $requete->fetch();
                                  if($row)
                                  {
                                      $results['error'] = true;
                                      $results['message']['email'] = "L'email existe déjà";
                                  }
                                  }
                            
                                      // Vérification du password
                                  if($password !== $password2)
                                  {
                                      $results ['error'] = true;
                                      $results ['message']['password2'] = "Les mots de passe doivent être identiques";
                                  }
                                  if($results['error'] === false)
                                  {
                                      $password = password_hash($password, PASSWORD_BCRYPT);
                            
                                      //Insertion
                                      $sql = $db->prepare("INSERT INTO users(pseudo, email, password) VALUES (:pseudo, :email, :password)");
                                      $sql->execute([":pseudo" => $pseudo, ":email" => $email, ":password" => $password]);
                                            
                                  if(!$sql)
                                  {
                                      $results['error'] = true;
                                      $results['message'] = "Erreur lors de l'inscription";
                                  }
                                  }
                                  
                          
                              }
                              else
                                  {
                                  $results['error'] = true;
                                  $results['message'] = "Veuillez remplir tout les champs";
                                  }
                          }
                            echo json_encode($results);
                          ?>

                          EDIT :

                          D'après le tuto que je suit, le message {"error":true,"message":"Veuillez remplir tout les champs"} est normal puisque je n'ai rien posté.

                          Retour à la case départ.

                          -
                          Edité par Lech4tnoir 31 août 2016 à 17:30:59

                          • Partager sur Facebook
                          • Partager sur Twitter
                            31 août 2016 à 19:11:56

                            Je comprends pas. C'est normal que tu ais cette erreur si tu ne postes rien. Ca donne quoi si tu envoie des données ?

                            EDIT : Au passage ton "echo json_encode($results);" il doit être dans l'accolade du if(isset($_POST))

                            faut le remonter d'un cran.

                            V'la le code final et correct ;) :

                            <?php 
                            
                            $db = new PDO("mysql:host=localhost;dbname=xxx","xxx","");
                            $results["error"] = false;
                            $results["message"] = [];
                            
                            if(!empty($_POST)){
                            
                            	if(!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST["password2"])){
                            
                            		$pseudo = $_POST['pseudo'];
                            		$email = $_POST['email'];
                            		$password = $_POST['password'];
                            		$password2 = $_POST['password2'];
                            
                            		//vérification du pseudo
                            
                            		if(strlen($pseudo) < 2 || !preg_match("/^[a-zA-Z0-9 _-]+$/", $pseudo) || strlen($pseudo) > 60){
                            			$results['error'] = true;
                            			$results['message']["pseudo"] = "Pseudo invalide";
                            		}else{
                            			$requete = $db->prepare("SELECT id FROM users WHERE pseudo = :pseudo");
                            			$requete->execute([':pseudo' => $pseudo]);
                            			$row = $requete->fetch();
                            			if($row){
                            				$results['error'] = true;
                            				$results['message']["pseudo"] = "Le pseudo est déjà pris";
                            			}
                            		}
                            
                            		//Vérification de l'email
                            		if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
                            			$results["error"] = true;
                            			$results['message']['email'] = "Email Invalide";
                            		}else{
                            			$requete = $db->prepare("SELECT id FROM users WHERE email = :email");
                            			$requete->execute([':email' => $email]);
                            			$row = $requete->fetch();
                            			if($row){
                            				$results['error'] = true;
                            				$results['message']["email"] = "L'email existe déjà";
                            			}
                            		}
                            
                            		//Vérification du password
                            
                            		if($password !== $password2){
                            			$results["error"] = true;
                            			$results['message']['password'] = "Les mots de passes doivent être identiques";
                            		}
                            
                            		if($results["error"] === false){
                            
                            			$password = password_hash($password, PASSWORD_BCRYPT);
                            			//Insertion
                            			$sql = $db->prepare("INSERT INTO users(pseudo, email, password) VALUES(:pseudo, :email, :password)");
                            
                            			$sql->execute([":pseudo" => $pseudo, ":email" => $email, ":password" => $password]);
                            			if(!$sql){
                            				$results["error"] = true;
                            				$results["message"] = "Erreur lors de l'inscription";
                            			}
                            
                            		}
                            
                            
                            
                            	}else{
                            		$results["error"] = true;
                            		$results["message"] = "Veuillez remplir tous les champs";
                            	}
                            
                            	echo json_encode($results);
                            
                            
                            }
                            
                             ?>



                            -
                            Edité par IpProg 31 août 2016 à 19:23:23

                            • Partager sur Facebook
                            • Partager sur Twitter
                              1 septembre 2016 à 22:56:56

                              Merci pour le code final mais dois-je vraiment remplacer le
                              if(isset($_POST)){
                               par
                              if(!empty($_POST)){

                               ou est-ce une erreur de ta part ?

                              -
                              Edité par Lech4tnoir 1 septembre 2016 à 22:57:24

                              • Partager sur Facebook
                              • Partager sur Twitter
                                1 septembre 2016 à 23:06:53

                                isset vérifie que la variable $_POST existe ( ce qui sera le cas forcement mais elle sera vide ) alors que !empty($_POST) vérifie carrément que des données ont bien été envoyée ( et que donc $_POST n'est pas un tableau vide ), donc utilise plutot la seconde solution :D.

                                Par contre ça n'avait pas d'incidence sur les erreurs que tu avais.

                                -
                                Edité par IpProg 1 septembre 2016 à 23:08:53

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  2 septembre 2016 à 2:59:29

                                  Effectivement le code fonctionne :)

                                  Après plusieurs heures sur le code, je rencontre maintenant un problème avec l'ouverture de session, mais j'ouvrirai un autre post dessus dès demain.

                                  Je repost le code si jamais quelqu'un en a besoin et ne souhaite pas tout lire.

                                  Merci pour toutes vos réponses qui m'ont permis d'avancer et surtout de comprendre un peu plus le fonctionnement.

                                  <?php
                                  
                                  $db = new PDO("mysql:host=NomDeLhote;dbname=NomDeLaBaseDeDonnee","NomDutilisateur","MotDePasse");
                                  $results["error"] = false;
                                  $results["message"] = [];
                                   
                                  if(!empty($_POST)){
                                   
                                      if(!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST["password2"])){
                                   
                                          $pseudo = $_POST['pseudo'];
                                          $email = $_POST['email'];
                                          $password = $_POST['password'];
                                          $password2 = $_POST['password2'];
                                   
                                          //vérification du pseudo
                                          if(strlen($pseudo) < 2 || !preg_match("/^[a-zA-Z0-9 _-]+$/", $pseudo) || strlen($pseudo) > 60){
                                              $results["error"] = true;
                                              $results["message"]["pseudo"] = "Pseudo invalide";
                                          }else{
                                              $requete = $db->prepare("SELECT id FROM users WHERE pseudo = :pseudo");
                                              $requete->execute([':pseudo' => $pseudo]);
                                              $row = $requete->fetch();
                                              if($row){
                                                  $results["error"] = true;
                                                  $results["message"]["pseudo"] = "Le pseudo existe deja";
                                              }
                                          }
                                   
                                          //Vérification de l'email
                                          if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
                                              $results["error"] = true;
                                              $results["message"]["email"] = "Email invalide";
                                          }else{
                                              $requete = $db->prepare("SELECT id FROM users WHERE email = :email");
                                              $requete->execute([':email' => $email]);
                                              $row = $requete->fetch();
                                              if($row){
                                                  $results["error"] = true;
                                                  $results["message"]["email"] = "L'email existe deja";
                                              }
                                          }
                                   
                                          //Vérification du password + insertion
                                          if($password !== $password2){
                                              $results["error"] = true;
                                              $results["message"]["password"] = "Les mots de passes doivent etre identiques";
                                          }
                                   
                                          if($results["error"] === false){
                                              $password = password_hash($password, PASSWORD_BCRYPT);
                                              $sql = $db->prepare("INSERT INTO users(pseudo, email, password) VALUES(:pseudo, :email, :password)");
                                              $sql->execute([":pseudo" => $pseudo, ":email" => $email, ":password" => $password]);
                                              if(!$sql){
                                                  $results["error"] = true;
                                                  $results["message"] = "Erreur lors de l'inscription";
                                              }
                                   
                                          }
                                   
                                      }else{
                                          $results["error"] = true;
                                          $results["message"] = "Veuillez remplir tous les champs";
                                      }
                                   
                                      echo json_encode($results);
                                  
                                  }
                                  
                                  ?>



                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    2 septembre 2016 à 11:57:26

                                    Après faut garder à l'esprit que c'est une manière très ( trop ) basique de faire histoire de voir comment l'ensemble fonctionne. Dans une app réelle, il y aura une sécurité supplémentaire avec l'utilisation de token ( JsonWebToken(JWT) par ex ).

                                    Ce token permet ensuite de naviguer dans l'application sans avoir à se reconnecter sans arrêt et permet des requêtes plus sécurisé a ton api par la suite ( on passe le token a chaque requête pour s'assurer que c'est le bon utilisateurs qui la fait ).

                                    Je te conseille de te renseigner sur tout ça ;). 

                                    Bon courage !

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      14 mai 2018 à 0:20:34

                                      Bonsoir ,
                                      Un peu d'aide pour trouver l'erreur dans ce PHP ?
                                      <?php
                                      $db = new PDO("mysql:host=localhost;dbname=espace_membre_tuto","root","azerty");
                                      $results["error"] = false;
                                      $results["message"] = [];
                                      if(!empty($_POST)){
                                          if(!empty($_POST['pseudo']) && !empty($_POST['password'])){
                                                   $pseudo=$_POST['pseudo'];
                                                   $password=$_POST['password'];
                                                   $sql=$db->prepare("SELECT * FROM users WHERE pseudo=:pseudo");
                                                   $sql->execute([":pseudo"=>$pseudo]);
                                                   $row=$sql->fetch(PDO::FETCH_OBJ);
                                                   if($row){
                                                   if(md5($password) == $row->password){
                                                   $results["error"]=false;
                                                   $results["id"]=$row->id;
                                                   $results["pseudo"]=$row->pseudo;
                                                   }else{
                                                   $results["error"]=true;
                                                   $results["message"]="Pseudo ou mot de passe incorrect";
                                                   }
                                                   }else{
                                                   $results["error"]=true;
                                                   $results["message"]="Pseudo ou mot de passe incorrect";
                                                   }
                                      }else {
                                      $results['error']=true;
                                      $message['message']="Veuillez remplir tous les champs";
                                      }
                                      echo json_encode($results);
                                      }
                                      ?>
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        14 mai 2018 à 8:00:17

                                        Ouvre ton propre post ;) puis je pense que ton message aurait de meilleurs chances dans la section PHP du forum !
                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Erreur php android studio

                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                        • Editeur
                                        • Markdown