Formulaire

Eléphant du PHP | 424 Messages

16 juil. 2006, 13:07

Bonjour,

Je suis en train de faire un formulaire pour mon site trés simple.

J'ai dans ce formulaire une liste déroulante "doc" avec des valeurs :

Choisir une méthode
lettre
email
fax

Mon probléme est de lui dire dans la validation du formulaire que si l'utilisateur laisse "doc" sur "Choisir une méthode" il inscrive un message d'erreur.

j'ai donc fait ceci mais ca ne fonctionne pas :
<?
include("config.php");

$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
$sonmail = $_POST["sonmail"];
$doc = $_POST["doc"];
$numero = $_POST["numero"];

if (isset($doc) == "Choisissez un document")
  	$temp = "";
	else $temp = $_POST["doc"];

if (empty($nom) OR empty($prenom) OR empty($sonmail) OR empty($temp) OR empty($numero))
	{
	print '<center><b><font face="verdana" size="4">Erreur , champs manquants :</b></font></center><br><br>';
		if(empty($nom)) { print '<center><font face="verdana" size="2">Vous n\'avez pas saisi votre nom.<br>'; }
		if(empty($sonmail)) { print '<center>Vous n\'avez pas saisi votre Email.<br>'; }
		if(empty($prenom)) { print '<center>Vous n\'avez pas saisi votre prenom.<br>'; }
		if(empty($temp)) { print '<center> Vous n\'avez pas selectionné votre document.<br>'; } 
		if(empty($numero)) { print '<center>Vous n\'avez pas saisi votre numèro de contrat. <br>'; } 
	print '<p align="center"><a href="javascript:history.back()">Retour</a>'; exit;
	}
	else
	{
$sonmail = $_POST['sonmail'];
$copie = $_POST["copie"];
$point = strpos($sonmail,".");
$arobas = strpos($sonmail,"@");
if($point == '')
{
echo '<center><br>Votre adresse email est invalide<br><p align="center"><a href="javascript:history.back()">Retour</a><br>'; include("include/footer.php"); exit;
}
elseif($arobas == '')
{
echo '<center><br>Votre adresse email est invalide<br><p align="center"><a href="javascript:history.back()">Retour</a><br>'; include("include/footer.php"); exit;
}
else
{
if($copie == "oui" ) {
       Mail("$sonmail","$doc","$m1","from: $from"); 
       Mail("$votremail","$doc","$m2","from: $votremail");
echo "<center>Votre message a bien &eacute;t&eacute; envoyer !<br><br>Un email de confirmation a &eacute;t&eacute; envoyer &agrave; l'adresse : $sonmail<br><br>Merci pour votre message , A bient&ocirc;t . L'&eacute;quipe $votresite";print '<p align="center"><a href="http://www.sagipassurances.com/accueil.php">Retour</a>';exit;
} else {
}
echo "<center>Votre message a bien &eacute;t&eacute; envoyer !<br>Merci pour votre message , A bient&ocirc;t . L'&eacute;quipe $votresite";print '<p align="center"><a href="http://www.sagipassurances.com/accueil.php">Retour</a>';
{
       Mail("$votremail","$doc","$m2","from: $votremail");
}
include("include/footer.php");
}
}
?>
La validation du formulaire se fait sur une nouvelle page : envoi.php
Le message d'erreur est le même malgrés les choix de l'utilisateur.
Merci pour votre aide.
Youpi Youpi Yo !

Eléphant du PHP | 88 Messages

17 juil. 2006, 10:13

Bonjour,
pourrais tu ajouter le code source de ta liste déroulante doc (SELECT) afin de pouvoir t'aider.

Je ne comprend pas pourquoi tu as:
isset($doc) == "Choisissez un document") 
alors que ta liste contient: "Choisir une méthode".

@+

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 juil. 2006, 11:27

Bah c'est surtout que la méthode isSet() retourne un booléen et certainement pas une chaine.. donc la comparaison sera toujours fausse et ton $temp sera toujours égal à $_POST["doc"].

Le isSet() aurait du être utilisé avant quand tu récupères les variables pour savoir si elle a bien été envoyée..

Atomic34
Invité n'ayant pas de compte PHPfrance

26 févr. 2011, 13:04

Salut ! Je pense savoir d'où vient ton problème. Normalement, pour caractériser un "if" (éviter de confondre la partie "if" avec la partie "else") il faut mettre des { et }. Pareil pour else.
Exemple avec ton code :
if (isset($doc) == "Choisissez un document")
{
          $temp = "";
}
else
{
          $temp = $_POST["doc"];
}

ViPHP
xTG
ViPHP | 7331 Messages

26 févr. 2011, 15:13

Oula cela devient loufoque là...

Allez...
if ( !isset($_POST['doc']) || (isSet($_POST['doc']) && $_POST['doc'] == "Choisissez un document") )
  $temp = "";
else
  $temp = $_POST["doc"];