Probleme formulaire HTML5 / envoi PHP

Résolu/Fermé
MonsieurMouf Messages postés 3 Date d'inscription lundi 13 août 2012 Statut Membre Dernière intervention 13 août 2012 - 13 août 2012 à 12:55
 lilou - 27 août 2013 à 07:39
Bonjour,

J'espère être dans la bonne catégorie ! Sinon veuillez m'en excuser. Voici mon problème :

J'ai créé un formulaire de contact en html5 et mon fichier php ne me renvoi pas les infos.

Voici le code source HTML :

<form action="sendmail.php" class="contact-form" method="post" >
					<p>
						<label for="name">Votre nom:</label>
						<input type="text" id="name">
					</p>

					<p>
						<label for="email">Votre E-mail:</label>
						<input type="text" id="email">
					</p>

					<p>
						<label for="text">Votre message:</label>
						<textarea name="text" id="text" cols="30" rows="10"></textarea>
					</p>

					<input type="submit" value="Soumettre">
				</form>



Et mon code source php:

<?php
$msg = "Sender Name:\t$name\n";
$msg .= "Sender E-Mail:\t$email\n";
$msg .= "Message:\t$text\n\n";

$recipient = "hello@xxx.fr";
$subject = "Portail xxx.fr";

$mailheaders = "From: mon portail brunohay.fr <> \n";
$mailheaders .= "Reply-To: $sender_email\n\n";

mail($recipient, $subject, $msg, $mailheaders);

echo "<HTML><HEAD>";
echo "<TITLE>Formulaire de contact</TITLE></HEAD><BODY>";
echo "<H1 align=center>Merci, $sender_name</H1>";
echo "<P align=center>";
echo "Votre message a été envoyé.</P>";
echo "</BODY></HTML>";

?>


Je ne réceptionne aucun contenu ... si quelqu'un a une idée ! Je suis preneur


D'avance merci

4 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
13 août 2012 à 14:09
Des erreurs, voir comentaires:

<form name="form1" action="sendmail.php" class="contact-form" method="post" >
					<p>
						<label for="nom">Votre nom:</label>
					<!-- si tu veux recupérer les valeurs du formulaire il faut absolument l'attribut name="..." dans l'input
et évites les noms réservés mets nom au lieu de name , texte au lieu de text
et un champ inupt se termine par />  -->					
						<input type="text" name="nom" id="nom" />
					</p>

					<p>
						<label for="email">Votre E-mail:</label>
						<input type="text" name="email"id="email" />
					</p>

					<p>
						<label for="text">Votre message:</label>
						<textarea name="texte" id="texte" cols="30" rows="10"></textarea>
					</p>

					<input type="submit" name="soumettre" value="Soumettre" />
</form>




Et mon code source php:

<?php
//on verifie que le formulaire a été posté, bouton soumettre
if(isset($_POST['soumettre'])){
	//il faut récipérer les valeurs postées !!
	$nom=$_POST['nom'];
	$email=$_POST['email'];
	$texte=$_POST['texte'];
	$msg = "Sender Name:\t$nom\n";
	$msg .= "Sender E-Mail:\t$email\n";
	$msg .= "Message:\t$texte\n\n";

	$recipient = "hello@xxx.fr";
	$subject = "Portail xxx.fr";

	$mailheaders = "From: mon portail brunohay.fr <> \n";
	$mailheaders .= "Reply-To: $sender_email\n\n";
	//tu veux envoyer un mail au format HTML iil faut le préciser dans le headers
	$mailheaders .= "Content-Type: text/html; charset=\"iso-8859-1\""."\n";

	mail($recipient, $subject, $msg, $mailheaders);

	echo "<HTML><HEAD>";
	echo "<TITLE>Formulaire de contact</TITLE></HEAD><BODY>";
	echo "<H1 align=center>Merci, $sender_name</H1>";
	echo "<P align=center>";
	echo "Votre message a été envoyé.</P>";
	echo "</BODY></HTML>";
}
?>

2
Utilisateur anonyme
13 août 2012 à 14:07
Bonjour

Il faut mettre un 'name' à tes champs de formulaire pour espérer les récupérer :
<input type="text" id="email" name="email">

(idem pour les autres champs)

Ensuite, côté récupération, selon la configuration de ton serveur, ce n'est peut-être pas dans $email que tu récupères la valeur mais dans $_POST['email'] :

$msg = "Sender Name:\t$_POST[name]\n";
$msg .= "Sender E-Mail:\t$_POST[email]\n";
$msg .= "Message:\t$_POST[text]\n\n";
1
MonsieurMouf Messages postés 3 Date d'inscription lundi 13 août 2012 Statut Membre Dernière intervention 13 août 2012 8
13 août 2012 à 16:46
Merci messieurs,

Super boulot ! Je pense qu'ici on peut parler d'efficacité !
1
Bonjour, j'ai lu les posts précédents car je n'arrive pas non plus à recevoir le mail via mon formulaire. Seulement ça ne m'a pas beaucoup aidé car je n'ai pas procédé de la même façon.
Quand j'envoie mon formulaire j'ai cette erreur sur ma page web:

Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()

Voici mes code ça pourra vous aider à m'aider peut-être:

Code source HTML (trop long, j'ai donc tronqué):
<label for="Entreprise"> Raison sociale : </label>
<input type="text" name="Entreprise" id="Entreprise" height="100px"><br><br>
</div>
<label for="Nom"> Nom : </label>
<input type="text" name="Nom" id="Nom" height="100px" required><br><br>
<label for="Prenom"> Prénom : </label>
<input type="text" name="Prenom" id="Prenom" height="100px" required><br><br>
<label for="Tel"> Téléphone : </label>
<input type="tel" name="Tel" id="Tel" height="100px" maxlength="10" required >


Code source PHP :
<?php session_start() ;

if(isset($_POST['Demande']))
{
$statut = $_POST['Statut'];
$pro = $_POST['Entreprise'];
$nom = $_POST['Nom'];
$prenom = $_POST['Prenom'];
$tel = $_POST['Tel'];
$mail = $_POST['Mail'];
$com =$_POST['Adrs'];
$cp = $_POST['CP'];
$devis = $_POST['Devis'];

//Définition de l'envoi par mail
$to = "***@***";
$subject = "Demande de devis";
$message =
"Statut: " . $statut . "\r\n" .
"Nom et prenom: " . $nom . $prenom . "\r\n" .
"Adresse mail: " . $mail . "\r\n" .
"Numéro de téléphone:" . $tel . "\r\n" .
"Ville: " . $cp . $com . "\r\n" .
"\r\n" .
"Message: " . $devis;
$from=$mail. "/r/n";
mail($to,$subject,$message);
}
?>

Voila si vous avez une idée se serait super
Merci d'avance
1