PHP verification de variable
Résolu
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.
--
GOOGLE et ton AMI utilise le !!!!!!!!!!
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.
--
GOOGLE et ton AMI utilise le !!!!!!!!!!
Configuration: Windows XP Firefox 3.5.2
9 réponses
-
Je n'y connais rien en java et je pense pas l'apprendre dans les semaines avenir.
Merci pour les réponses mais je crois que je me casse trop la tête.
Pour l'instant je vais supprimer l'anniversaire (sa marche comme sa).
Alors si un jour quelqu'un passe par la et me propose une solution qui fonctionne.!!!
-
a mon avis leplus simple c'est de passer par du javascript pour verifier deja si les données envoyées correspondent au format que tu souhaite
-
-
@avion-f16exact, mais si on tient compte que 99% et quelques des pc on le JS activé cela laisse quand meme un bonne marge .. ;-)
D'autre part en desactivant le js il va avoir beaucoup de site qui ne fonctionnerons plus correctement -
@lewis34Qu'il fasse comme il veut mais c'est beaucoup plus risqué qu'avec du PHP.
Si quelqu'un veut "pirater" son site, il affichera sans doute le code source et avec l'extension Firebug, on peut facilement modifier le code source de la page (pour soi, sans sauvegarder sur le serveur et heureusement).
-
-
Et ceci Fonctionne par contre:
if(!ereg("[A-Za-z0-9_]{5,40}", $pseudo))
{
$message = "<div><img src=\"../image_de_fond/attention.png\" align=\"middle\"/>Votre pseudo doit comporter entre 5 et 40 caractères.</div><br />";
}
-
J'ai un peu modifier le code mais maintenant cela m'affiche:
Warning: ereg() [function.ereg]: REG_ERANGE in C:\wamp\www\membre\register.php on line 24
Voici les lignes correspond:
elseif(!ereg("[1-31]{2,}/[1-12]{2,}/[1908-2008]{4,}",$_POST['date_naissance']))
{
$message = "<div><img src=\"../image_de_fond/attention.png\" align=\"middle\"/>Votre Date d'anniverssaire n'est pas au format valide <br />
Veuillez respecter le format jj/mm/aaaa. Merci.</div><br />";
} -
À la deuxième ligne :
if(!ereg("(#^[A-Za-z0-9_]{5,40}$#)", $pseudo))
D'où provient cette parenthèse ? -
J'ai essayer ca cela ne marche pas, pourquoi?
// Verification de la validite des champs
if(!ereg("(#^[A-Za-z0-9_]{5,40}$#)", $pseudo))
{
$message = "<div><img src=\"../image_de_fond/attention.png\" align=\"middle\"/>Votre nom d'utilisateur doit comporter entre 5 et 40 caractères.</div><br />";
}
elseif(!ereg("#^[A-Za-z0-9]{5,40}$#", $passwd))
{
$message = "<div><img src=\"../image_de_fond/attention.png\" align=\"middle\"/>Votre mot de passe doit comporter entre 5 et 40 caractères</div><br />";
}
elseif($passwd != $_POST["confir_passwd"])
{
$message = "<div><img src=\"../image_de_fond/attention.png\" align=\"middle\"/>Votre mot de passe n'a pas ètè correctement confirmè</div><br />";
}
elseif(!ereg("(#^[a-zA-Z0-9._-]$#)[@](#^[a-zA-Z0-9.-]{2,}$#)[.](#^[a-zA-Z]{2,4}$#)",$email))
{
$message = "<div><img src=\"../image_de_fond/attention.png\" align=\"middle\"/>Votre adresse e-mail n'est pas valide</div><br />";
}
elseif(!ereg("(#^[1-31]{2}$#)[/](#^[1-12]{2}$#)[/](#^[1908-2008]{4}$#)",$date_naissance))
{
$message = "<div><img src=\"../image_de_fond/attention.png\" align=\"middle\"/>Votre Date d'anniverssaire n'est pas au format valide <br />
Veuillez respecter le format jj/mm/aaaa. Merci.</div><br />";
}
else
{
// Connexion a la base de donnees -
Il n'y a pas beaucoup d'autre solutions ...
Pour tes ereg, il faut des délimiteurs #^[a-zA-Z0-9]$#. Après le dernier #, tu peux mettre "i" pour éviter d'avoir à faire a-zA-Z (a-z ou A-Z suffira). -
j'ai tester mais il y a des erreurs surtout au niveau de la Date d'anniversaire.
Et puis je trouve que je me complique la tache.
Alors si quelqu'un aurais une amélioration a proposer pour rendre le code plus "alléger", je suis preneur d'idée.
-
Bonjour,
le meiux ne serait-il pas de tester ce que vous avez écrit ?
ainsi vous saurez directement si cela correspond à vos attentes.