Formulaire de contact, quel solutions ?

Eléphant du PHP | 61 Messages

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]; } ?>

Mammouth du PHP | 601 Messages

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
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

ViPHP
ViPHP | 1961 Messages

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)
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 61 Messages

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

Eléphant du PHP | 61 Messages

04 nov. 2006, 19:03

up

Mammouth du PHP | 601 Messages

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
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Mammouth du PHP | 601 Messages

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".
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"