Code PHP formulaire>mail

boilatas
Invité n'ayant pas de compte PHPfrance

26 mars 2007, 22:59

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

ViPHP
ViPHP | 1996 Messages

27 mars 2007, 18:28

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.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr