Test formulaire PHP

Fermé
gummybear Messages postés 31 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 1 mars 2008 - 26 avril 2003 à 19:15
 eddy - 28 oct. 2009 à 02:08
Salut, j'ai un prob avec un script PHP qui détecte des zones de formulaire non ou mal remplies. Quand on fait précédent pour revenir au formulaire de saisie, ce dernier ne contient plus les infos saisies. Mais cela ne se produit qu'a la première tentative. La deuxième tentative, si elle est toujours incomplète, permet de retourner au formulaire sans perdre les infos précédemment saisies. J'ai également remarqué que si on accède directement à la page html du formulaire ( en tapant www.monsite.fr/contact.html, au lieu d'y accéder par le site ) le phénomène ne se produit pas.
Est-ce que quelqu'un a une idée de ce qui est à l'origine de ce disfonctionnement ?
ci-dessous le script utilisé :
<?
$societe=trim($societe);
$nom=trim($nom);
$prenom=trim($prenom);
$fonction=trim($fonction);
$adresse=trim($adresse);
$cp=trim($cp);
$ville=trim($ville);
$pays=trim($pays);
$tel=trim($tel);
$fax=trim($fax);
$email=trim($email);

$toaddress = "mail@mail"; // the default value

$subject = "Formulaire";
$mailcontent = "societe: ".$societe."\n"
."nom: ".$nom."\n"
."prenom: ".$prenom."\n"
."fonction: ".$fonction."\n"
."adresse: ".$adresse."\n"
."codepostal: ".$cp."\n"
."ville: ".$ville."\n"
."pays: ".$pays."\n"
."tel: ".$tel."\n"
."fax: ".$fax."\n"
."email: ".$email."\n"
."renseignements: ".$rens."\n"
."devis: ".$devis."\n"
."rdv: ".$rdv."\n"
."projet: ".$projet."\n"
."échéance: ".$ech."\n"
."demande: \n".$demande."\n";
$fromaddress = "Message envoyé par: $email";

if($societe && $nom && $prenom && $tel && $email){ // si les champs sont remplis

}else{
echo "Veuillez remplir les champs obligatoires en fond sombre<br>";
echo "en retournant à la page précédente";
exit;
}

if (!ereg("^[a-zA-Z0-9_.\-]+@[a-zA-Z0-9_.\-]+\.[a-zA-Z0-9\ -\.]+$", $email))
{
echo "L'adresse E-mail que vous avez saisie n'est pas valide.<br>";
echo "Veuillez retourner à la page précédente et essayer à nouveau.";
exit;
}

mail($toaddress, $subject, $mailcontent, $fromaddress);
?>
<html>
<head>
<title>Formulaire </title>
</head>
<body bgcolor="#BBBBBB" text="white">
<h3>votre demande a été envoyée à XXX </h3>
<p><? echo nl2br($mailcontent); ?> </p>

</body>
</html>

@+

Gummybear ;-)
A voir également:

3 réponses

asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
27 avril 2003 à 00:40
Je sais pas d'ou viens le probleme... :(
mais pourquoi laisses tu à l'utilisateur le soin de revenir sur le formulaire ? je veux dire que tel qu'est ton script ici, tu pourrait remplacer
echo "Veuillez remplir les champs obligatoires en fond sombre<br>";
echo "en retournant à la page précédente";
exit;

par un truc du genre Header: Location "lapage de ton formulaire"
nb: c'est surment pas la bonne syntaxe... a voir sur php.net

puis dans ton formulaire tu rapel les variables precedentes

(<input type="text" name="nom" value="<?echo $nom;?>">)

bon courage
@+

Na kaer eo va Breizh,                   
gand ar mor glaz èn-dro dezi ! 
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 426
27 avril 2003 à 00:49
moui en me relisant je me rencompte que c pas clair du tout ce que je raconte ;-)
en fait, tu verifi tout tes champs et a la fin si 'il y a le moindre pb et avant de faire un echo tu tape 'header("Location: [l'url de ton form]?societe=$societe&nom=$nom&prenom=$prenom...");'

et dans ton formulaire tu fais ca pour tout les champs...
<input type="text" name="nom" value="<?echo $nom;?>">

et la ca doit marcher sans risque de bugs plus ou moins aleatoires...

