probleme de formlulaire

Invité
Invité n'ayant pas de compte PHPfrance

28 août 2012, 14:42

Salut a tous !
Nouveau dans la webdesign , j'ai un gros probleme avec un formulaire que j'ai créé et je n'arrive pas a trouver l'erreur
Je recois le mail mais il est vide....
Quelqu'un pourrait m'aider et me corriger l'erreur : voici les fichiers
<?php
$adresse="
$sujet = "test";
$from="From: $prenom $nom<$email>\r\n";
$from.="Reply-To: $prenom $nom <$email>\n";
$from.="X-priority:3\n";
$text="<html>";
$text.="$texte";
$text.="</html>";
$from.="MIME-Version: 1.0\r\n";
$from.="Content-Type: text/html";
if (mail($adresse,$sujet,$text,$from))
//mail($adresse,$sujet,$texte,$from);
//echo (" ".$texte);
echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir &agrave; l'accueil</a></center>");
else
echo("<center><font color=red><br><br><br><h2>Probl&egrave;me &agrave; l'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>");
?>




--------------------------------------------------------------------------------


<script type="text/javascript" language="Javascript" >
<!--
function verification()
{
if(document.formulaire.nom.value == "") {
alert("Veuillez entrer votre nom svp");
document.formulaire.nom.focus();
return false;
}
else
if(document.formulaire.prenom.value == "") {
alert("Veuillez entrer votre prenom svp");
document.formulaire.prenom.focus();
return false;
}
else
if(document.formulaire.email.value == "") {
alert("Veuillez entrer votre adresse electronique svp");
document.formulaire.email.focus();
return false;
}
else
if(document.formulaire.email.value.indexOf('@') == -1) {
alert("Ce n'est pas une adresse electronique, verifiez la svp");
document.formulaire.email.focus();
return false;
}
else
if(document.formulaire.texte.value == "") {
alert("Veuillez entrer le texte de votre message svp");
document.formulaire.texte.focus();
return false;
}
return true
}
//-->
</script>
<form name='formulaire' action="http://www.xxxxxxxx.com/traitement.php" method='post'onSubmit="return verification()">
<table border="0" align="center" cellspacing="0">
<th><strong><em>Formulaire</em></strong></th>
<tr>
<td>Nom : </td><td><input name='nom' type='text' size='50'></td></tr>
<tr>
<td>Pr&eacute;nom : </td><td><input name='prenom' type='text' size='50'></td></tr>
<tr>
<td>Email :</td><td><input name='email' type='text' size='50'></td></tr>
<tr>
<td>Message :</td><td><textarea name='texte' cols='50' rows='10'></textarea></td></tr>
<tr><td><input name='annuler' type='reset' value='Annuler'></td><td>
<input name='soumettre' type='submit' value='Envoyer'></td></tr>
</table>

ViPHP
ViPHP | 2577 Messages

28 août 2012, 14:54

Bonjour,

Il faut récupérer les données dans $_POST.
Ajoute la ligne : var_dump($_POST); en début de script pour voir ce que tu peux utiliser.

Edit : il faut mettre le code php dans les balises adéquates, cd bouton PHP

Petit nouveau ! | 1 Messages

28 août 2012, 15:40

un petit corrigé des mes codes serait le bienvenu

katikat78
Invité n'ayant pas de compte PHPfrance

28 août 2012, 17:27

Lorsque tu passes des variables dans un formulaire, elle sont récupérées dans un tableau $_POST, avec comme index le nom des variables.
Par exemple, pour récupérer le champ 'nom' de ton formulaire, il faut que tu écrives $_POST['nom'].
Donc pour que ton script fonctionne, il faut initialiser tes variables avec $_POST (la fonction isset permet de vérifier si ta variable est initialisée) :

Code : Tout sélectionner

// recuperation des variables du formulaire if (isset($_POST['prenom'])) $prenom=$_POST['prenom']; if (isset($_POST['nom'])) $nom=$_POST['nom']; if (isset($_POST['email'])) $email=$_POST['email']; if (isset($_POST['texte'])) $texte=$_POST['texte']; $adresse=" $sujet = "test"; $from="From: $prenom $nom<$email>\r\n"; $from.="Reply-To: $prenom $nom <$email>\n"; $from.="X-priority:3\n"; $text="<html>"; $text.="$texte"; $text.="</html>"; $from.="MIME-Version: 1.0\r\n"; $from.="Content-Type: text/html"; if (mail($adresse,$sujet,$text,$from)) //mail($adresse,$sujet,$texte,$from); //echo (" ".$texte); echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir &agrave; l'accueil</a></center>"); else echo("<center><font color=red><br><br><br><h2>Probl&egrave;me &agrave; l'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>"); ?>
une manière plus rapide est également de mettre toutes les valeurs de $_POST dans des variables du même nom, mais c'est déjà une syntaxe plus compliquée :

Code : Tout sélectionner

foreach ($_POST as $variable=>$valeur){ $$variable=$valeur; }

Petit nouveau ! | 2 Messages

28 août 2012, 17:40

Lorsque tu passes des variables dans un formulaire, elle sont récupérées dans un tableau $_POST, avec comme index le nom des variables.
Par exemple, pour récupérer le champ 'nom' de ton formulaire, il faut que tu écrives $_POST['nom'].
Donc pour que ton script fonctionne, il faut initialiser tes variables avec $_POST (la fonction isset permet de vérifier si ta variable est initialisée) :

Code : Tout sélectionner

// recuperation des variables du formulaire if (isset($_POST['prenom'])) $prenom=$_POST['prenom']; if (isset($_POST['nom'])) $nom=$_POST['nom']; if (isset($_POST['email'])) $email=$_POST['email']; if (isset($_POST['texte'])) $texte=$_POST['texte']; $adresse=" $sujet = "test"; $from="From: $prenom $nom<$email>\r\n"; $from.="Reply-To: $prenom $nom <$email>\n"; $from.="X-priority:3\n"; $text="<html>"; $text.="$texte"; $text.="</html>"; $from.="MIME-Version: 1.0\r\n"; $from.="Content-Type: text/html"; if (mail($adresse,$sujet,$text,$from)) //mail($adresse,$sujet,$texte,$from); //echo (" ".$texte); echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir &agrave; l'accueil</a></center>"); else echo("<center><font color=red><br><br><br><h2>Probl&egrave;me &agrave; l'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>"); ?>
une manière plus rapide est également de mettre toutes les valeurs de $_POST dans des variables du même nom, mais c'est déjà une syntaxe plus compliquée :

Code : Tout sélectionner

foreach ($_POST as $variable=>$valeur){ $$variable=$valeur; }