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';
?>
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.
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.
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.
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.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli