PHP verification de variable [Résolu/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
18385
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
4 juillet 2020
-
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.

9 réponses

Messages postés
1839
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
24 juillet 2019
136
Bonjour,

le meiux ne serait-il pas de tester ce que vous avez écrit ?
ainsi vous saurez directement si cela correspond à vos attentes.
Messages postés
200
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
22 mai 2014
10
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.


Messages postés
18385
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
4 juillet 2020
4 195
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).
Messages postés
200
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
22 mai 2014
10
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
Messages postés
18385
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
4 juillet 2020
4 195
À la deuxième ligne :
if(!ereg("(#^[A-Za-z0-9_]{5,40}$#)", $pseudo)) 

D'où provient cette parenthèse ?
Messages postés
200
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
22 mai 2014
10
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 />";
}
Messages postés
200
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
22 mai 2014
10
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 />";
}

Messages postés
2565
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
348
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
Messages postés
18385
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
4 juillet 2020
4 195
Le Javascript est désactivable (et modifiable) par le visiteur.
Le mieux est une vérification niveau serveur (PHP, Perl, CGI, ...)
Messages postés
2565
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
348 >
Messages postés
18385
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
4 juillet 2020

exact, 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
Messages postés
18385
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
4 juillet 2020
4 195 >
Messages postés
2565
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015

Qu'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).
Messages postés
200
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
22 mai 2014
10
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.!!!

Messages postés
1839
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
24 juillet 2019
136
Bonjour,

ne pas confondre java et javascript.
attention donc si vous vouliez apprendre qielquechose.