Problème code php dans formulaire
Clément Thiery
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
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
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.
.
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:
- Problème code php dans formulaire
- Whatsapp formulaire opposition - Guide
- Code ascii - Guide
- Formulaire de réclamation facebook - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
4 réponses
Parse error: syntax error, unexpected 'Â Â ' (T_STRING) in /home/u187567625/public_html/traitement.php on line 52
Tu peux ajouter, avant l'envoie de mail, un peu de debug pour voir ce que contiennent tes variables :
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 :
// 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"; } } ?>
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à ?
Est-ce du à la parenthèse qui est toute seule à ce niveau là ?