Formulaire de contact, quel solutions ?

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 : Formulaire de contact, quel solutions ?

par artotal » 04 nov. 2006, 19:32

j'ajouterai que php par définition ne stoke pas les évenements !
edit -> il faut séparé tes test "empty" et "isset".

par artotal » 04 nov. 2006, 19:31

en cas d'erreur ajoute une instruction javascript par exemple
if ( empty($nom))
      {echo '<script>
		alert("Remplis le nom");
	</script>';
      }
Moi je n'est jamais trouvé en php, alors j'utilise le js de cette manière notemment

Code : Tout sélectionner

function testSaisies() { var ok = true; if (document.suggerer.pseudo.value == "") { alert("Merci d'indiquer votre nom !"); ok = false; } else if (document.suggerer.titre.value == "") { alert("Merci d'indiquer le titre de votre article !"); ok = false; } else if (document.suggerer.boitetexte.value == "") { alert("Merci d'indiquer une description pour votre article !"); ok = false; } else if (document.suggerer.ville.value == "") { alert("Merci d'indiquer votre ville !"); ok = false; } return ok; } function valider() { if (testSaisies()) document.suggerer.submit(); }
Mais c'est vrai que j'aimerai bien savoir le faire

par analfabete » 04 nov. 2006, 19:03

up

par analfabete » 04 nov. 2006, 10:39

pour la variable contact c'est fait exprès.
Ensuite oui voilà les anomalies en n'utilisant ce code:

Code : Tout sélectionner

if ( empty($nom) || empty($email) || empty($texte)) {echo $erreur[0]; exit(); } if ( !ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]{2,3})*$",$email)) {echo $erreur[1]; exit();} if ( mail($contact,$sujet,$texte,$headers)) {echo $erreur[2]; }
Voilà le code ci-dessus que j'ai modifier il marche très bien cependant on ma dis que c'était pas très correct... deplus on ma indiquer qu'il y avait une faille avec la fonctionmail mais la laquelle ??? enfin bref la suite du problème réside que j'aimerai intégrer ce code dans la page du formulaire car la par exeple si il y a une erreur sa l ouvre mais dans une page vierge juste avec le texte de l'erreur pourriez-vous m'orientez sur plusieur solution
Merci bien

par Ajoloca » 04 nov. 2006, 04:03

Bonsoir,
pour commencer comme
C'est quoi comme anomalie ?¿?¿?¿?¿?¿
Ensuite, es-tu sur que tes valeurs en $_POST[] sont remplies ?
Est tu sur qu'une adresse e-mail avec une structure comme celle ci soit viable ?
$contact="contact@r";
Une chose est sure, c'est pas en modifiant la façon de stocker tes messages qui va résoudre les autres PB's. Mais tu devrais donner plus d'infos (à cette heure ci la boulle de cristal ronfle)

par artotal » 04 nov. 2006, 03:52

C'est quoi comme anomalie ?¿?¿?¿?¿?¿
D'abord dans ton script

Code : Tout sélectionner

if ( empty($nom) || empty($email) || empty($texte))
et là ce n'est pas tellement agréable pout l'user qui doit tout retaper si un champ est vide !
l'utilisation de js est quand même plus simple je trouve, en partie pour cette raison, cela dit il y 'en a qui désactive le js pour pas s'emmerder avec ça.
Donc le php est nécessaire.
-> je sors

Formulaire de contact, quel solutions ?

par analfabete » 04 nov. 2006, 02:26

Bonjour à tous voilà je suis en train de crée mon formulaire de contact et pour l'instant je susi en train de crée un script form_contact.php indépendant de la page contact.php qui sera fusionner par la suite.
J'avais commencer a écrire ce script :

Code : Tout sélectionner

1. <? $nom=$_POST['nom']; $email=$_POST['email']; $sujet=$_POST['sujet']; $texte=$_POST['texte']; $contact="[email protected]"; $headers ='From:'.$email.'\n'; if( empty($nom) || empty($email) || empty($texte)) {echo 'Vous devez remplir tous les champs'; exit(); } if ( !ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]{2,3})*$",$email)) {echo 'Votre e-mail est invalide'; exit(); } if( mail($contact,$sujet,$texte,$headers)) {echo 'Votre demande a bien été envoyée et sera traitée dans les plus brèves délai'; } ?>

Cependant diverse anomalie intervbienne et on ma conseiller de crée avefc des tableau mais je sais aps trop ou aller voilà ce que j'ai commencer:

Code : Tout sélectionner

<? $nom=$_POST['nom']; $email=$_POST['email']; $sujet=$_POST['sujet']; $texte=$_POST['texte']; $contact="contact@r"; $headers ='From:'.$email.'\n'; $erreur=array( "Vous devez remplir tous les champs", "Votre e-mail est invalide", "Votre demande a bien été envoyée et sera traitée dans les plus brèves délai"); if ( empty($nom) || empty($email) || empty($texte)) {echo $erreur[0]; } if ( !ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]{2,3})*$",$email)) {echo $erreur[1]; } if ( mail($contact,$sujet,$texte,$headers)) {echo $erreur[2]; } ?>