Problème formulaire de contact php ( e-mail vide )

Lino
Invité n'ayant pas de compte PHPfrance

07 mai 2015, 17:05

Bonjour,
J'ai un formulaire de contact dans ma page d'accueil, tout avait l'air de fonctionner sauf que lorsque j'envoie le mail via le formulaire de contact, je reçois un mail mais vide, avec juste ca :
Name:

Email:

Subject:

Message:
Donc si vous pouviez m'aider a trouver d'où vient l'erreur..

Mon index.html

Code : Tout sélectionner

<section id="contact"> <div class="container"> <div class="box last"> <div class="row"> <div class="col-sm-6"> <h1>Contactez-nous :</h1> <p>Si vous avez une question ou une remarque, n'hésitez pas à nous contacter !</p> <div class="status alert alert-success" style="display: none"></div> <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form"> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <input type="text" class="form-control" required="required" placeholder="Nom"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input type="text" class="form-control" required="required" placeholder="Email"> </div> </div> </div> <div class="row"> <div class="col-sm-12"> <div class="form-group"> <textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Message"></textarea> </div> <div class="form-group"> <button type="submit" class="btn btn-danger btn-lg">Envoyer</button> </div> </div> </div> </form> </div><!--/.col-sm-6--> <h1>Rejoignez-nous sur :</h1> <div class="row"> <div class="col-md-6"> <ul class="social"> <li><a href="#"><i class="icon-facebook icon-social"></i> Facebook</a></li> <li><a href="#"><i class="icon-google-plus icon-social"></i> Google Plus</a></li> <li><a href="#"><i class="icon-twitter icon-social"></i> Twitter</a></li> </ul> </div> </div> </div><!--/.col-sm-6--> </div><!--/.row--> </div><!--/.box--> </div><!--/.container--> </section><!--/#contact-->
Et ma page sendemail.php :

Code : Tout sélectionner

<?php header('Content-type: application/json'); $status = array( 'type'=>'success', 'message'=>'Email sent!' ); $name = @trim(stripslashes($_POST['name'])); $email = @trim(stripslashes($_POST['email'])); $subject = @trim(stripslashes($_POST['subject'])); $message = @trim(stripslashes($_POST['message'])); $email_from = $email; $email_to = '[email protected]'; $body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message; $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>'); echo json_encode($status); die;
Merci pour votre aide !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

07 mai 2015, 21:33

Bonjour,

Commence par supprimer tous les arobases de ton code, ils servent à masquer les messages d'erreur or c'est justement ce dont tu as besoin pour débuguer ton code.
Quand tout le reste a échoué, lisez le mode d'emploi...

Lino
Invité n'ayant pas de compte PHPfrance

07 mai 2015, 22:38

Bonsoir,

J'ai changé comme vous m'avez dit :

Code : Tout sélectionner

<?php header('Content-type: application/json'); $status = array( 'type'=>'success', 'message'=>'Email sent!' ); $name = trim(stripslashes($_POST['name'])); $email = trim(stripslashes($_POST['email'])); $subject = trim(stripslashes($_POST['subject'])); $message = trim(stripslashes($_POST['message'])); $email_from = $email; $email_to = '[email protected]'; $body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message; $success = mail($email_to, $subject, $body, 'From: <'.$email_from.'>'); echo json_encode($status); die;
Mais le résultat est le même .. Merci de votre aide !

Mammouth du PHP | 688 Messages

08 mai 2015, 00:46

$name = @trim(stripslashes($_POST['name']));
$email = @trim(stripslashes($_POST['email']));
$subject = @trim(stripslashes($_POST['subject']));
$message = @trim(stripslashes($_POST['message']));

tu rentres bien un message dans la zone de texte ?
vu qu'il y a name="message" dans le code html, cela devrait fonctionner.
pour les autres champs, il manque l'attribut name, voir carrément le champ pour le sujet.

Lino
Invité n'ayant pas de compte PHPfrance

08 mai 2015, 01:58

Oui je remplis tout les champs ..
Je comprends pas .. J'ai récupéré ca d'une template en faite ..

Que dois-je faire ?

Merci

Mammouth du PHP | 688 Messages

08 mai 2015, 02:07

j'ai testé le code et j'obtiens :
Name:

Email:

Subject:

Message: mon message

donc le message tapé apparait bien.
il faut rajouter des name="valeur" dans le code html, pour que cela corresponde au nom des champs en php.

Avatar du membre
Mammouth du PHP | 1609 Messages

08 mai 2015, 10:46

Salut, bien vu tof73, il faut en effet ajouter un attribut name aux balises input :
<input type="text" name="name" class="form-control" required="required" placeholder="Nom">
<input type="text" name="email" class="form-control" required="required" placeholder="Email">
<input type="text" name="subject" class="form-control" required="required" placeholder="Sujet">
L'attribut placeholder permet de définir le text par défaut du champ.
Développeur web depuis + de 20 ans

Lino
Invité n'ayant pas de compte PHPfrance

08 mai 2015, 11:03

Bonjour !

C'est très étrange car moi je reçois toujours avec les champs vide (y compris le message) ..

Voici mes modification :

Code : Tout sélectionner

<section id="contact"> <div class="container"> <div class="box last"> <div class="row"> <div class="col-sm-6"> <h1>Contactez-nous :</h1> <p>Si vous avez une question ou une remarque, n'hésitez pas à nous contacter !</p> <div class="status alert alert-success" style="display: none"></div> <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form"> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <input name="name" type="text" class="form-control" required="required" placeholder="Nom"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="email" type="text" class="form-control" required="required" placeholder="Email"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input name="subject" type="text" class="form-control" required="required" placeholder="Sujet"> </div> </div> </div> <div class="row"> <div class="col-sm-12"> <div class="form-group"> <textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Message"></textarea> </div> <div class="form-group"> <button type="submit" class="btn btn-danger btn-lg">Envoyer</button> </div> </div> </div> </form> </div><!--/.col-sm-6--> <h1>Rejoignez-nous sur :</h1> <div class="row"> <div class="col-md-6"> <ul class="social"> <li><a href="#"><i class="icon-facebook icon-social"></i> Facebook</a></li> <li><a href="#"><i class="icon-google-plus icon-social"></i> Google Plus</a></li> <li><a href="#"><i class="icon-twitter icon-social"></i> Twitter</a></li> </ul> </div> </div> </div><!--/.col-sm-6--> </div><!--/.row--> </div><!--/.box--> </div><!--/.container--> </section><!--/#contact-->


Merci pour votre aide!

Lino
Invité n'ayant pas de compte PHPfrance

14 mai 2015, 07:46

UP