Page 1 sur 1

Valider des champs dans un formulaire

Posté : 09 mars 2011, 14:16
par Kou
Bonjour à tous,

Je pensais mes formulaires à l'abri de toute cochonneries mais j'ai un gros doute aujourd'hui !!!

En effet, mes preg_match sont très aléatoires (exemple : le champ "nom" ne devrait autoriser que des lettres. Si je rentre 999 => alerte tout va bien mais si je rentre 999aa alors la valeur passe mon contrôle PHP).

Je n'ai réellement de certitude que sur mon adresse mail avec le filter_validate_email qui fonctionne assez bien je pense.

Donc, un exemple simple : qu'utiliser pour simplement contrôler un champ dédié à uniquement recevoir du texte (les caractères spéciaux et autres viendront quand j'aurai trouvé quelque chose de convaincant et que j'aurai compris le concept)?

Je ne suis pas du tout adepte du Javascript pour la validation de formulaire et voudrait donc que cela s'effectue en PHP.

Comment me mettre à l'abri de toute injection ou mails bizarres en validant mes champs de formulaire.

Code : Tout sélectionner

$syntaxe = "#[a-zA-ZÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ \'-]+$#"; $syntaxe_tel = "#[ 0-9\/ -]+$#"; $syntaxe_globale = "#[0-9a-zA-ZÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ \'-]+$#"; // Initialisation de la variable $error $error = 0; // Vérification de champs vides if (empty($nom)){ $error_nom = "Champ obligatoire"; $error = 1; } else if (!preg_match($syntaxe,$nom)){ $error_nom2 = "Format de nom invalide"; $error3 = 1; }
Merci d'avance !!!

Re: Valider des champs dans un formulaire

Posté : 09 mars 2011, 14:28
par jojolapine
Bonjour,

Il faut que tu ajoutes un ^ au début de ta regexp ;)
http://lumadis.be/regex/test_regex.php?id=697

Re: Valider des champs dans un formulaire

Posté : 09 mars 2011, 15:26
par Invité
C'est tout bonnement parfait.

Je le teste sur tous mes champs et reviens donner un feedback.

Merci beaucoup en tout cas !!!

Re: Valider des champs dans un formulaire

Posté : 09 mars 2011, 16:31
par Invité
"Il suffisait d'un signe..." comme dirait un remix de Goldman.

Tout fonctionne, merci beaucoup.