valttt a écrit :
Merci à tous,
Je ne peux rien vérifier hormis la réception des mails car mon site est hébergé (je fais donc les test en mettant une autre adresse mail m'appartenant (utilisateur) dans le champs de saisie) .
Si la syntaxe est bonne avec la virgule, pourquoi l'utilisateur ne reçois rien ?
PS : voilà mon formulaire...
<form name="contactForm" id="contactForm" method="POST" action="M2.php">
<div class="col-md-6">
<div class="row control-group">
<div class="form-group col-xs-12">
<label>Civilité</label>
<select class="form-control" name="sex" id="sex">
<option value="Mr">Monsieur</option>
<option value="Mm">Madame</option>
<option value="Melle">Mademoiselle</option>
</select>
</div>
<div class="form-group col-xs-12">
<label>Nom</label>
<input type="text" name="name" class="form-control" placeholder="Votre Nom" id="name" required>
</div>
</div>
<div class="row control-group">
<div class="form-group col-xs-12">
<label>Email</label>
<input type="email" name="email" class="form-control" placeholder="Votre Adresse Mail" id="email" required>
</div>
</div>
<div class="row control-group">
<div class="form-group col-xs-12">
<label>Téléphone</label>
<input type="text" name="phone" class="form-control" placeholder="Votre téléphone" id="phone" required>
</div>
</div>
</div>
<div class="col-md-6">
<div class="row control-group">
<div class="form-group col-xs-12">
<label>Message</label>
<textarea rows="12" name="message" class="form-control" placeholder="Votre Message" id="message" required></textarea>
</div>
</div>
</div>
<br>
<div class="row">
<div class="form-group col-xs-11 text-right">
<label><input type="checkbox" name="checkbox" align="left">Cochez ici si vous souhaitez recevoir une copie de votre message.</label>
<button type="submit" id="btnSubmit" class="btn btn-info text-right"">Envoyer</button>
</div>
</div>
<br>
</form>
Et pour que ce soit plus clair pour vous, le traitement :
$to = 'destinataire@free.fr';
if (!empty($_POST['email']) && isset($_POST['checkbox'])) {
$to .= ','.$_POST['email'];
}
$email_subject = "Sujet";
$email_body = "Sujet.\n\n$sex $name\n\nEmail: $email_address\n\nTéléphone: $phone\n\nMessage:\n$message";
$headers = "From: expéditeur@free.fr\n";
mail($to,$email_subject,$email_body,$headers);
Merci encore
Dans un premier temps (avant ton code ==> si possible le plus en amont de tout ton code php) :
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Je suis pratiquement que l'on peut voir les logs tout de même....
Que vaut $_POST['checkbox'] ? Dans un second temps, je t'invite à corriger cet aspect là.
Perso, j'écrirai comme ceci :
if (!empty($_POST['email']) && !empty($_POST['checkbox']) && $_POST['checkbox'] === "quelque chose") { //cela veut dire que le code html doit être modifié bien sûr
$to .= ','.$_POST['email'];
}
Et en générale, je fais comme ceci pour un mail texte et écrit en natif :
<?php
session_start();
//......
//......
//......
$to = 'adresse@dom.com';
$sender = 'adresse@dom.com';
$copy = 'adresse@dom.com';
$hidden_copy = 'adresse@dom.com';
$subject = 'Test';
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Reply-To: '.$sender."\n";
$headers .= 'From: "Nom_de_expediteur"<'.$sender.'>'."\n";
$headers .= 'Delivered-to: '.$to."\n";
$headers .= 'Cc: '.$copy."\n";
$headers .= 'Bcc: '.$hidden_copy."\n\n";
$message = 'lorem ipsum';
if (mail($to, $subject, $message, $headers)) {
$_SESSION['flash'] = 'Votre message a bien été envoyé ';
}else {
$_SESSION['flash'] = "Votre message n'a pas pu être envoyé";
}
//......
//......
//......
//......
?>
<<<EDIT
Je viens de voir que ce sujet n'est pas au bon endroit. Il devrait être dans le forum approprié qui est : "
Développement web côté serveur, CMS"
EDIT;
Modifié par niuxe (22 Sep 2017 - 17:25)