Prob d'envoi de fomulaire

Résolu
simsgodzilla Messages postés 24 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 25 juin 2006 - 7 juin 2006 à 15:39
simsgodzilla Messages postés 24 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 25 juin 2006 - 25 juin 2006 à 19:17
Bonjour!
Pourriez vous me dire ce qui cloche dans ce code? il parrait archer à l'execption près que l'envoi ne s'effectue pas...lol

<? // Exemple d'envoi de formulaire


// Interface PHP pour mail()
function sendMail($mFrom,$mTo,$sujet,$body) {
 // l'émetteur
 $tete = "From: ".$mFrom."\n";
 $tete .= "Reply-To: ".$mFrom."\n";
 // et zou... false si erreur d'émission
 return mail($mTo,$sujet,$body,$tete);
}


?><HTML><HEAD>
 <TITLE>Exemple</TITLE>
</HEAD><center>


<? // SI LE FORM A ETE POSTE
if(!empty($_POST["Email"])) {


 // Récupère les éléments du form
 $temp="";
 while (list($truc, $val) = each($HTTP_POST_VARS))
  $temp .= $truc." : ".$val."\n\n";
 // Caractères spéciaux
 $temp = stripslashes($temp);


 // Envoie le message
 // L'émetteur est aussi le récepteur dans cet exemple !
 if(@sendmail($_POST["Email"],$_POST["Email"],"Test SendForm",$temp)) {
  // Affiche un message de confirmation
  echo "Le formulaire a bien été envoyé à ".$_POST["Email"]." !";
 } else {
  // ou un message d'erreur
  echo "Impossible d'envoyer le formulaire !";
 }


// SINON AFFICHAGE DU FORM
} else { ?>
 <script language ="JavaScript">
  // Teste si le mail a une forme correcte
  function checkmail(email) {
   var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,4}$/
   return (reg.exec(email)!=null)
  }
  // Teste le contenu des champs du form avant submit
  function test(nom,mail) {
   if(nom.value=="") {
    alert("Indiquez votre nom !"); nom.focus(); return false;
   } else if(!checkmail(mail.value)) {
    alert("Email incorrect !"); mail.focus(); return false;
   }
   return true;
  }
 </script>
 <form method=\"post\" onsubmit=\"return test(this.Nom,this.Email)\">
  ----

   Nom
,
   Email
,
  ----

   Message

    <textarea wrap=virtual rows=5 cols=35 name="Message"></textarea>,
  ----

   Sexe
    M
    F,
   Pays
    <select name="Pays">
     <option>France</option>
     <option>Belgique</option>
     <option>Suisse</option>
     <option>Autre</option>
    </select>,
  ----

       
     Recevoir la newsletter,
  ----

       ">
    ,
  
 </form>

<? } ?>
<? print (Date("l F d, Y")); ?>
</HTML>

30 réponses

JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
7 juin 2006 à 16:39
Ahhhh, faut configurer ton serveur localhost pour les emails :D

<hr style="width: 100%; height: 2px;" />Si ma reponse te convient, merci de l'accepter !
3
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
7 juin 2006 à 17:18
Euh ... faut ouvrir le ficher de configuration de ton logiciel Php (Apache, EasyPhp, Wamp5 ...)

Et trouver les lignes

SMTP = smtp.free.fr
; for win32 only

; For Win32 only. l'adresse e-mail qui apparaitra dans le message envoyé
sendmail_from = mon.nom@free.fr ;for win32 only

; For Unix only. à configurer seulement si utilisé unix ou linux
;sendmail_path = mon.nom@free.fr ;

tout en modifiant ce qui doit l'être

 Free, smtp.free.fr, ----
Magic Online, smtp.magic.fr, ----
Club-Internet, mail.club-internet.fr, ----
BD Way, mail.bdway.com, ----
Wanadoo, smtp.wanadoo.fr, ----
Easynet, smtp.easynet.fr, ----
France Explorer, smtp.9online.fr, ----
CompuServ, smtp.compuserv.com, ----
ClaraNet, smtp.claranet.fr

<hr style="width: 100%; height: 2px;" />Si ma reponse te convient, merci de l'accepter !
3
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
7 juin 2006 à 17:46
^^

Faut verifier dans ta fonction

mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] )

Ensuite pour ton REMOTE_ADDR, c'est $_SERVER['REMOTE_ADDR'];

