Probleme envoi mail php

YomghY
Invité n'ayant pas de compte PHPfrance

21 janv. 2015, 15:17

Bonjour

Sur mon site j'aimerai faire un envoi de mail par formulaire. Lorsque je teste l'envoi je reçois bien un mail mais il ne contient aucune information tapée dans le formulaire.

Mon code html est le suivant
<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-5">
                            <div class="form-group">
                                <input type="text" id="name" name="name" class="form-control" required placeholder="Prénom Nom">
                            </div>
                            <div class="form-group">
                                <input type="text" id="subject" name="subject" class="form-control" required placeholder="Objet">
                            </div>
                            <div class="form-group">
                                <input type="text" id="email" name="email" class="form-control" required placeholder="Adresse Email">
                            </div>
                            <div class="form-group">
                                <button type="submit" class="btn btn-primary btn-lg">Envoyer</button>
                            </div>
                        </div>
                        <div class="col-sm-7">
                            <textarea name="message" id="message" required class="form-control" rows="8" placeholder="Message"></textarea>
                        </div>
                    </div>
                </form>
et mon fichier php est le suivant
<?php
    header('Content-type: application/json');
    $status = array(
        'type'=>'success',
        'message'=>'Email envoyé !'
    );
 
    $name = @trim(stripslashes($_POST['name']));
    $email = @trim(stripslashes($_POST['email']));
    $subject = @trim(stripslashes($_POST['subject']));
    $message = @trim(stripslashes($_POST['message']));
 
    $copy = 'yes';
    $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;
     
?>
le $status fonctionne correctement mais le mail que je reçois contient seulement

Name:

Email:

Subject:

Message:

Est ce que quelqu'un aurait une idée pour résoudre mon problème ?

Merci :)

Mammouth du PHP | 1339 Messages

22 janv. 2015, 11:31

Bonjour,

le @ avant trim masque l'erreur genérée si il y en a une.
Donc ca se trouve tu as une erreur très explicite qui est cachée.

Le plus simple donc est de retiré le @ déjà
Et de faire un
<?php print_r($_POST); ?>
pour voir si tes variables sont bien passées.

PS : Je cherche un graphiste pour des projets !
Bon sinon tu me fais un message privé et on se fait un TeamViewer

emile
Invité n'ayant pas de compte PHPfrance

25 mars 2015, 11:32

bonjour,

les champs ne correspondent pas dans le fichier php avec les labels du formulaire

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

$email_from = $email;
$email_to = '[email protected]';//replace with your email

$body = 'Nom: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Sujet: ' . $subject . "\n\n" . 'Message: ' . $message;