Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un formulaire de connexion avec AJAX

    21 juillet 2017 à 17:33:57

    Bonjour ! J'ai rencontré un problème avec l'option" Markdown"du forum lors de la création du sujet. Et maintenant impossible de revenir en arrière et de vous présenter mon code correctement. Retrouver le message qui devrais être ici un peut plus bas. Merci :)

    -
    Edité par Swinot 21 juillet 2017 à 19:09:39

    • Partager sur Facebook
    • Partager sur Twitter
      21 juillet 2017 à 18:49:46

      Bonjour , j'ai eu un problème lors de l'écriture de mon sujet et impossible de le modifier ou de le supprimer. Et je ne pouvais pas poster de message à la suite avant 24H pour expliquer la situation. Désolé :/ 

      Je travaille actuellement avec le tuto "Un site web dynamique avec jQuery !" et je rencontre un problème dans cette partie  : https://openclassrooms.com/courses/un-site-web-dynamique-avec-jquery/cas-concret-un-formulaire-de-connexion-avec-ajax


      J'essaie d'afficher un message de réussite ou d'échec à la connexion grâce a Jquery. Mon code n'affiche rien lors de la connexion.

      En m'aidant de la console pour trouver une solution je me rend compte que mon fichier connexion.php reçoit bien les paramètre mais ne renvois rien. Mais après de longues recherches je ne trouve pas d'ou viens l'erreur.

      Pouvez vous m'aidez.

      Voici mon code HTML / Jquery: 


      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="utf-8" />
          <title>Un formulaire de connexion en AJAX</title>
      </head>
      
      <body>
          <form>
          <p>
              Nom d'utilisateur : <input type="text" id="username" />
              Mot de passe : <input type="password" id="password" />
              <input type="submit" id="submit" value="Se connecter !" />
          </p>
          </form>
              <div id="resultat">
              <!-- Nous allons afficher un retour en jQuery au visiteur -->
          </div>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
          
      <script>
      
      $(document).ready(function(){
      
          $("#submit").click(function(){
              console.log("test");
              $.post(
                  'connexion.php', // Un script PHP que l'on va créer juste après
                  {
                      login : $("#username").val(),  // Nous récupérons la valeur de nos input que l'on fait passer à connexion.php
                      password : $("#password").val()
                  },
      
                  function(data){
      
                      if(data == 'Success'){
                          
                           // Le membre est connecté. Ajoutons lui un message dans la page HTML.
      
                           $("#resultat").html("<p>Vous avez été connecté avec succès !</p>");
                          
                      }
                      else{
                           // Le membre n'a pas été connecté. (data vaut ici "failed")
      
                           $("#resultat").html("<p>Erreur lors de la connexion...</p>");
                      }
              
                  },
      
                  'text'
               );
      
          });
      
      });
      
      </script>
      </body>
      </html>
      

      et le php : 

      <?php
      
          /**
           * Nous créons deux variables : $username et $password qui valent respectivement "Sdz" et "salut"
           */
      
          $username = "user";
          $password = "mdp";
      
          if( isset($_POST['login']) && isset($_POST['password']) ){
      
              if($_POST['login'] == $username && $_POST['password'] == $password){ // Si les infos correspondent...
                  session_start();
                  $_SESSION['user'] = $username;
                  echo "Success";        
              }
              else{ // Sinon
                  echo "Failed";
              }
      
          }
      
      ?>
      

      Merci :)


      -
      Edité par Swinot 21 juillet 2017 à 18:52:48

      • Partager sur Facebook
      • Partager sur Twitter
        21 juillet 2017 à 19:20:42

        Déjà, ta page PHP ne renvoie pas systématiquement quelque chose, ce qui n'est pas bien pour déboguer.

        Je procèderais comme suit :

        - Tu crées un array vide au début du script PHP

        - Tu crées des conditions simples (une condition par variable) et, à chaque échec, tu ajoutes à l'array le test spécifique qui a échoué.

        - À la fin du script, tu fais un echo de ton array avec json_encode

        - D'ailleurs, il vaudrait mieux que tes requêtes AJAX attendent systématiquement un objet JSON, même quand la seule clé/valeur est "success":"true"

        De cette façon tu es assuré que quand tu as une erreur, tu sais de quoi il s'agit.

        Ça peut être dangereux de retourner systématiquement des erreurs précises (en terme de sécurité), donc tu peux implémenter un système de débugging au niveau du serveur (ça peut être un fichier que tu appelles avec un mot de passe pour le passer de "off" à "on") qui quand il est activé procède au echo de l'array d'erreurs.

        • Partager sur Facebook
        • Partager sur Twitter
          21 juillet 2017 à 21:04:02 - Message modéré pour le motif suivant : Le flood est strictement interdit


            21 juillet 2017 à 21:56:11

            Sérieux, si c'est pour dire ce genre de chose, tu pourrais t'abstenir de répondre. D'autant que la date de publication du post d'origine est disponible. Donc d'une tu poses une question rhétorique à la con qui pollue l'ambiance et en plus t'es pas foutu de vérifier tes propos. ça t'aurait pourtant pris moins de temps à faire que ton gribouillage outré

            -
            Edité par tabouretBleu 21 juillet 2017 à 21:58:06

            • Partager sur Facebook
            • Partager sur Twitter
              22 juillet 2017 à 21:31:09

              Extact.

              D'autant plus que le le site empêche de poster deux messages à la suite en moins de 24h, donc c'est justement grâce au message de tabouretbleu que Swinot a pu poster à nouveau.

              Cependant, Swinot, il n'est pas normal que tu n'aies pas pu modifier ton message. Si le bouton "modifier" en haut à droite de ton message initial ne fonctionne pas, tu devrais le signaler via le bouton "nous contacter" en bas à gauche du pied de page ou via l'adresse hello@openclassrooms.com .

              • Partager sur Facebook
              • Partager sur Twitter

              Moderateur forum || FAQ 3D || discord 3D francophone || OC Tweak script

                22 juillet 2017 à 23:06:15

                tabouretBleu, j'aime bien ton pseudo !
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  23 juillet 2017 à 12:06:38

                  -L0Lock- mdr death note inspecteur L
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 juillet 2017 à 18:58:02

                    Pourrait-on en revenir au sujet initial ? Les remarques sur les pseudo et les avatars n'apportent rien.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Moderateur forum || FAQ 3D || discord 3D francophone || OC Tweak script

                    Un formulaire de connexion avec AJAX

                    × 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