Page 1 sur 1

Code PHP formulaire>mail

Posté : 26 mars 2007, 22:59
par boilatas
Bonsoir,

Je suis inexpérimenté mais je bidouille petit à petit. Mais là, c'est le blaquage.

Mon code vous semble t'il bon?... Merci. Car ma requête ne fonctionne pas...
Mon mail n'est pas envoyé, je tombe sur une page IE ne réponds pas et mes échos du coup ne fonctionne pas.

Merci de votre aide.

Code : Tout sélectionner

<?php $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>"; $msg_ok = "Votre demande a bien été prise en compte."; $message = $msg_erreur; define('MAIL_DESTINATAIRE','mon [email protected]'); define('MAIL_SUJET','Message du formulaire de example.com'); // vérification des champs if (empty($_POST['civilite'])) $message .= "Votre civilité<br/>"; if (empty($_POST['nom'])) $message .= "Votre nom<br/>"; if (empty($_POST['prénom'])) $message .= "Votre prénom<br/>"; if (empty($_POST['adresse'])) $message .= "Votre adresse<br/>"; if (empty($_POST['codepostal'])) $message .= "Votre code postal<br/>"; if (empty($_POST['ville'])) $message .= "Votre ville<br/>"; if (empty($_POST['telephonefixe'])) $message .= "Votre téléphone fixe<br/>"; if (empty($_POST['mail'])) $message .= "Votre e-mail<br/>"; // si un champ est vide, on affiche le message d'erreur if (strlen($message) > strlen($msg_erreur)) { echo $message; // sinon c'est ok } else { foreach($_POST as $index => $valeur) { $$index = stripslashes(trim($valeur)); } $corpsmetier = $_POST['corpsmetier']; $sqlcorpsmetier = ''; for ($i=0; $i<count($corpsmetier); $i++) { $sqlcorpsmetier .= $corpsmetier[$i]; $sqlcorpsmetier .= ', '; } //Préparation de l'entête du mail: $mail_entete = "MIME-Version: 1.0\r\n"; $mail_entete .= "From: {$_POST['nom']} " ."<{$_POST['email']}>\r\n"; $mail_entete .= 'Reply-To: '.$_POST['email']."\r\n"; $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"'; $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n"; $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n"; // préparation du corps du mail $mail_corps = "Message de : $civilite $nom\n"; $mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n"; $mail_corps .= "Les corps de métier souhaités : $sqlcorpsmetier\n\n\n"; $mail_corps .= $description; // envoi du mail if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) { //Le mail est bien expédié echo $msg_ok; } else { //Le mail n'a pas été expédié echo 'Une erreur est survenue lors de l\'envoi du formulaire par email'; } } ?>Pas de titre<?php $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>"; $msg_ok = "Votre demande a bien été prise en compte."; $message = $msg_erreur; define('MAIL_DESTINATAIRE','mon [email protected]'); define('MAIL_SUJET','Message du formulaire de example.com'); // vérification des champs if (empty($_POST['civilite'])) $message .= "Votre civilité<br/>"; if (empty($_POST['nom'])) $message .= "Votre nom<br/>"; if (empty($_POST['prénom'])) $message .= "Votre prénom<br/>"; if (empty($_POST['adresse'])) $message .= "Votre adresse<br/>"; if (empty($_POST['codepostal'])) $message .= "Votre code postal<br/>"; if (empty($_POST['ville'])) $message .= "Votre ville<br/>"; if (empty($_POST['telephonefixe'])) $message .= "Votre téléphone fixe<br/>"; if (empty($_POST['mail'])) $message .= "Votre e-mail<br/>"; // si un champ est vide, on affiche le message d'erreur if (strlen($message) > strlen($msg_erreur)) { echo $message; // sinon c'est ok } else { foreach($_POST as $index => $valeur) { $$index = stripslashes(trim($valeur)); } $corpsmetier = $_POST['corpsmetier']; $sqlcorpsmetier = ''; for ($i=0; $i<count($corpsmetier); $i++) { $sqlcorpsmetier .= $corpsmetier[$i]; $sqlcorpsmetier .= ', '; } //Préparation de l'entête du mail: $mail_entete = "MIME-Version: 1.0\r\n"; $mail_entete .= "From: {$_POST['nom']} " ."<{$_POST['email']}>\r\n"; $mail_entete .= 'Reply-To: '.$_POST['email']."\r\n"; $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"'; $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n"; $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n"; // préparation du corps du mail $mail_corps = "Message de : $civilite $nom\n"; $mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n"; $mail_corps .= "Les corps de métier souhaités : $sqlcorpsmetier\n\n\n"; $mail_corps .= $description; // envoi du mail if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) { //Le mail est bien expédié echo $msg_ok; } else { //Le mail n'a pas été expédié echo 'Une erreur est survenue lors de l\'envoi du formulaire par email'; } } ?>

Posté : 27 mars 2007, 18:28
par Aureusms
Bonsoir,

Mon débuggeur a marqué cette ligne en rouge à cause des concaténation mais je doute que ce soit cela...
$mail_entete .= "From: {".$_POST['nom']."} "."<{".$_POST['email']."}>\r\n";
Tu as aussi cela :
$$index = stripslashes(trim($valeur));
Voilà ce que j'ai vu rapidement.