Bonjour,
je suis actuellement en train de développer un nouveau site mais je rencontre un léger soucis au niveau d'un formulaire d'inscription. C'est un formulaire assez simple sur un seul fichier et j'ai voulu l'améliorer avec une vérification de tous les champs. S'il le formulaire a été envoyé et que par exemple on a oublié de remplir un champ il devrait s'afficher l'erreur mais le soucis c'est que la page est rechargée tel quel sans aucune modification, même pas une petite erreur pour me montrer la voie :lol:
J'ai cherché l'erreur au niveau du code mais je n'ai rien trouvé, alors je viens vous demander de l'aide.
Voici le code :
Avant <html> :
Et Entre <body> et </body>:
J'ai coupé tout ce qui est en rapport avec l'envoi des saisis dans la BDD parce que j'ai testé et ca fonctionne correctement.
Ca reste assez long comme code donc s'il vous plait ne vous découragez pas parce que je serai assez embêté sinon
Merci d'avance pour votre aide !
je suis actuellement en train de développer un nouveau site mais je rencontre un léger soucis au niveau d'un formulaire d'inscription. C'est un formulaire assez simple sur un seul fichier et j'ai voulu l'améliorer avec une vérification de tous les champs. S'il le formulaire a été envoyé et que par exemple on a oublié de remplir un champ il devrait s'afficher l'erreur mais le soucis c'est que la page est rechargée tel quel sans aucune modification, même pas une petite erreur pour me montrer la voie :lol:
J'ai cherché l'erreur au niveau du code mais je n'ai rien trouvé, alors je viens vous demander de l'aide.
Voici le code :
Avant <html> :
Code:
<?php
// === traitement des données du formulaire ============================================================
if (isset($_POST["submit"])){
// le formulaire a été soumis
$etat = "erreur";
// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
if (isset($_POST["name"])) {
$_POST["name"]=trim(stripslashes($_POST["name"]));
}
if (isset($_POST["preneame"])) {
$_POST["prename"]=trim(stripslashes($_POST["prename"]));
}
if (isset($_POST["email"])) {
$_POST["email"]=trim(stripslashes($_POST["email"]));
}
if (isset($_POST["url"])) {
$_POST["url"]=trim(stripslashes($_POST["url"]));
}
if (isset($_POST["password"])) {
$_POST["password"]=trim(stripslashes($_POST["password"]));
}
// --- test de la validité des champs saisis ---
if (empty($_POST["name"])) {
// il manque le pseudo
$erreur="Vous avez oublié de remplir une case. Saisissez votre pseudo...";
}
elseif (empty($_POST["prename"])) {
// il manque le prénom et le nom
$erreur="Vous avez oublié de remplir une case. Saisissez votre Prénom et votre NOM...";
}
elseif (empty($_POST["email"])) {
// il manque l'adresse email
$erreur="Vous avez oublié de remplir une case. Saisissez votre adresse email...";
}
elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email"])){
// l'adresse e-mail n'est pas valide
$erreur="Votre adresse e-mail n'est pas valide...";
}
elseif (empty($_POST["url"])) {
// il manque l'url
$erreur="Vous avez oublié de remplir une case. Saisissez l'adresse de votre site...";
}
elseif (empty($_POST["password"])) {
// il manque le mot de passe
$erreur="Vous avez oublié de remplir une case. Saisissez votre mot de passe...";
}
elseif (empty($_POST["cgu"])) {
// les C.G.U ne sont pas acceptées
$erreur="Vous devez accepter les Conditions Générales d'Utilisation pour vous inscrire.";
}
else {
// --- tous les champs sont correctement remplis: on pourra s'incrire ---
$etat="ok";
}
}
else {
// --- le formulaire n'a pas été soumis ---
$etat="attente";
}
// === fin de traitement des données du formulaire =======================================================
?>
Et Entre <body> et </body>:
Code:
<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
?>
<div id="titre">S'enregistrer</div><br />
<form method="post" action="?pg=register<?php // echo $_SERVER["PHP_SELF"]; ?>"> => La page est un include dans index.php donc je suis obligé de mettre l'adresse de la page sinon je reviens sur l'accueil. J'ai déja essayé de rendre ?pg=register indépendant en register.php mais ca n'a rien changé.
<input type="hidden" name="referer" value="<?php echo $referer ?>">
<?php
if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
echo "<center><div id='redtext'><strong>".$erreur."</strong></div></center>\n\n";
// afficher le message d'erreur
}
?>
<center><div><b> Attention : Tous les champs sont obligatoires !</b></div><br /><br /><table width="75%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td><b>Pseudo</b></td>
<td>
<input type="text" name="name" id="name" value="<?php echo stripslashes($name); ?>">
</td>
</tr>
<tr>
<td><b>Prénom et NOM</b></td>
<td>
<input type="text" name="prename" id="prename" value="<?php echo stripslashes($prename); ?>">
</td>
</tr>
<tr>
<td height="30"><b>E-mail :</b></td>
<td height="30">
<input type="text" name="email" id="email" value="<?php echo stripslashes($email); ?>">
</td>
</tr>
<tr>
<td><b>Url de votre site </b></td>
<td>
<input type="text" name="url" id="url" value="http://<?php echo stripslashes($url); ?>">
</td>
</tr>
<tr height="5">
</tr>
<tr>
<td><b>Mot de passe</b></td>
<td>
<input type="password" name="password" id="password" value="<?php echo stripslashes($password); ?>">
</td>
</tr>
<td colspan="2"><br /><br /><center>
<b><INPUT TYPE="checkbox" NAME="cgu" VALUE="1" id="cgu"> J'accepte les <a href="?pg=regeln">Conditions Générales d'Utilisation</a></b>
</center>
</td>
</tr>
<tr>
<td colspan="2"><center><br />
<input type="submit" value="S'inscrire">
</center></td>
<b>
</tr>
</table></center>
</form><?php
}
else {
if($name && $prename && $password && $email && $url)
{
$sid=mt_srand((double)microtime()*1000000);
$sid=md5(str_replace('.', '', getenv('REMOTE_ADDR') + mt_rand(100000, 999999)));
if(account_add($name, $prename, $password, $email, $url, 2, $points_register, $sid, $referer))
{
mail($email, $email_welcome_title, $email_welcome, $email_header);
mail($email_notifynewmember, $email_notifynewmember_title, $email_notifynewmember_msg, $email_header);
// header("Location: $url_register_succesfull");
?>
<div id="titre">Inscription terminée</div><br />
<center>Merci d'avoir pris le temps etc etc etc.</center>
<?php
exit;
}
}
else {
echo "Un problème s'est produit lors de l'envoi des données.\n";
echo "Veuillez <a href=\"".$_SERVER["PHP_SELF"]."\">rééssayer</a> ou revenir à l'accueil.\n";
}
}
?>
J'ai coupé tout ce qui est en rapport avec l'envoi des saisis dans la BDD parce que j'ai testé et ca fonctionne correctement.
Ca reste assez long comme code donc s'il vous plait ne vous découragez pas parce que je serai assez embêté sinon
Merci d'avance pour votre aide !