Problème code php dans formulaire
Clément Thiery
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
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 compte désactivé - 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à ?