Probleme pour l'envoi d'un formulaire

Mammouth du PHP | 1353 Messages

29 mai 2008, 17:03

Notice: Undefined variable: email in C:\Program Files\EasyPHP 2.0b1\www\site\formulaire.php on line 15
Signifie :

Erreur : variable email non definie à la ligne 15.

Hors si tu regardes la ligne 15 (je suppose) que c'est :
$MailHeader = "From: $email";
Tu fais cela en début de fichier, bien avant avoir testé l'existence du $_POST et avoir affecté $email à cette variable... Il faudrait plutot le faire au même endroit que
$MailBody .= "Mail : $email\n";
qui lui n'a lieu que si $email est défini...

Autre chose, je pense que si l'email est incorrect, en plus de faire ton
echo 'Votre adresse E-Mail n\'a pas un format valide'; 
tu devrais aussi faire
$Envoi = 0; 
parce que c'est comme si elle était pas remplie... Enfin c'est toi qui vois, peut etre que dans ton contexte ce que je dis n'est pas pertinent ;)
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphant du PHP | 104 Messages

29 mai 2008, 18:11

Nan mais tu as toute a fait raison.

Mais bon, meme avec ce que tu m'as dis sa fonctionne pas.. Voila ce que sa me sors toujours :
Vous n'avez pas complété la raison sociale.
Vous n'avez pas complété le poste de responsabilité.
Vous n'avez pas complété le nom
Vous n'avez pas complété le prenom
Vous n'avez pas complété l'adresse
Vous n'avez pas complété la ville
Vous n'avez pas complété le pays
Vous n'avez pas complété le telephone
Vous n'avez pas complété l'e-mail
Vous avez oublié de choisir une valeur dans le menu déroulant.
Vous n'avez pas complété le nombre de face
Vous avez oublié de choisir une valeur dans le menu déroulant.
Vous n'avez pas complété la durée de la période souhaitée
Voici le code remodifier apres ta reponse :
<!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>Document sans titre</title>
</head>

<body>
<?php

$MailBody = "";
$MailTo = "[email protected]";
$MailCc = "[email protected]";
$MailSubject = "DEVIS CIDOP";



$min_size="3";
$max_size="5000";



$Envoi = 1;


if(empty($_POST["raison_sociale"])) 
{
	echo 'Vous n\'avez pas complété la raison sociale.<br>';
	$Envoi = 0;
}
else 
{
	$raison_sociale = $_POST["raison_sociale"];
	$MailBody .= "Raison sociale : $raison_sociale\n";
}

if(empty($_POST["poste_de_responsabilite"])) 
{
	echo'Vous n\'avez pas complété le poste de responsabilité.<br>';
	$Envoi = 0;
}
else 
{
	$poste_de_responsabilite = $_POST["poste_de_responsabilite"];
	$MailBody .= "Poste de responsabilité : $poste_de_responsabilite\n";
}

if(empty($_POST["nom"])) 
{
	echo'Vous n\'avez pas complété le nom<br>';
	$Envoi = 0;
}
else 
{
	$nom = $_POST["nom"];
	$MailBody .= "Nom : $nom\n";
}

if(empty($_POST["prenom"])) 
{
	echo'Vous n\'avez pas complété le prenom<br>';
	$Envoi = 0;
}
else 
{
	$prenom = $_POST["prenom"];
	$MailBody .= "Prénom : $prenom\n";
}

if(empty($_POST["adresse"])) 
{
	echo'Vous n\'avez pas complété l\'adresse<br>';
	$Envoi = 0;
}
else 
{
	$adresse = $_POST["adresse"];
	$MailBody .= "Adresse : $adresse\n";
}

if(empty($_POST["ville"])) 
{
	echo'Vous n\'avez pas complété la ville<br>';
	$Envoi = 0;
}
else 
{
	$ville = $_POST["ville"];
	$MailBody .= "Ville : $ville\n";
}