<hr style="width: 100%; height: 2px;" />Si ma reponse te convient, merci de l'accepter !
3
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
7 juin 2006 à 19:05
if(@sendmail($_POST['Email'], 'ton_adrese@email.com', 'Test', $temp)) {

:D Essaye ;)
<hr style="width: 100%; height: 2px;" />Si ma reponse te convient, merci de l'accepter !
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
David_monchy Messages postés 214 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 23 juin 2006 1
7 juin 2006 à 15:51
Bah je n'ai pas lu tout le code, mais tu n'as pas d'action dans ta balise form, donc c'est peut etre dû à cela...
0
simsgodzilla Messages postés 24 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 25 juin 2006
7 juin 2006 à 15:58
pas bête...mais est ce que ça peut pas être "sendmail" l'action en question? : function sendMail($mFrom,$mTo,$sujet,$body) {
Sinon, il fo mettre quoi?

Merci beuacoup!
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
7 juin 2006 à 16:07
Salut,
Voici le code plus aux normes :

<?php // Exemple d'envoi de formulaire

// Interface PHP pour mail()
function sendMail($mFrom,$mTo,$sujet,$body) {
 // l'émetteur
 $tete  = 'From: ' . $mFrom . "\n";
 $tete .= 'Reply-To: ' . $mFrom . "\n";
 // et zou... false si erreur d'émission
 return mail($mTo,$sujet,$body,$tete);
}

?><HTML><HEAD>
 <TITLE>Exemple</TITLE>
</HEAD><center>

<?php // SI LE FORM A ETE POSTE
if(!empty($_POST['Email'])) {

 // Récupère les éléments du form
 $temp='';
 while (list($truc, $val) = each($_POST))
  $temp .= $truc . ' : ' . $val . "\n\n";
 // Caractères spéciaux
 $temp = stripslashes($temp);

 // Envoie le message
 // L'émetteur est aussi le récepteur dans cet exemple !
 if(@sendmail($_POST['Email'],$_POST['Email'], 'Test SendForm',$temp)) {
  // Affiche un message de confirmation
  echo 'Le formulaire a bien été envoyé à ', htmlentities($_POST['Email']), '<gras></gras> !';
 } else {
  // ou un message d'erreur
  echo 'Impossible d\'envoyer le formulaire !';
 }

// SINON AFFICHAGE DU FORM
} else { ?>
 <script language ="text/JavaScript">
  // Teste si le mail a une forme correcte
  function checkmail(email) {
   var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,4}$/
   return (reg.exec(email)!=null)
  }
  // Teste le contenu des champs du form avant submit
  function test(nom,mail) {
   if(nom.value=='') {
    alert('Indiquez votre nom !'); nom.focus(); return false;
   } else if(!checkmail(mail.value)) {
    alert('Email incorrect !'); mail.focus(); return false;
   }
   return true;
  }
 </script>
 <form action=\"<?php echo $_SERVER['PHP_SELF']; ?>\" method =\"post\" onsubmit=\"return test(this.Nom,this.Email)\">
  ----

   Nom
,
   Email
,
  ----

   Message

    <textarea wrap="virtual" rows=5 cols=35 name="Message"></textarea>,
  ----

   Sexe
    />M
    />F,
   Pays
    <select name="Pays">
     <option>France</option>
     <option>Belgique</option>
     <option>Suisse</option>
     <option>Autre</option>
    </select>,
  ----

       />
     Recevoir la newsletter,
  ----

   />
    " />
    />,
 
 </form>

<?php }

echo Date('l F d, Y');

?>
</HTML>

Sinon, verifi coté javascript ...
<hr style="width: 100%; height: 2px;" />Si ma reponse te convient, merci de l'accepter !
0
simsgodzilla Messages postés 24 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 25 juin 2006
7 juin 2006 à 16:15
J'aurais tellement voulu accepter ta réponse (qui avait l'air top!)
mais il me marque toujours : impossible d'envoyer le formulaire!
tu crois que ça vient forcément du code?
0
David_monchy Messages postés 214 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 23 juin 2006 1
7 juin 2006 à 16:16
Je suis d'accord avec JoJo738, mais dans ce cas, il faut faire gaffe, car parfois $_SERVER['PHP_SELF'] ne renvoie pas la page désirée selon si cette page est inclue ou non. Si son code ne marche pas, remplace le par le nom de ta page contenant le formulaire.
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
7 juin 2006 à 16:25
Enleve le @ à l'appel de ta fontion pour voir l'erreur reportée :p

