Problème code php dans formulaire

Fermé
Clément Thiery - Modifié par jordane45 le 22/06/2015 à 19:24
jordane45 Messages postés 38311 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 22 juin 2015 à 20:06
Bonjour,

je code mon site internet mais je n'ai pas fait de php en cours. Sauf que ici, je vais en avoir besoin pour l'envoi de formulaire. En fait, j'aimerais recevoir un mail avec les informations du formulaire. Voici mon code

<?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','***@***'); // remplacer par votre email
define('MAIL_SUJET','Message du formulaire de example.com');

// vérification des champs
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['email']))
$message .= "Votre email<br/>";
if (empty($_POST['message']))
$message .= "Votre message<br/>";

// si un champ est vide, on affiche le message d'erreur et on stoppe le script
if (strlen($message) > strlen($msg_erreur)) {
 echo $message;
 }

// sinon c'est ok => on continue
foreach($_POST as $index => $valeur) {
  $$index = stripslashes(trim($valeur));
}

$interets = $_POST['interets'];
$sqlinterets = '';
for ($i=0; $i<count($interets); $i++)
{
  $sqlinterets .= $interets[$i];
  $sqlinterets .= ', ';
}

//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 .= "Ses centres d'intérêts : $sqlinterets\n\n\n";
$mail_corps .= $comments;

// 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";
}

?>


On m'annonce une erreur au niveau de la ligne 52 --> echo $msg_ok;

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.

A voir également:

4 réponses

jordane45 Messages postés 38311 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
22 juin 2015 à 19:26
Bonjour,

On m'annonce une erreur

Pourrions-nous avoir le message Exact et complet de l'erreur ?
1
Clément Thiery
22 juin 2015 à 19:29
Parse error: syntax error, unexpected 'Â Â ' (T_STRING) in /home/u187567625/public_html/traitement.php on line 52
0
jordane45 Messages postés 38311 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
22 juin 2015 à 19:51
Tu peux ajouter, avant l'envoie de mail, un peu de debug pour voir ce que contiennent tes variables :
	// le temps des tests :
	echo "<br>header : ".$mail_entete;
	echo "<br>mail_corps : ".$mail_corps;
	echo "<br> MAIL_DESTINATAIRE : ".MAIL_DESTINATAIRE;
	echo "<br> MAIL_SUJET : ".MAIL_SUJET;

Histoire de vérifier si il n'y aurait pas des caractères spéciaux ou autre ...


Et sinon , au cas où, peux tu tester avec ce code :
<?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','***@***'); // remplacer par votre email
define('MAIL_SUJET','Message du formulaire de example.com');

// vérification des champs
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['email']))
$message .= "Votre email<br/>";
if (empty($_POST['message']))
$message .= "Votre message<br/>";

$nom = !empty($_POST['nom'])?$_POST['nom']:'';
$email = !empty($_POST['email'])?$_POST['email']:'';


// si un champ est vide, on affiche le message d'erreur et on stoppe le script
if (strlen($message) > strlen($msg_erreur)) {
 echo $message;
 }

// sinon c'est ok => on continue
foreach($_POST as $index => $valeur) {
  $$index = stripslashes(trim($valeur));
}

$interets = isset($_POST['interets'])?$_POST['interets']:array();
$sqlinterets = '';
for ($i=0; $i<count($interets); $i++){
  $sqlinterets .= $interets[$i];
  $sqlinterets .= ', ';
}

  // Creation de l'entete du mail a envoyer
  // --------------------------------------
  $boundary = md5(uniqid(microtime(), TRUE));
  $mail_entete =  "From: ".$nom." <".$email.">\r\n";
  $mail_entete .= 'Reply-To: '.$email."\r\n";
  $mail_entete .= 'Mime-Version: 1.0'."\r\n";
  $mail_entete .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
  $mail_entete .= "\r\n";
 
  // Creation du message a envoyer
  // -----------------------------
  // préparation du corps du mail
  $mail_corps  ='--' . $boundary . "\r\n" . 'Content-type: text/html; charset=ISO-8859-1' . "\r\n\r\n";
  $mail_corps .= "Message de : $civilite $nom\n";
  $mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n";
  $mail_corps .= "Ses centres d'intérêts : $sqlinterets\n\n\n";
  $mail_corps .= $comments;
  

	// le temps des tests :
	echo "<br>header : ".$mail_entete;
	echo "<br>mail_corps : ".$mail_corps;
	echo "<br> MAIL_DESTINATAIRE : ".MAIL_DESTINATAIRE;
	echo "<br> MAIL_SUJET : ".MAIL_SUJET;
	
// 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";
}



 }

?>

0
Clément Thiery
22 juin 2015 à 20:02
Parse error: syntax error, unexpected '}' in /home/u187567625/public_html/traitement.php on line 73

Est-ce du à la parenthèse qui est toute seule à ce niveau là ?
0
jordane45 Messages postés 38311 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
22 juin 2015 à 20:06
oui pardon.. tu peux supprimer cette ligne.
0