Probleme formulaire HTML5 / envoi PHP

Résolu
MonsieurMouf Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
 lilou -
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   Statut Membre Dernière intervention   894
 
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
 
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   Statut Membre Dernière intervention   8
 
Merci messieurs,

Super boulot ! Je pense qu'ici on peut parler d'efficacité !
1
lilou
 
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