Formulaire html confirmation php

florest Messages postés 4 Statut Membre -  
dariumis Messages postés 583 Statut Membre -
Bonjour tout le monde!

J'ai un problème avec ma confirmation d'envoi de formulaire de contact. En fait je dois faire un site web fictif avec Dreamweaver CS4 dans le cadre d'un projet de Master2, dont un formulaire de contact et une page de confirmation php. (NB : je ne connais rien au langage php, on ne l'a jamais vu en cours...) J'ai donc essayé de comprendre par moi-même en regardant de nombreux forums, mais rien n'y fait, ça ne marche pas!

Quand je rentre les données dans mon formulaire et que je clique sur envoyer, une page blanche s'affiche alors qu'il devrait y avoir marqué "votre message a bien été envoyé".

Voici mon code html pour mon formulaire (que j'ai fait dans un tableau) :

<body>
<center><h1><strong>Informations - Réservations</strong></h1></center>

<table width="100%" border="0">
<tr>
<td width="55%"><table width="100%" border="0">
<tr>
<td colspan="4">Nom :</td>
</tr>
<tr>
<td colspan="4">
<form id="nom" name="Name" method="post" action="envoidemessage1.php">
<span id="sprytextfield1">
<label>
<input type="text" name="Name" size="60px"/>
</label>
<span class="textfieldRequiredMsg">Une valeur est requise.</span></span>
</form></td>
</tr>
<tr>
<td colspan="4">E-mail :</td>
</tr>
<tr>
<td colspan="4">
<form id="email" name="Email" method="post" action="envoidemessage1.php">
<span id="sprytextfield2">
<label>
<input type="text" name="Email" size="60px"/>
</label>
<span class="textfieldRequiredMsg">Une valeur est requise.</span></span>
</form></td>

</tr>
<tr>
<td colspan="4">Pays :</td>
</tr>
<tr>
<td colspan="4"><select name="pays">
<option>France</option>
<option>Suisse</option>
<option>Belgique</option>
<option>Québec</option>
<option>Luxembourg</option>
<option>Autre</option>
</select>
</td>
</tr>
<tr>
<td width="25%">Check-in :  (JJ/MM/AA)</td>
<td colspan="3">Check-out :  (JJ/MM/AA)</td>
</tr>
<tr>
<td><input type="text" name="checkin"/></td>
<td><input type="text" name="checkout"/></td>
<td width="21%">Adultes   <input type="text" name="adultes" size="5px"/></td>
<td width="29%">Enfants (-12 ans)   <input type="text" name="enfants" size="5px"/></td>
</tr>
<tr>
<td colspan="4"><span id="sprycheckbox1">
<input type="checkbox" name="informations2" value="INFORMATIONS TARIFS"/>
<span class="checkboxRequiredMsg">Effectuez une sélection.</span></span>
Informations tarifs   
<form id="form3" name="form3" method="post" action="envoidemessage1.php">
<span id="sprycheckbox2">
<label>
<input type="checkbox" name="reservation" value="RESERVATION"/>Réservation
</label>
<span class="checkboxRequiredMsg">Effectuez une sélection.</span></span>
</form>
</td>
</tr>
<tr>
<td colspan="4"> </td>
</tr>
<tr>
<td colspan="4">Commentaires :</td>
</tr>
<tr>
<td colspan="4"><textarea cols="70" rows="20" name="Message"></textarea></td>
</tr>
<tr>
<td><form action="envoidemessage1.php" method="post" name="formulaire">
<input type="submit" value="ENVOYER"/>
</form></td>
<td><input type="reset" value="EFFACER"/></td>
<td colspan="2"> </td>
</tr>
</table>
</body>

Et voici le code php (envoidemessage1.php) :

<?php
// Récupération des données transmises par POST
$Name = $_POST['Name'];
$Message = $_POST['Message'];
$Email = $_POST['Email'];

if($Name ==""){
// On verifie le nom
echo("Le champ Nom est vide !");
}
else{
if($Message ==""){
// On verifie le message
echo("Le champ Message est vide !");
}
else{
// On verifie l'email
if($Email ==""){
echo("Le champ email est vide !");
}
else{
// si tout a été rempli, on envoi
mail("xxx@xxxxxx.fr",$Message,$Name,"From: ".$Email);
echo("Votre message a bien été envoyé");
}
}
}
}


$h = "From: $email\r\nReply-To: $reponse\r\n"; //Content-Type: text/html;
$h .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
$h .= "MIME-Version: 1.0\r\n";
$h .= "Content-Transfer-Encoding:8bit\r\n";


