PHP verification de variable [Fermé]

Signaler
Messages postés
200
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
22 mai 2014
-
Messages postés
437
Date d'inscription
mercredi 29 juillet 2009
Statut
Membre
Dernière intervention
23 septembre 2010
-
Bonjour,
Dans mon site web je souhaite créer un espace de membre.
J'ai un formulaire qui renvoie des information sur le visiteur qui veut s'inscrire.
Pour vérifie les données qu'il remplie je souhaite passe par du php qui traite les infos reçu.



// Vérification de la validité des champs
if(!ereg("^[A-Za-z0-9_]{4,20}$", $_POST["pseudo"]))
{
$message = "Votre nom d'utilisateur doit comporter entre 5 et 40 caractères.<br />";
}
elseif(!ereg("^[A-Za-z0-9]{5,40}$", $passwd))
{
$message = "Votre mot de passe doit comporter entre 5 et 40 caractères<br />";
}
elseif($passwd != $_POST["confir_passwd"])
{
$message = "Votre mot de passe n'a pas ètè correctement confirmè<br />";
}
elseif(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",$email))
{
$message = "Votre adresse e-mail n'est pas valide<br />";
}
elseif(!ereg("([1-31]{2})[/]([1-12]{2})[/]([1908-2008]{4})",$date_naissance))
{
$message = "Votre Date d'anniverssaire n'est pas au format valide <br />
Veuillez respecter le format jj/mm/aaaa. Merci.<br />";
}
else
{
// Connexion a la base de données


etc...

Pouvez vous me dire si j'utilise la meilleur méthode ????
Aussi il y a des erreur dans mon code surtout sur les
ereg je ne sais pas comment les corriger.


Merci, de me répondre.



1 réponse

Messages postés
437
Date d'inscription
mercredi 29 juillet 2009
Statut
Membre
Dernière intervention
23 septembre 2010
74
Bonjour,

Il y a quelques erreurs oui:
// Vérification de la validité des champs
if(!ereg("#^[A-Za-z0-9_]{4,20}$#", $_POST["pseudo"]))
{
$message = "Votre nom d'utilisateur doit comporter entre 5 et 40 caractères.<br />";
}
elseif(!ereg("#^[A-Za-z0-9]{5,40}$#", $passwd))
{
$message = "Votre mot de passe doit comporter entre 5 et 40 caractères<br />";
}
elseif($passwd != $_POST["confir_passwd"])
{
$message = "Votre mot de passe n'a pas ètè correctement confirmè<br />";
}
elseif(!ereg("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}[.][a-zA-Z]{2,4}$#",$email))
{
$message = "Votre adresse e-mail n'est pas valide<br />";
}
// ( [1-31] n'est pas valide, on ne peut spécifier que des types de données, et [0-9] correspond aux chiffres)
elseif(!ereg("#^([0-9]{2})/([0-9]{2})/([0-9]{4})$#",$date_naissance))
{
$message = "Votre Date d'anniverssaire n'est pas au format valide <br />
Veuillez respecter le format jj/mm/aaaa. Merci.<br />";
}
else
{
// Connexion a la base de données 


Attention au # qui doivent être placés pour que ça fonctionne.
Pour la date on ne peut pas gérer une bonne date directement. au mieux il est possible de limiter le premier chiffre des jours de 0 à 3 par exemple, mais ça n'empêchera pas l'utilisateur de rentrer 37. ni de créer un 30 février.
Un 2ème test peut-être utile pour vraiment être sûr.