validation formulaire avec regex

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : validation formulaire avec regex

Re: validation formulaire avec regex

par Zahnzao » 22 juil. 2013, 17:26

Salut,

c'est normal, tu testes l'existence de $nom, $email et $telephone alors que tu les déclare plus bas. Ce sont les données du formulaire envoyées en POST qu'il faut tester.

remplace par:
if ( !empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['telephone']) ){

}
D'ailleur en rajoutant un else a la fin de ton script tu t'en serai rendu compte.

validation formulaire avec regex

par macbidaF » 22 juil. 2013, 12:42

Bonjour à tous,

Je suis relativement débutante en php et j'aimerai votre avis après avoir bataillé des jours entier à modifier le code et faire des recherche sur internet.
Mon script de vérification de formulaire ne fonctionne pas (le formulaire est présent ici pour info http://mobiz.lyon-graphiste.fr/offre/offre-actualites/ et si un champs saisi est erronné ou que les saisies sont bien valides, je n'ai absolument aucun message qui s'affiche, rie névidemment dans la boite mail non plus.

Pouvez-vous m'éclairer ?

Code : Tout sélectionner

//Récupération des données du formulaire avec htmlentities qui remplace les caract par leur equiv html pour eviter les injections sql : le code injecté n'aura aucun effet /*Exécution si les champs sont remplis */ if ( !empty($nom) && !empty($email) && !empty($telephone) ) { // alors 1 $nom = htmlentities ($_POST['nom'], ENT_QUOTES);//je crée la variable nom $email = htmlentities ($_POST['email'], ENT_QUOTES);//je crée la variable email $telephone = htmlentities ($_POST['telephone'], ENT_QUOTES);//je crée la variable telephone $Syntaxemail='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#i'; //definit les symboles à bannir dans l'adresse mail du visiteur $Syntaxetel="#^0[1-9]([\-\. ]?[0-9]{2}){4}$#i"; //les regex pour le tel if ( preg_match($Syntaxemail, $email) && preg_match($Syntaxetel, $telephone) ) { // alors 2 //...On renseigne l'entete de l'email à envoyer $destinataire='[email protected]'; $sujet='formulaire de contact'; $message='une question est arrivée! <br/> Nom : '.$nom.' <br/> email : '.$email. '<br/> telephone : '.$telephone. '<br />' ; $entete_mail='From :'.$email . PHP_EOL . 'Content-type: text/html; charset=UTF-8' . PHP_EOL; mail($destinataire,$sujet,$message,$entete_mail); echo 'E-mail envoyé avec succès'; } // fin alors 2 else { echo "Une erreur est survenue lors de l'envoi du formulaire par email"; } } // fin alors 1