<hr style="width: 100%; height: 2px;" />Si ma reponse te convient, merci de l'accepter !
0
simsgodzilla Messages postés 24 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 25 juin 2006
7 juin 2006 à 16:31
Hum....
voici la rep :
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\documents and settings\administrator\mes documents\sophie\master2\www\index.php on line 9
Impossible d'envoyer le formulaire !Wednesday June 07, 2006

Kézako?
0
simsgodzilla Messages postés 24 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 25 juin 2006
7 juin 2006 à 16:43
 comment fo faire....en détail...(désolée de t'enquiquiner...mais jsuis débutante...snif)
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
7 juin 2006 à 16:52
Euh, faut modifier le php.ini

Par exemple :
For Win32 only. paramètre du serveur smtp de votre fournisseur d'accès
SMTP = smtp.free.fr ;for win32 only

; For Win32 only. l'adresse e-mail qui apparaitra dans le message envoyé
sendmail_from = mon.nom@free.fr ;for win32 only

; For Unix only. à configurer seulement si utilisé unix ou linux
;sendmail_path = mon.nom@free.fr ;

A modifier, je sais plus comment ^^ Et verifie que ton port 80 est ouvert
<hr style="width: 100%; height: 2px;" />Si ma reponse te convient, merci de l'accepter !
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
7 juin 2006 à 17:06
AHHHH message non posté !!!! bug intnernet ...

Donc, bah, faut modifier le php.ini (smtp) et verifier que ton port pour les mails est ouvert ( Pare feu )

Par exemple :


[mail function]


; For Win32 only.


;SMTP = localhost


SMTP = smtp.wanadoo.fr


smtp_port = 25


; For Win32 only.


sendmail_from = [mailto:me@example.com me@example.com]

Mais la, c'est pour Wanadoo ^^

<hr style="width: 100%; height: 2px;" />Si ma reponse te convient, merci de l'accepter !
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
7 juin 2006 à 17:07
Admin ... lol, j'aime pas les multis pages ... mdr !!!!!!!!

malalam ... tu peux suppr le message precedent et celui là ????

<hr style="width: 100%; height: 2px;" />Si ma reponse te convient, merci de l'accepter !
0
simsgodzilla Messages postés 24 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 25 juin 2006
7 juin 2006 à 17:13
Je peux pas supprimer de messages...? si oui, dis moi comment on fait...

Mais c quoi le blem? c fo ce que tu m'as dis? tu sais pour moi c du chinois tout ça.... j'en peux plus.....jen ai marrrrrrrrr.... c vraiment pas mon truc le multimédia....pfff....(désolée pour ce passage)

Bon ,je fais quoi?....
0
simsgodzilla Messages postés 24 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 25 juin 2006
7 juin 2006 à 17:37
JE TAIMEEEEEEEEEEE lollllll

ça a marchéééééééé !!!!!! Un gran, un énorme merci! tu mas sauvé la vie!!!!!

juste un dernier truc, voilà ce qui s'affiche dans le mail reçu :
Nom : ggggg

Email : a.rico1@caramail.com

Message : fffdf

Sexe : Homme

Pays : France

IP :

Notice:  Undefined variable:  REMOTE_ADDR in c:documents and
settingsadministratormes documentssophiemaster2wwwindex.php on line
78

De plus, c'est pas moi qui le reçois, mais l'internaute! lol
bizrrare?
0
simsgodzilla Messages postés 24 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 25 juin 2006
7 juin 2006 à 18:09
Ok, c bon pour le bug!

Mais reste à eclaircir ce point : pour il l'envoi à "l'internaute" ([mailto:a.rico1@caramail.com a.rico1@caramail.com]) et pas à moi? ([mailto:sophie.perrier6@wanadoo.fr sophie.perrier6@wanadoo.fr]) il fait l'inverse.... meme s'il dit bien que le message provient de a.rico1@....
et l'IP, est-ce nécéssaire finalement?
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
7 juin 2006 à 18:13
Euh, ta inversé l'expediteur et le destinataire, non ?
L'ip, tout depend de toi et ce que tu veux faire

<hr style="width: 100%; height: 2px;" />Si ma reponse te convient, merci de l'accepter !
0
simsgodzilla Messages postés 24 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 25 juin 2006
7 juin 2006 à 18:34
ça fait 20 minutes que j'essai plein de manip pour cette histoire d'inversion mais rien n'y fait! tu vois ou est le bug toi? merci....;
0
Rejoignez-nous