?>

Merci pour votre aide!!

A voir également:

7 réponses

xqM Messages postés 105 Statut Membre 4
 
Bonjour,

tout ces lignes ont été codées avec dreamweaver ?!
Tu n'as donc rien ajouté à la main ?!
0
florest Messages postés 4 Statut Membre
 
J'ai utilisé dreamweaver juste pour le code html, tout le php a été fait à la main!
Enfin, à la main, c'est-à-dire j'ai copié-collé du code que j'ai trouvé sur des forums...et puis j'ai essayé de l'adapter à mon formulaire.
0
xqM Messages postés 105 Statut Membre 4
 
Alors, il existe une petite astuce, on l'appelle "isset" elle sert à vérifier si tes formulaires sont vides ou pas :p

Avant tout, tu traites tes variables une à une:

//On vérifie uniquement si quelque chose est dans le form ou pas !
if(isset($_POST['name'])
{
$name=$_POST['name'];
}
else
{
$name="";
}
//reproduis ça pour toutes tes variables, change juste le "name"

//on vérifie ensuite avec un grand if
//tu remplaces variable par ta variable et tu fais ceci autant de fois que tu veux traiter de variables :p
if(($name==NULL) OR ($mail==NULL) OR ($variable==NULL))
{
//ici on traite les variable une à une pour renvoyer les messages d'erreur
if($name==NULL)
{
echo "ton name n'a pas été renseigné !";
}
if($mail==NULL)
{
echo "ton mail n'a pas été renseigné !";
}
//tu fais ceci pour chacune de tes variables, j'ai fait un grand if pour optimiser la boucle, ainsi ta page traitera tous les cas si il y a un problème, alors que si on ne fait pas de " grand if " elle va quad même tout vérifier et ça sert à rien si tout a été rempli :p
}
//sinon on envoie le mail :D tout est bon !
else
{
//j'ai trouvé ta function mail compliqué ! je te file la mienne beaucoup plus simple à mon goût.

$mail=$_POST['mail'];//bon ben le mail de destination récupéré :p
$name=$POST['name'];//le nom :p
$reponse=$_POST['reponse'];//a réponse !
$headers ='From: "ICI TU METS TON NOM OU TON ADRESSE EMAIL"<adresse@fai.fr>'."\n";
(mail($mail, "ICI TU METS TON SUJET", $reponse, $headers));
echo "ton mail a été envoyé !";
}

Voilà, en espérant que ça t'aide, si tu comprends pas demande !
0
florest Messages postés 4 Statut Membre
 
Merci...mais ça ne marche toujours pas! Maintenant j'ai du code php qui s'affiche dans la page, à partir de \n, j'ai peut-être fait quelque chose de travers...
Petite question : est-ce que je suis obligée de mettre un sujet ? Et à quoi correspond $reponse ? ET, dernière question je promets, pourquoi faut-il que je mette mon adresse mail dans le code php et aussi entre les balises html ?

Merci beaucoup !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dariumis Messages postés 583 Statut Membre 63
 
Salut, tu as essayé, au lieu de faire tous ces if imbriqué, de mettre un boolean initialiser a true qui prend false dans le cas ou il tombe sur un champ vide, et d'ecrire "votre message..." que si il est a true arriver a cette ligne, ça me parait plus logique, surtout plus lisible.
0
florest Messages postés 4 Statut Membre
 
Euh...j'ai compris le principe mais j'avoue que je suis novice en php et que je ne sais pas du tout comment faire! Mais merci je vais voir si je peux trouver des infos sur ce que tu m'as dit ça me paraît être une bonne idée!
0
dariumis Messages postés 583 Statut Membre 63
 
je sais pas si ça va changer quelque chose mais au moins tu y verra plus clair:

$bool=true;
if($Name ==""){
	// On verifie le nom
	echo("Le champ Nom est vide !");
	$bool=false;
}
if($Message ==""){
	// On verifie le message
	echo("Le champ Message est vide !");
	$bool=false;
}
if($Email ==""){
	// On verifie l'email
	echo("Le champ email est vide !");
	$bool=false;
}
if($bool==true){
	// si tout a été rempli, on envoi
	mail("xxx@xxxxxx.fr",$Message,$Name,"From: ".$Email);
	echo("Votre message a bien été envoyé");
}


Mais c'est vrai qu'en général on ce sert des isset.^^
0