Envoue de message d'erreur vers mon formulaire ?

Eléphant du PHP | 216 Messages

27 févr. 2006, 12:17

Bonjour,

j'effectue des test sur mon formulaire rempli et s'il est mal rempli je voudrais que les message d'erreur apparaissent vers mon formulaire initiale. pour cela j'utilise Header, mais mes message d'erreurs n'apparaissent pas?

Voici mon code :
<?php 

$erreur = false; 

$civilite = $_POST['civilite']; 
$mail = $_POST['mail']; 
$point = strpos($mail,"."); 
$aroba = strpos($mail,"@"); 
$nom = $_POST['nom']; 
$prenom = $_POST['prenom']; 
$telephone = $_POST['telephone']; 
$mdp = $_POST['mdp']; 
$mdp=md5($mdp); 
$mdpc = $_POST['mdpc']; 
$mdpc=md5($mdpc); 
$ad_ligne1 = $_POST['ad_ligne1']; 
$ad_ligne2 = $_POST['ad_ligne2']; 
$ad_cp = $_POST['ad_cp']; 
$ad_ville = $_POST['ad_ville']; 
if(empty($mail)) 
{ 
echo ' <center>Le <b>Mail</b> est vide !</center> '; 
}elseif($point=='') 
{ echo 'Votre email doit comporter un <b>point</b>';} 
elseif($aroba=='') 
{ $erreur = true; 
  echo "Votre email doit comporter un <b>'@'</b>"; 
} 
else{} 
if(empty($nom)) 
{ 
$erreur = true; 
echo ' <center>Le <b>nom</b> est vide </center> '; 
}else{} 
if(empty($prenom)) 
{ 
echo ' <center>Le <b>prénom</b> est vide </center> '; 
}else{} 
if(empty($telephone)) 
{ 
echo ' <center>Le <b>Telephone</b> est vide </center> '; 
}else{} 
if(empty($mdp)) 
{ 
echo ' <center>Le <b>Mot de passe</b> est vide </center> '; 
}else{} 
if(empty($mdpc)) 
{ 
echo ' <center>Le <b>Mot de passe à confirmer</b> est vide </center> '; 
}else{} 
if(empty($ad_ligne1)) 
{ 
echo " <center>Merci de renseigner le première ligne de l'adresse</center> "; 
}else{} 
if(empty($ad_cp)) 
{ 
echo ' <center>Le <b>Code postal</b> est vide </center> '; 
}else{} 
if(empty($ad_ville)) 
{ 
echo ' <center>La <b>Ville</b> est vide </center> '; 
}else{} 

// si le formulaire n'est pas bien rempli , revoie des message d'erreur sur le formulaire initiale 

if ($erreur) { 
header("Location: crecli.htm"); 
}else{}
Merci d'avance de votre aide. :wink:

Eléphant du PHP | 136 Messages

27 févr. 2006, 12:39

le javascript côté client me parait une solution bien plus rapide et souple

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 févr. 2006, 12:42

Le souci avec le javascript c'est sa désactivation possible :)

Bases toi sur cet exemple et construit ton code à partir de là :

Page index.php :
<?php 
if (isset($_POST['envoyer']) && $_POST['envoyer'] == 'Envoyer')
{
	$civilite = $_POST['civilite'];
	
	if(empty($civilite)) 
	{ 
		$erreur = "Veuillez remplir le champ civilité";
	}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>Untitled</title>
</head>

<body>
<?php if(isset($erreur)) echo $erreur;?>
<form action="index.php" method="post">
<input type="Text" name="civilite" value="">
<input type="Submit" name="envoyer" value="Envoyer">
</form>

</body>
</html>
Tu rajoutes ensuite les if et else à ta convenance ;)

Eléphant du PHP | 216 Messages

27 févr. 2006, 21:10

oui, mais moi j'aimerais avoir mon code php dans un fichier et mon formulaire das un autre fichier. c'est pour cela que je cherche de quelle façon je peux faire aparaître mes messages d'erreur dans le formulaire.
Dans l'exemple que tu me donnes, tu mélange formulaire et code php.
aurais-tu un exemple ou les deux sont séparés?

merci d'avance.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 févr. 2006, 21:59

Page index.htm

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> </head> <body> <form action="verif.php" method="post"> <input type="Text" name="civilite" value=""> <input type="Submit" name="envoyer" value="Envoyer"> </form> </body> </html>
Page verif.php
<?php 
if(empty($civilite)) 
{ 
print("Merci de remplir le champs civilité"); 
exit(); 
}
?>
Mais c'est dommage de faire 2 pages différentes alors que tu peux en faire qu'une.

Eléphant du PHP | 216 Messages

27 févr. 2006, 22:57

tu vas peut-être me trouver un peu ch...
mias j'aimerais que le message d'erreur apparaisse à côte de mon formulaire.
c'est possible ?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 févr. 2006, 23:06

Une question simple, lol tu te compliques la vie à faire un code en 2 pages pour avoir le résultat que je t'ai mis plus haut condensé en une...

Il y a une raison précise pour que tu veuilles absolument 2 pages différentes ?

Eléphant du PHP | 216 Messages

28 févr. 2006, 08:58

ben c'est pour faire plus propre.
mais bon soit.
D'une manière générale, quel est le moyen de faire passer une variable d'une page vers une autre?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

28 févr. 2006, 09:58

Généralement quand on peut le faire en une page c'est mieux, ça évite de faire plusieurs pages pour rien.

Sinon pour le passage tu as la méthode URL, la méthode formulaire, les sessions, les cookies et peut-être d'autres que je n'ai aps en tête.