8722 sujets

Développement web côté serveur, CMS

Salut à tous !

Mon petit problème est très simple.

Mon script d'envoi de mail en PHP semble bien fonctionner, le seul soucis c'est que le champ "Name" n'apparait pas dans le message envoyé.

Je ne vois pas ce qui peut régler ceci, pourriez-vous m'éclairer afin que le champ "name" soit apparant dans le message que je reçois ?

merci à vous pour votre aide toujours précieuse.

Le code html :


<form class="contact_form" action="contact.php" method="post" name="contact_form">
    <ul>
        <li>
             <h2>Envoyer un message</h2>
             <!--<span class="required_notification">* Denotes Required Field</span>-->
        </li>
        <li>
            <label for="name">Nom :</label>
            <input type="text" name="name" id="name" placeholder="Nom & prénom" required />
        </li>
        <li>
            <label for="email">Adresse Email :</label>
            <input type="email" name="email" id="email" placeholder="adresse@email.com" required pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$"/>
            <span class="form_hint">Pensez à bien vérifier votre adresse</span>
        </li>
        <!-- <li>
            <label for="website">Website:</label>
            <input type="url" name="website" placeholder="http://johndoe.com" required pattern="(http|https)://.+"/>
            <span class="form_hint">Proper format "http://someaddress.com"</span>
        </li>-->
        <li>
          <label for="message">Votre message :</label>
            <textarea name="message" id="message" cols="40" rows="6" placeholder="(…)" required ></textarea>
        </li>
        <li>
        	<button class="submit" type="submit">ENVOYER</button>
        </li>
    </ul>
</form>


Et le petit script :


<?php
 
$admin_mail = 'adresse@mail.com';
$nom_site = 'www.site-web.com';
 
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$message = htmlspecialchars($_POST['message']);
 
 $message_mail = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Un nouveau message du Chaos Rêvant</title>
</head>
<body>
<table width="100%" border="0" align="left">
 <tr>
 <td height="23">Nom :</td>
 <td>'.$name.'</td>
 </tr>
 <tr>
 <td height="23">Email :</td>
 <td>'.$email.'</td>
 </tr>
 <tr>
 <td height="23">Message :</td>
 <td>'.$message.'</td>
 </tr>
</table>
</body>
</html>
';
 
$user_mail = 'Votre message sur le site ' .$nom_site . ' a ete envoyé';
 
//envoi de mail au utilisateur
 $entete = "MIME-Version: 1.0\r\n";
 $entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
 $entete .= "From: <adresse@mail.com>\r\n";
 $entete .= "Reply-To: adresse@mail.com\r\n";
 mail($EMAIL,'Votre message sur le site ' .$nom_site . ' a ete envoyé' , $user_mail, $entete);
 
 //envoi de mail au admin
 $entete1 = "MIME-Version: 1.0\r\n";
 $entete1 .= "Content-type: text/html; charset=iso-8859-1\r\n";
 $entete1 .= "From: <adresse@mail.com>\r\n";
 $entete1 .= "Reply-To: <adresse@mail.com>\r\n";
 mail($admin_mail,'Nouveau Message sur ******'.$nom_site . '******' , $message_mail, $entete1);
 

 
 echo '<span style="font: arial; color: #003325">Votre message a bien été envoyé !
 <br>Pensez à revenir sur le site.</span><br />';
 
   ?>

Modifié par Aessian (24 Sep 2013 - 11:23)
ok, le problème est résolu.

Un simple espace en trop dans le code HTML… (capricieux quand même).

<input type="text" name="name" id="name" placeholder="Nom & prénom" required />


doit être :

<input type="text" name="name" id="name" placeholder="Nom & prénom" required/>


Pour les curieux, c'est du dernier espace entre "required" et la fin de la balise qui devait disparaitre.
Modifié par Aessian (22 Sep 2013 - 17:57)