J'espere que je suis plus clair mais j'ai un doute...

Na kaer eo va Breizh,                   
gand ar mor glaz èn-dro dezi ! 
0
JEROMAX Messages postés 274 Date d'inscription jeudi 22 février 2001 Statut Membre Dernière intervention 7 octobre 2013 10
28 avril 2003 à 19:19
à la place de :

if (!ereg("^[a-zA-Z0-9_.\-]+@[a-zA-Z0-9_.\-]+\.[a-zA-Z0-9\ -\.]+$", $email))
{
echo "L'adresse E-mail que vous avez saisie n'est pas valide.<br>";
echo "Veuillez retourner à la page précédente et essayer à nouveau.";
exit;
}

fais:

if (!ereg("^[a-zA-Z0-9_.\-]+@[a-zA-Z0-9_.\-]+\.[a-zA-Z0-9\ -\.]+$", $email))
{
echo "<script language=javascript>alert('L\'adresse E-mail que vous avez saisie n'est pas valide.');";
echo "window.history.go(-1);</script>";
exit;
}

le type voit la boite de message et c'est le navigateur qui fait un "back" en conservant les infos...

[ JEROMAX ] http://www.jeromax.free.fr
0
JEROMAX Messages postés 274 Date d'inscription jeudi 22 février 2001 Statut Membre Dernière intervention 7 octobre 2013 10
28 avril 2003 à 19:20
oups il manque un antislash dans le texte du alert

[ JEROMAX ] http://www.jeromax.free.fr
0
Bonjour,


Je suis débutant et je n'arrive pas a faire fonctionner mon formulaire newsletter. Pouvez vous me donner un coup de main sur ce problème de premier choix.

Je ne reçois pas l' Email de confirmation

Pouvez-vous adapter <?php……?> avec <form>……</form>


Le lien de ma page: http://www.cijoint.fr/cjlink.php?file=cj200910/cijyw5NMrK.txt


<head>

<?php if($_POST['action'] == "formok")
{
$e_mail = $_POST['email'];
if($e_mail == ""|| $e_mail == "e-mail")
{
$txt = " votre e-mail";
}
else
{
$destinataire= "bwba@hotmail.fr";
$objet = "Demande d'inscription";
$headers = "From: bwba@hotmail.fr \n\r";
$headers.= "Content-Type: text/html; charset=utf-8";
$headers .= "MIME-Version: 1.0 ";
$msg = "Nous vous informons d'une demande d'inscription suivant : ". $e_mail ."";
$msg = nl2br($msg);
mail($destinataire, $objet, $msg, $headers);
$msg2= "
Nous avons bien pris en compte votre demande d'inscription ? la newsletter.
Pour vous d?sinscrire, contactez nous

";
mail($e_mail, $objet, $msg2, $headers);
$txt = "Vous avez un message";
}
}
?>
</head>





<style type="text/css">
body {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:60%;
margin:50px;
color:#666666;}
.fieldset {
width:300px;
border: 0px solid red;
}
.fieldset label {
text-align:right;
width:70px;
float:left;
padding:0.2em;
margin:0;
margin-top:0.3em;
}
.fieldset .nobr {display:none;} .fieldset .textfield {
margin:3px;
height:20px;
width:200px;
border:solid 1px #8caf10;
background: transparent url("http://") no-repeat;
}
.fieldset .textarea {
margin:3px;
height:165px;
width:200px;
border:solid 0 #fff;
}
.submit {
margin:3px;
height:20px;
border:solid 1px #8caf10;
width:80px;
font:1.1em Verdana, Arial, Helvetica, sans-serif;
color:#000000;
text-transform:uppercase;
background: transparent url("http://") no-repeat;
}
}
</style>




<body>

<form action="" method="post">
<fieldset class="fieldset"><br>
<span class="" style="direction: ltr; text-align: left;"><label
for="email"></label></span> <br class="nobr">
<input name="email" class="textfield" id="email"
type="text"> <span class=""
style="direction: ltr; text-align: left;"><br>
<span class="" style="direction: ltr; text-align: left;">
<br class="nobr">
<br>
<label for="submit"> </label><br
class="nobr">
<input name="submit" class="submit" id="submit"
value="envoyer" type="submit"></span></span></fieldset>
</form>

</body>
0