Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'inscription/connexion Java/PHP

javascript php erreur script

    6 septembre 2018 à 1:31:27

    Bonjour à tous et à toutes

    j'ai décidé de faire un espace membre avec notification en ajax lors de la connexion/inscription sur mon site (erreur ou validation de l'inscription/connexion) 

    Problème : lorsque je fais une erreur, tout va bien "veuillez remplir tous les champs etc...", les erreurs sont correctes, R.A.S par contre lorsque je suis bien connecté ou inscrit je n'ai pas l'alerte souhaitée du type "Vous êtes bien connecté, patientez avant la redirection" mais une erreur avec une suite de chiffres et de lettres (pourtant je suis bien connecté ou inscrit en rechargeant la page)

    Voici un aperçu : 

    Je vous donne ensuite mon formulaire d'inscription : 

      <h3 class="Ang-message">Inscris-toi dès maintenant sur <span><?= $site['nom']; ?></span>!</h3>
      <input type="text" name="bean_name" id="register__input" placeholder="Nom d'utilisateur" required>
      <input type="email" name="bean_email" id="register__input" placeholder="Adresse mail" required>
      <input type="password" name="bean_password" id="register__input" placeholder="Mot de passe" required>
      <input type="password" name="bean_repassword" id="register__input" placeholder="Confirmer votre mot de passe" required>
    
      <button type="submit" id="login__submit">Finaliser l'inscription</button>
      <a href="index" id="btn__register">Annuler</a>
    </form>

    Maintenant mon code javascript :

    $(document).ready(function() {
      $('#register_me').on('submit', function(e) {
        e.preventDefault();
        var $this = $(this);
        var pseudonyme = $('#bean_name').val();
        var mail = $('#bean_email').val();
        var pswd = $('#bean_password').val();
        var repswd = $('#bean_repassword').val();
        if (pseudonyme === '' || pswd === '' || repswd === '' || mail === '') {
          swal("Oops :(", "Les champs doivent être remplis.", "error");
        } else {
          $.ajax({
            url: $this.attr('action'),
            type: $this.attr('method'),
            data: $this.serialize(),
            success: function(html) {
              if (html == "97736e1f6d89487783cb1b464745817b") {
                swal({
                  title: "Création en cours...",
                  text: "Vous pouvez à présent vous connectez.",
                  type: "success",
                  timer: 800,
                  showConfirmButton: false
                });
                window.setTimeout(function() {
                  window.location = "/moi";
                }, 1000);
              } else {
                swal("Oops :(", html, "error");
              }
            }
          });
        }
      });
    });

    Et pour finir le code PHP de ma page d'inscription (la page vers laquelle je suis redirigée pour la validation de l'inscription) :

    <?php
    require('../../global.php');
    
    if(isset($_SESSION['id'])) {
      	die('Une erreur est survenue.');
    }
    
    if(isset($_POST['bean_name'],$_POST['bean_email'],$_POST['bean_password'],$_POST['bean_repassword'])) {
    	if(!empty($_POST['bean_name']) AND !empty($_POST['bean_email']) AND !empty($_POST['bean_password']) AND !empty($_POST['bean_repassword'])) {
    	    $pseudo = htmlspecialchars($_POST['bean_name']);
    	    $email = htmlspecialchars($_POST['bean_email']);
    	    $password = password_hash($_POST['bean_password'], PASSWORD_BCRYPT);
    	    $pseudo_exist = $bdd->prepare('SELECT * FROM users WHERE username = :username');
    	    $pseudo_exist->execute([
    	    	'username' => $pseudo
    	    ]);
    	    if($pseudo_exist->rowCount() == 0) {
    	      	if(preg_match('`^([a-zA-Z0-9-=?!@:.,]{3,15})$`', $pseudo)) {
    	            $email_exist = $bdd->prepare('SELECT * FROM users WHERE mail = :mail');
    	            $email_exist->execute([
    	            	'mail' => $email
    	            ]);
    	            if($email_exist->rowCount() == 0) {
                    	if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
                      		if($_POST['bean_password'] == $_POST['bean_repassword']) {
                        		if(strlen($_POST['bean_password']) >= 6 AND strlen($_POST['bean_password']) >= 6) {
                          			$insert_membre = $bdd->prepare('INSERT INTO users(username, password, mail, rank, credits, vip_points, activity_points, look, gender, motto, account_created, last_online, ip_reg) VALUES (:username, :password, :mail, :rank, :credits, :vip_points, :activity_points, :look, :gender, :motto, :account_created, :last_online, :ip_reg)');
                          			$insert_membre->execute([
                          				'username' => $pseudo,
                          				'password' => $password,
                          				'mail' => $email,
                          				'rank' => "1",
                          				'credits' => "1000000",
                          				'vip_points' => "0",
                          				'activity_points' => "1000000",
                          				'look' => "hr-831-61.sh-290-62.ch-3208-110-92.hd-180-2.lg-275-62",
                          				'gender' => "M",
                          				'motto' => "Je suis nouveau !",
                          				'account_created' => time(),
                          				'last_online' => time(),
                          				'ip_reg' => $_SERVER['REMOTE_ADDR']
                          			]);
                          			$_SESSION['id'] = $bdd->lastInsertId();
                          			echo '97736e1f6d89487783cb1b464745817b';
                        		} else {
                          			echo 'Le mot de passe doit contenir plus de 6 caractères.';
                        		}
                      		} else {
                        		echo 'Les mots de passe ne correspondent pas.';
                      		}
                    	} else {
                     		echo 'L\'adresse e-mail n\'est pas valide.';
                    	}
    	            } else {
    	              	echo 'Cette adresse e-mail est déjà utilisée.';
    	            }
    	      	} else {
    	        	echo 'Ton pseudo contient des caractères non-autorisés.';
    	      	}
    	    } else {
    	      	echo 'Ce pseudo est déjà utilisé.';
    	    }
    	} else {
    		echo 'Merci de remplir tous les champs.';
    	}
    }
    ?>

    Je vous remercie de m'avoir lu, j'espère avoir été le plus clair possible dans ma démarche





    -
    Edité par BaptisteNex 6 septembre 2018 à 6:35:02

    • Partager sur Facebook
    • Partager sur Twitter
      6 septembre 2018 à 15:00:50

      Bonjour.

          Je suis quasiment sûr que la suite de lettres et de chiffres vient de:

      echo '97736e1f6d89487783cb1b464745817b';

      à la ligne 44.

      • Partager sur Facebook
      • Partager sur Twitter

      ᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼





      ᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼






























































































































































        6 septembre 2018 à 15:28:07

        BabouneSmith a écrit:

        Bonjour.

            Je suis quasiment sûr que la suite de lettres et de chiffres vient de:

        echo '97736e1f6d89487783cb1b464745817b';

        à la ligne 44.


        Merci pour votre réponse

        Savez-vous comment je peux éviter ça? Le remplacer éventuellement? Quand je regarde Network -> inscription.php et que je clique sur réponse j'ai bien cette suite de chiffres/lettres

        $_SESSION['id'] = $bdd->lastInsertId();
                                        echo '97736e1f6d89487783cb1b464745817b';



        • Partager sur Facebook
        • Partager sur Twitter
          6 septembre 2018 à 15:45:51

          Je sais pas si c'est toi ou un autre qui à fait ce code mais il faut absolument le revoir au niveau des if imbriqué.
          • Partager sur Facebook
          • Partager sur Twitter
            8 septembre 2018 à 2:04:16

            BaptisteNex a écrit:

            BabouneSmith a écrit:

            Bonjour.

                Je suis quasiment sûr que la suite de lettres et de chiffres vient de:

            echo '97736e1f6d89487783cb1b464745817b';

            à la ligne 44.


            Merci pour votre réponse

            Savez-vous comment je peux éviter ça? Le remplacer éventuellement? Quand je regarde Network -> inscription.php et que je clique sur réponse j'ai bien cette suite de chiffres/lettres

            $_SESSION['id'] = $bdd->lastInsertId();
                                            echo '97736e1f6d89487783cb1b464745817b';



            A vrai dire, je ne sais même pas quelle est l'utilité de placer un echo ici avec cette suite de caractères. L'enlever ne devrais pas poser de problème.

            • Partager sur Facebook
            • Partager sur Twitter

            ᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼





            ᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼






























































































































































            Problème d'inscription/connexion Java/PHP

            × 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