Bonjour à tous,

J'ai utilisé un template (honte à moi) pour faire un site, seulement le formulaire PHP ne montre pas de message d'erreur au contraire un message de confirmation de l'envoi apparait seulement je ne reçois pas les mails.

                <div class="col-md-4 col-sm-12">
                    <div class="contact-form bottom">
                        <h2>Passer une dédicace</h2>
                        <form id="main-contact-form" name="contact-form" method="post" action="sendemail.php">
                            <div class="form-group">
                                <input type="text" name="name" class="form-control" required="required" placeholder="Ton nom">
                            </div>
                            <div class="form-group">
                                <textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Ton message*"></textarea>
                            </div>                        
                            <p>*L'équipe de Sum'Radio se réserve le droit de censurer les messages à caractères injurieux ou innapropriés.</p>
                            <div class="form-group">
                                <input type="submit" name="submit" class="btn btn-submit" value="Envoyer">
                            </div>
                        </form>
                    </div>
                </div>


<?php
error_reporting(E_ALL);

$name       = @trim(stripslashes($_POST['name'])); 
$from       = @trim(stripslashes($_POST['email'])); 
$subject    = @trim(stripslashes($_POST['subject'])); 
$message    = @trim(stripslashes($_POST['message'])); 
$to   		= 'monemail@email.fr';

$headers   = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: {$name} <{$from}>";
$headers[] = "Reply-To: <{$from}>";
$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();

mail($to, $subject, $message, $headers);

die;


Merci de votre aide ! Smiley cligne

Bonne journée.
Bonjour,

Tu peux essayer ça :


$headers .= "MIME-Version: 1.0"."\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1"."\r\n";
$headers .= "From: {$name} <{$from}>"."\r\n";
$headers .= "Reply-To: <{$from}>"."\r\n";
$headers .= "Subject: {$subject}"."\r\n";
$headers .= "X-Mailer: PHP/".phpversion()."\r\n";


Il me semble que ton $headers doit être une string avec des retours à la ligne et non un tableau.
Pourquoi tu mets ton charset en ISO et pas en UTF-8 ?

Gandalfblanc
Re-bonjour,

pour le charset comme je l'ai dit c'est un template à la base donc je ne me suis pas trop aventuré. Smiley cligne

Bonne nouvelle, je reçois désormais un mail, seul problème il est vide et je ne pense donc pas qu'il prenne en compte les infos données par l'utilisateur. Smiley confus

Merci de ta rapidité en tout cas !
Re-bonjour,

Passe le charset en UTF-8, ça gérera mieux les problèmes d'encodage de caractère.

Quel est l'encodage de ta page HTML ?

As-tu fait un var_dump de ta variable message pour voir ce qu'elle contient ?

Bonne journée
Ma page HTML était en UTF-8 j'ai donc passé le formulaire php en UTF-8 aussi.

Je reçois toujours des mails blancs. Pour la variable var_dump, étant novice en php je n'ai pas vraiment compris comment l'utiliser...

Toutefois j'ai pu voir qu'il y avait une erreur à la ligne :
$headers .= "MIME-Version: 1.0"."\r\n";

Modifié par MettalicHonor (13 Jul 2016 - 20:02)
Bonjour,

Désolé, mais j'étais sans internet durant quelques jours.

Pour le var_dump tu écris ça :

var_dump($headers);


ça va afficher dans ta page : le type de ta variable et son contenu.

Pour ta variable header remplace :

$headers .= "MIME-Version: 1.0"."\r\n";

par
 // remplace les " par '
$header= 'MIME-Version: 1.0'."\r\n";


tu peux aussi utiliser cette fonction nl2br

$MonMessage = nl2br($MessageAvec\r\n);

Modifié par gandalfblanc (19 Jul 2016 - 10:21)