Partage
  • Partager sur Facebook
  • Partager sur Twitter

TP ESPACE MEMBRES DU COURS PHP/Mysql

Affichage des messages d'erreurs : Page d'inscription

Sujet résolu
    17 septembre 2019 à 17:37:24

    Bonjour chers tous, j'ai réalisé les différentes vérifications quant à la validité des informations soumises dans le formulaire. Ensuite je n'arrive pas à afficher par exemple lorsque le pseudo est trop court un message d'erreur. Aidez-moi à résoudre ce problème car cela fait pratiquement trois jours que je ne comprends plus rien. Pour moi, il s'agit de la variable $errors.

    Voici le code du contrôleur(register.php) et de la vue(register.view.php): 

     Code contrôleur(register.php):

    <?php
    	$title ="Inscription";
    	require 'config/database.php';
    	require 'includes/functions.php';
    	//Vérification de la validité des informations
    		//Si le formulaire a été soumis
    		if (isset($_POST['register'])) 
    		{
    			$errors=[] ;  //Contient les différentes erreurs
    			extract($_POST);
    			//Si tous les champs ont été rempli
    			if (!empty($pseudo) && !empty($email) && !empty($password) && !empty($password_confirm)) 
    			{
    				//Longueur du pseudo
    				if (mb_strlen($pseudo) < 3)  
    				{
    					$errors[]="Pseudo trop court!(minimum 3 caractères)";
    				}
    
    				//Forme valide de l'email
    				if (!filter_var($email, FILTER_VALIDATE_EMAIL)) 
    				{
    					$errors[]="Adresse E-mail invalide";
    				}
    
    				//Longueur du mot de passe
    				if (mb_strlen($password) < 6) 
    				{
    					$errors[]="Mot De Passe trop court!(Minimum 6 caractères)";
    				}
    				else
    				{
    					if ($password != $password_confirm) 
    					{
    						$errors[]="Les deux Mots De Passe ne concordent pas";
    					}
    				}
    
    				//Vérification de l'unicité du pseudo
    				if (is_already_in_use('pseudo', $pseudo, 'membres')) 
    				{
    					$errors[]="Pseudo déjà utilisé";
    				}
    
    				//Vérification de l'unicité de l'email
    				if (is_already_in_use('email', $email, 'membres')) 
    				{
    					$errors[]="Adresse Mail déjà utilisé";
    				}
    
    				//S'il n'y a aucune erreur
    				if (count($errors) == 0) 
    				{
    					
    				}
    
    			}
    		}
    
    	//Insertion of views
    	require 'views/register.view.php';
    ?>

    Code vue(register.view.php):

    <?php require 'partials/_header.php';?>
    
      <div class="modal-dialog text-center">
        <div class="col-sm-9 main-section">
          <div class="modal-content">
            <div class="col-12 user-img">
              <img src="img/face.png">
            </div>
    
              <?php
                if (isset($errors) && count($errors) != 0){
                    echo '<div class="alert alert-info">
                    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>';
    
                    foreach($errors as $error) {
                        echo $error.'<br/>';
                    }
                    echo '</div>';
                  }
    
               ?>   
    
    
            <div class="col-12 form-input">
              <form>
              	 <div class="form-group">
                  <input type="text" class="form-control" placeholder="Entrez votre Pseudo" name="pseudo">
                </div>
    
                <div class="form-group">
                  <input type="email" class="form-control" placeholder="Entrez votre E-mail" name="email">
                </div>
    
                 <div class="form-group">
                  <input type="password" class="form-control" placeholder="Entrez votre Mot De Passe" name="password">
                </div>
    
               	<div class="form-group">
                  <input type="password" class="form-control" placeholder="Confirmez votre Mot de Passe" name="password_confirm">
                </div>
                <button type="submit" class="btn btn-success btn-lg" name="register">S'inscrire</button>
              </form>
            </div>
          </div>
        </div>
      </div>
    
    
    <?php require 'partials/_footer.php';?>
    
    

    Je vous remercie d'avance.


    • Partager sur Facebook
    • Partager sur Twitter
      17 septembre 2019 à 17:41:09

      Bonjour,

      Majuscules abusives

      L'écriture en majuscules est considérée comme une parole criée et diminue autant la lisibilité du texte que sa compréhension. Les majuscules abusives sont donc interdites aussi bien dans les titres que dans les messages.

      Merci de modifier votre titre pour en retirer les majuscules.

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        17 septembre 2019 à 17:42:32

        Il est passé où le method="POST" ? (t'es en GET par défaut)

        Autres remarques :

        • c'est vraiment dommage d'employer extract($_POST); sur un code aussi "propre" que celui-ci.
        • is_already_in_use, je ne le ferais que si le pseudo/mail est "valide"
        • pourquoi if (count($errors) == 0) est vide ?

        -
        Edité par julp 17 septembre 2019 à 17:46:31

        • Partager sur Facebook
        • Partager sur Twitter
          17 septembre 2019 à 18:54:18

          Reponse à julp: Il est passé où le method="POST" ? (t'es en GET par défaut)

          Je voudrais te remercier. J'ai corrigé l'erreur et voici le résultat:


          • c'est vraiment dommage d'employer extract($_POST); sur un code aussi "propre" que celui-ci

          Cela me permet de ne plus faire à tout instant $_POST['pseudo'] ou $_POST['email'], je n'ai qu'à faire seulement $pseudo pour récupérer le contenu. Je ne sais pas ce que tu en penses?

          • is_already_in_use, je ne le ferais que si le pseudo/mail est "valide"

          Je suis complètement d'accord avec toi.

          • pourquoi if (count($errors) == 0) est vide ?

          Cette condition me permet de vérifier qu'il n'y a plus en effet d'erreur dans mon tableau. Du coup toutes les vérifications des informations sont valides. On est à même maintenant d'enregistrer l'utilisateur dans la base de données.

          Pour finir je souhaite encore te remercier. 


          • Partager sur Facebook
          • Partager sur Twitter
            17 septembre 2019 à 18:59:07

            Donc tout est bon ?

            > Je ne sais pas ce que tu en penses?

            Que c'est une mauvaise pratique

            > On est à même maintenant d'enregistrer l'utilisateur dans la base de données.

            Ok, il manquait donc du code.

            • Partager sur Facebook
            • Partager sur Twitter
              17 septembre 2019 à 19:00:56

              @MosesCI mon message plus haut n'est pas la pour faire joli, merci de respecter les règles du forum et la demande de la modération.

              • Partager sur Facebook
              • Partager sur Twitter
                17 septembre 2019 à 19:18:17

                Oui je vais maintenant enregistrer l'utilisateur dans la base de données.

                J'ignore comment insérer le pouce j'aime pour te remercier encore.

                • Partager sur Facebook
                • Partager sur Twitter

                TP ESPACE MEMBRES DU COURS PHP/Mysql

                × 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