if(empty($_POST["pays"]))
{
	echo'Vous n\'avez pas complété le pays<br>';
	$Envoi = 0;
}
else 
{
	$pays = $_POST["pays"];
	$MailBody .= "Pays : $pays\n";
}

if(empty($_POST["telephone"]))
{
	echo'Vous n\'avez pas complété le telephone<br>';
	$Envoi = 0;
}
else 
{
	$telephone = $_POST["telephone"];
	$MailBody .= "Telephone : $telephone\n";
}

if(empty($_POST["email"]))
{
	echo'Vous n\'avez pas complété l\'e-mail<br>';
	$Envoi = 0;
}
else 
{
	if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
    {
		$email = $_POST["email"];
        $MailBody .= "Mail : $email\n";
		$MailHeader = "From: $email";
    }
    else
    {
       echo 'Votre adresse E-Mail n\'a pas un format valide';
	   $Envoi = 0;
    }
}

if(empty($_POST["affichage"])) 
{
	echo'Vous avez oublié de choisir une valeur dans le menu déroulant.<br>';
	$Envoi = 0;
}
else 
{
	$affichage = $_POST["affichage"];
	$MailBody .= "Affichage : $affichage\n";
}

if(empty($_POST["nombre_face"]))
{
	echo'Vous n\'avez pas complété le nombre de face<br>';
	$Envoi = 0;
}
else 
{
	$nombre_face = $_POST["nombre_face"];
	$MailBody .= "Nombres de face : $nombre_face\n";
}

if(empty($_POST["duree"])) 
{
	echo'Vous avez oublié de choisir une valeur dans le menu déroulant.<br>';
	$Envoi = 0;
}
else 
{
	$duree = $_POST["duree"];
	$MailBody .= "Durée : $duree\n";
}

if(empty($_POST["periode"])) 
{
	echo'Vous n\'avez pas complété la durée de la période souhaitée<br>';
	$Envoi = 0;
}
else 
{
	$periode = $_POST["periode"];
	$MailBody .= "Période : $periode\n";
}




if ($Envoi == 0) {
echo'<p><a href=\"Javascript:history.go(-1)\"><center><strong>RETOUR</strong></center></a></p>';
}


if ($Envoi == 1) {
echo'<p><strong>Raison sociale : <font color=\"#0000FF\">'. $raison_sociale .'</font>';
echo'<br>Votre poste : <font color=\"#0000FF\">'. $poste_de_responsabilite .'</font>';
echo'<br>Votre nom : <font color=\"#0000FF\">'. $nom .'</font>';
echo'<br>Votre prenom : <font color=\"#0000FF\">'. $prenom .'</font>';
echo'<br>Votre adresse: <font color=\"#0000FF\">'. $adresse .'</font>';
echo'<br>Votre ville : <font color=\"#0000FF\">'. $ville .'</font>';
echo'<br>Votre pays : <font color=\"#0000FF\">'. $pays .'</font>';
echo'<br>Votre telephone : <font color=\"#0000FF\">'. $telephone .'</font>';
echo'<br>Votre email : <font color=\"#0000FF\">'. $email .'</font>';
echo'<br>Votre affichage : <font color=\"#0000FF\">'. $affichage .'</font>';
echo'<br>Votre nombre de face : <font color=\"#0000FF\">'. $nombre_face .'</font>';
echo'<br>Votre durée : <font color=\"#0000FF\">'. $duree .'</font>';
echo'<br>Votre période : <font color=\"#0000FF\">'. $periode .'</font>';
echo'<p>&nbsp;</p>';
mail($MailTo, $MailSubject, $MailBody, $MailHeader);

echo'<p>Votre message a bien été envoyé.<br>Merci de vos commentaires.';
echo'<p>&nbsp;</p><p>&nbsp;</p><p align=\"center\"><a href=\"index.htm\">Retour</strong></a></p>';
}
?>
</body>
</html>
Encore merci de venir repondre regulierement pour m'aider a trouver mon probleme, c'est vraiment sympa