Chopin Posté 8 Avril 2006 Posté 8 Avril 2006 Bonjours, J'ai un problème plutot complexe, voila ce qui ce passe, j'utilise un script php pour envoyé un mails avec pieces jointe (la piéce jointe est envoyé sur le serveur) le seul problème c'est que la pieces jointe est bien envoyé sur le serveur mais les champs de formulaire remplie avec du texte qui était destiné à ètre envoyé dans une boite mail bien déféni dans le code (absolument rien n'est envoyé dans la boite mail. Voici le code que j'utilise. Je comprend vraimet pas car j'ai bien mis dans le $dest=" " mon adresse mail donc les infos du formulaire devrais attérir dans ma boite mail mais pourtant..... <?php $dest="chopin_fred_AT_msn.com"; $up_full = "http://tchaikowsky.free.fr/contact-2/upload/"; $up_dir = "./upload/"; $UploadNum = "3"; $online_isp = "0"; function unique_id(){ $taille = 6; $new_pass = ''; $lettres = "abcdefghijklmnpqrstuvwxyz123456789"; srand(time()); for ($i=0;$i<$taille;$i++) { $new_pass.=substr($lettres,(rand()%(strlen($lettres))),1); }define("timer", $new_pass);}unique_id();ini_set("sendmail_from", $dest);if(isset($_POST["submit"])){ $From = preg_replace("/\r/", "", $_POST['From']); $From = preg_replace("/\n/", "", $_POST['From']); $Name = preg_replace("/\r/", "", $_POST['Name']); $Name = preg_replace("/\n/", "", $_POST['Name']); $Nada = ''; $Msg = $_POST['Msg']; if(empty($From)) { $Nada.="Le champ d'email est vide !<br>"; } if(empty($Msg)) { $Nada.="Le champ message est vide !<br>"; } $noway = "$Nada" ; if(empty($Nada) && eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$",$From)) { $ok = TRUE; } elseif(!empty($Nada) && eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$",$From)) { $ok = FALSE; } else { $ml = "Votre adresse email est invalide !<br>"; $ok = FALSE; } $status = ''; $new_name = ''; $get_files = ''; $all_names = ''; for($i=0;$i<count($_FILES["fileup"]["tmp_name"]);$i++) { $name=$_FILES["fileup"]["name"][$i]; $temp=$_FILES["fileup"]["tmp_name"][$i]; $size=$_FILES["fileup"]["size"][$i]; $type=$_FILES["fileup"]["type"][$i]; $h = time(); if($size > 0) { global $up_dir, $all_names; $new_name = $h .'-'. constant('timer') . '-' . $name; $new_name = strtr($new_name, " àäåéèêëïîôöùüûñ()[]'~$&%*@ç!?;,:/^?{}|+", "_aaaeeeeiioouuun____________________E____"); _AT_move_uploaded_file($temp, $up_dir . $new_name); $all_names.= "$new_name\n"; } } if(empty($all_names)) { $status = "Pas de fichier join."; } else { $status = "Le fichier a été corectement envoyé."; $get_files = "\nGet the file(s): $up_full"; } if($ok == "TRUE") { $referer = $_SERVER["HTTP_REFERER"]; $subject = "Feedback"; $body = "Origin: $referer\n"; $body.="\n***** Results *****\n\n"; if(count($_POST)) { while(list($key, $val) = each($_POST)) { $body.="$key : $val\n"; } } $body.="\n\n"; $body.="Upload: $status\n"; $body.="$all_names\n"; $body.="$get_files\n"; $body.="*************************\n"; $body = stripslashes($body); if($online_isp == "1") { if(!email("feedback",$dest,$sujet,$body)) { print "An error occured during mail delivery <br>"; } } else { $header = ''; $header.= 'From: "' . $Name . '" <' . $From . ">\r\n"; $header.= 'Reply-To: "' . $Name . '" <' . $From . ">\r\n"; $header.= "X-Mailer: PHP/" . phpversion(); if(!mail($dest, $subject, $body, $header )) { print "An error occured during mail delivery <br>"; } }?> Voila je remerci par avance la personne qui m'indiquera quelle erreur j'ai comise dans le code si cela vient du code. Voici l'adresse ou j'ai mit le formulaire si cela peut vous aidez à mieux m'aidez. contact musique et interprete
Mamat Posté 8 Avril 2006 Posté 8 Avril 2006 Je ne suis pas sur de comprendre ou se citu ton probleme, mais au cas où et suivant le réglage de ton serveur, n'oublie pas de récupérer les variables transmises par des lignes du genre $Mail = $_POST['Mail']
Chopin Posté 8 Avril 2006 Auteur Posté 8 Avril 2006 En faite c'est simple je reçoi pas le mail sur ma boite mail, le fichier joint lui en revanche et bien uploadé sur le serveur dans le dosier "upload" Et je vois pas d'ou peut venir l'erreur dans le code je suis chez free.fr ca vient peut etre du serveur qui ne prend pas toute les fonctions de ce script. Sinon voici le code complet que j'utilise sur cet page de teste http://tchaikowsky.free.fr/contact-2/contact.php <?php $dest="chopin_fred_AT_msn.com"; $up_full = "http://tchaikowsky.free.fr/contact-2/upload/"; $up_dir = "./upload/"; $UploadNum = "3"; $online_isp = "0"; function unique_id(){ $taille = 6; $new_pass = ''; $lettres = "abcdefghijklmnpqrstuvwxyz123456789"; srand(time()); for ($i=0;$i<$taille;$i++) { $new_pass.=substr($lettres,(rand()%(strlen($lettres))),1); }define("timer", $new_pass);}unique_id();ini_set("sendmail_from", $dest);if(isset($_POST["submit"])){ $From = preg_replace("/\r/", "", $_POST['From']); $From = preg_replace("/\n/", "", $_POST['From']); $Name = preg_replace("/\r/", "", $_POST['Name']); $Name = preg_replace("/\n/", "", $_POST['Name']); $Nada = ''; $Msg = $_POST['Msg']; if(empty($From)) { $Nada.="Le champ d'email est vide !<br>"; } if(empty($Msg)) { $Nada.="Le champ message est vide !<br>"; } $noway = "$Nada" ; if(empty($Nada) && eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$",$From)) { $ok = TRUE; } elseif(!empty($Nada) && eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$",$From)) { $ok = FALSE; } else { $ml = "Votre adresse email est invalide !<br>"; $ok = FALSE; } $status = ''; $new_name = ''; $get_files = ''; $all_names = ''; for($i=0;$i<count($_FILES["fileup"]["tmp_name"]);$i++) { $name=$_FILES["fileup"]["name"][$i]; $temp=$_FILES["fileup"]["tmp_name"][$i]; $size=$_FILES["fileup"]["size"][$i]; $type=$_FILES["fileup"]["type"][$i]; $h = time(); if($size > 0) { global $up_dir, $all_names; $new_name = $h .'-'. constant('timer') . '-' . $name; $new_name = strtr($new_name, " àäåéèêëïîôöùüûñ()[]'~$&%*@ç!?;,:/^?{}|+", "_aaaeeeeiioouuun____________________E____"); _AT_move_uploaded_file($temp, $up_dir . $new_name); $all_names.= "$new_name\n"; } } if(empty($all_names)) { $status = "Pas de fichier join."; } else { $status = "Le fichier a été corectement envoyé."; $get_files = "\nGet the file(s): $up_full"; } if($ok == "TRUE") { $referer = $_SERVER["HTTP_REFERER"]; $subject = "Feedback"; $body = "Origin: $referer\n"; $body.="\n***** Results *****\n\n"; if(count($_POST)) { while(list($key, $val) = each($_POST)) { $body.="$key : $val\n"; } } $body.="\n\n"; $body.="Upload: $status\n"; $body.="$all_names\n"; $body.="$get_files\n"; $body.="*************************\n"; $body = stripslashes($body); if($online_isp == "1") { if(!email("feedback",$dest,$sujet,$body)) { print "An error occured during mail delivery <br>"; } } else { $header = ''; $header.= 'From: "' . $Name . '" <' . $From . ">\r\n"; $header.= 'Reply-To: "' . $Name . '" <' . $From . ">\r\n"; $header.= "X-Mailer: PHP/" . phpversion(); if(!mail($dest, $subject, $body, $header )) { print "An error occured during mail delivery <br>"; } }?><html><head><title>Succés !</title></head><body bgcolor="white" text="black" link="#003399" vlink="#003399" alink="#003399"><center><table width="450" border="0" cellspacing="0" cellpadding="0"><tr><td width="100%" bgcolor="#000000"><table width="550" border="0" cellspacing="1" cellpadding="2"><tr><td colspan="2" bgcolor="#ffffff"><div align="center"><br>Merci !<br><br>Le message a été corectement envoyé au webmaster.<br><br><?php echo $status; ?><br><p> </p><p> </p><p><a href="contact.php">Retour au formulaire</a></p><br></div><font size="-2"><a href="http://www.skyminds.net/source/" target="_blank">Mail-it Now!</a></font> </tr></table></td></tr></table></center></body><!--This script sources from SkyMinds.Net (http://www.skyminds.net/) --></html><?php } else {?><html><head><title>Erreur !</title></head><body bgcolor="white"><center><table width="450" border="0" cellspacing="0" cellpadding="0"><tr><td width="100%" bgcolor="#000000"><table width="550" border="0" cellspacing="1" cellpadding="2"><tr><td colspan="2" bgcolor="#ffffff"><div align="center"><br><b><?php echo $noway;echo $ml;?></b><p><br><br>Le message a pas été corectement envoyé, cliquez sur Retour pour recommencer.<br> <a href="../Zcontact/Zcontact.php">Contacter le webmaster</a> Si cela se reproduit.</p><p> </p><p> </p><p><a href='java script:history.go(-1)'>Retour</a></p><br></div><font size="-2"><a href="http://www.skyminds.net/source/" target="_blank">Mail-it Now!</a></font></tr></table></td></tr></table></center></body><!--This script sources from SkyMinds.Net (http://www.skyminds.net/) --></html><?php } }else{ $num = 0; $upload_box = ''; while($num < $UploadNum) { $num++; $upload_box.= "<tr><td><font size='-1' face='verdana'> File $num:</font></td><td><input name='fileup[]' type='file'></td>"; }?><html><head><title>Contact form</title></head><body bgcolor="#FFFFFF" text="#000000" link="#003399" vlink="#003399" alink="#003399"topmargin=" 0" leftmargin="0" marginwidth="0" marginheight="0" style="border: 1"><!----><table border="0" width="60%" align="center"><tr><td valign="top"><table border="1" width="70%" bordercolor="#000000" bordercolordark="#FFFFFF" cols="1" align="center"><tr><td> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"><table border="0" bordercolor="#000000" height="100" align="center"><tr> <td height="5" width="218"><font size="2" face="Arial, Helvetica, sans-serif"><b>Email : </b></font></td><td height="5" width="249"><input type="text" size="30" maxlength="255" name="From" style="background-color: #CCCCCC;font: verdana; color: #000000; border: 0px;" value=""></td></tr><tr><td height="5" width="218"><font size="2" face="Arial, Helvetica, sans-serif">Name : </font></td><td height="5" width="249"><input type="text" size="30" name="Name" style="background-color: #CCCCCC;font: verdana; color: #000000; border: 0px;" value=""></td></tr></table><p align="center"><b><font size="2" face="Arial, Helvetica, sans-serif">Message : </font></b><br><textarea name="Msg" cols="45" rows="7"></textarea><br></p><table width="95%" border="0" align="center"><tr align="center"><td> </td><?php echo $upload_box; ?></tr></table><p align="center"><br><input type="reset" name="reset" value=" Clear "><input type="submit" name="submit" value=" Send " style="background-color:#CCCCCC"></p></form><font size="-2"><a href="http://www.skyminds.net/source/" target="_blank">Mail-it Now!</a></font></td></tr></table></td></tr></table></body><!--This script sources from SkyMinds.Net (http://www.skyminds.net/) --></html><?php } ?> Merci encore a ceux qui m'aide.
Jeanluc Posté 8 Avril 2006 Posté 8 Avril 2006 (modifié) Message supprimé (c'était une fausse piste, désolé). Jean-Luc Modifié 8 Avril 2006 par Jeanluc
Leonick Posté 8 Avril 2006 Posté 8 Avril 2006 le $dest="chopin_fred_AT_msn.com"; n'est pas écrit comme ça dans le code ? Sinon, c'est normal que le mel ne parte pas
Chopin Posté 8 Avril 2006 Auteur Posté 8 Avril 2006 Non j'avais aussi remarqué dansle vrai code le _at_ c'est un _AT_
Leonick Posté 8 Avril 2006 Posté 8 Avril 2006 Déja, dans $From = preg_replace("/\r/", "", $_POST['From']);$From = preg_replace("/\n/", "", $_POST['From']); la 1° ligne ne sert à rien si la 2° utilise $_POST['From'] et non $From Je ne trouve pas "Le message a été corectement envoyé au webmaster." dans le code. Sinon, il faudrait vérifier si déjà chez ton hébergeur la fonction mail() fonctionne. Autrement, ajouter au début du script un error_reporting(E_ALL); qui affichera toutes les erreurs d'exécution.
Chopin Posté 8 Avril 2006 Auteur Posté 8 Avril 2006 J'ai enlevé la 2e ligne mais ca ne fonctionne toujours pas , pour la fonction mail () je m'en sert pour un autre script et il fonctionne. en revanche j'ai reçu des messages test envoyé par vous j'imagine, donc c'est que ca fonctionne chez vous mais pas dans mon hebergeur à moin que vous avez modifié le code pour que cela fonctionne. Si c'est le cas pourriez vous me dire ce que vous avez modifier a part la ligne $From = preg_replace("/\n/", "", $_POST['From']); que j'ai deja essayé. Merci encore de votre aide.
Leonick Posté 8 Avril 2006 Posté 8 Avril 2006 Non, j'ai juste rempli le formulaire. A vérifier alors, peut-être une incompatibilité avec l'envoi de fichier. Genre s'il y a des fichiers, fin de la procédure, peut-être ?
Chopin Posté 8 Avril 2006 Auteur Posté 8 Avril 2006 Nan sans fichier ca fonctionne toujours pas je pense que doit plutot venir de l'hebergement alors. Bien merci encore pour l'aide que vous m'avez apporté même si mon probleme n'est pas résolu ce n'était pas inutile j'ai pu comprendre plusieurs choses et ca ma donné une autre idée.
olive457 Posté 9 Avril 2006 Posté 9 Avril 2006 Salut, Free a désactivé la fonction mail en php pour des raisons de surcharge ou de sécurité... Ils ont prévu quand même un formulaire en cgi pour leurs clients qui est sur leur site... Tu ne pourras donc pas utiliser de fonctions mail...ni changer le CHMOD (autorisations) C'est étonnant qu'ils n'aient pas désactivé l'upload des fichiers... A plus Olivier
Leonick Posté 9 Avril 2006 Posté 9 Avril 2006 Elle n'est pas désactivée la fonction mail() chez free, car : 1) je l'utilise sur un de mes sites 2) les tests que j'ai effectués hier sur son domaine lui ont bien envoyé le message
olive457 Posté 9 Avril 2006 Posté 9 Avril 2006 Salut, Effectivement, ils l'ont réactivée depuis un moment: La fonction mail() chez Free Désolé, je suis un peu en retard Olivier
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant