PHP Simple Validation de Formulaire
Ok, ce que je suis en train de réaliser est très simple de validation de formulaire ci-dessous.
- Nom: [obligatoire, min longueur: 2, longueur max: 255]
- E-mail: [obligatoire, min longueur: 3, longueur max: 255, e-mail valide format]
- Date de Naissance: [facultatif, format: jj/mm/aaaa]
Cependant, une fois que je clique sur submit (si les champs sont vides ou pleins), j'ai toutes mes écho erreurs affichées sur une page blanche.
"le nom doit être d'au moins 2 charactersname est requiredemail doit être d'au moins 3 charactersinvalid emailemail ne peut être laissée vide"
Mon code pour l'instant:
index.php
<form method="post" action="confirm.php">
Name:<input type="text" name="name" />
email:<input type="text" name="email" />
DOB:<input type="date" name="dob" />
<input type="submit" value="submit" />
</form>
et
confirm.php
<?php
$name = $_POST['$name'];
$email = $_POST['$email'];
$dob = $_POST['$dob'];
$namelen = strlen($email);
$emaillen = strlen($email);
$max = 255;
$minname = 2;
$minemail = 3;
if($namelen<$minname){
echo"name must be at least 2 characters";
}
elseif($namelen>$max){
echo"name must be less than 255 characters";
}
if(empty($name)){
echo"name is required";
}
else{
continue;
}
if($emaillen<$minemail){
echo"email must be at least 3 characters";
}
elseif($emaillen>$max){
echo"email must be less than 255 characters";
}
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
continue;
}
else{
echo"invalid email";
}
if(empty($email)){
echo"email cannot be left empty";
}
else{
continue;
}
?>
Aide serait grandement appréciée, merci.
- Vous n'avez pas écrit quelque chose pour le faire cesser, après vérification de la première et de la deuxième erreur.
- qu'essayez-vous d'atteindre avec ces
continue;
déclarations? - Replacer la question.
- si le champ est vide, l'écho de"quelque chose", sinon continuez.
- comment puis-je le faire arrêter après vérification de la première et de la deuxième erreur?
- J'ai peut sembler grossier, mais, honnêtement, apprendre la programmation en premier.
Vous devez vous connecter pour publier un commentaire.
Vous d'avoir les lignes suivantes dans votre code:
Vous êtes essentiellement en essayant d'accéder à undefined index. Supprimer les
$
à partir de la clé noms:Puis, plus loin, vous avez certaines conditions comme ceci:
Ce n'est pas vraiment nécessaire, et vous pouvez le changer à:
Aussi, il est préférable de pousser les messages d'erreur dans un tableau (
$errors
) et ensuite une boucle à travers elle et d'afficher les messages d'erreur. Il pourrait vous aider à organiser votre code un peu mieux.Voici comment le code modifié ressemble:
Il pourrait encore être amélioré, mais cependant, cela devrait vous aider à démarrer!
Vous n'avez pas écrit quelque chose pour le faire cesser, après vérification de la première et de la deuxième erreur.
Aussi,
continue
n'a pas de sens dans unif
déclaration (voir http://php.net/manual/en/control-structures.continue.php).Enfin, la page est "vide", car il n'y a pas de sortie HTML, juste le texte. Vous pourriez rediriger l'utilisateur retour à la page de formulaire avec les messages d'erreur à la place.
Que c'est faux, vous devez utiliser
Aussi vous pouvez modifier la ligne
à
vérifier si!empty($_POST[nomrubrique]))
et puis rediriger l'affichage d'une alerte en javascript que les champs sont vides