problème message erreur qui disparaît

bostak
Invité n'ayant pas de compte PHPfrance

16 déc. 2011, 12:45

Bonjour,

J'ai un soucis dans mon code php qui me met les nerfs à bout, j'ai un formulaire d'inscription, quand je le poste vide j'ai des messages d'erreur pour chaque champ disant qu'il faut remplir le champ vide. Lorsque je re clic sur inscription (le formulaire est toujours vide) tous les messages d'erreur restent sauf celui de mon champ login. Je n'y comprend rien pourriez vous m'aider ? voici mon code :

Mon fichier index.php

Code : Tout sélectionner

if(isset($_GET["page"])) { /*Formulaire Inscription Utilisateur*/ if ($_GET["page"] == "inscription") { /*On vérifie que l'internaute qui veut s'inscrire n'est pas connecté*/ if(!isset($_SESSION["login"])) { include("pages/insertion.php"); include("pages/inscription.php"); if(isset($_POST['login']) && isset($_POST["inscription"])) { $loginError = errorChampLogin($_POST['login']); $login = $_POST['login']; } if(isset($_POST['mail']) && isset($_POST["inscription"])) { $mailError = errorChampMail($_POST['mail']); $mail = $_POST['mail']; } if(isset($_POST['pass']) && isset($_POST["inscription"])) { $passError = errorMdp($_POST['pass']); $pass = $_POST['pass']; } if(isset($_POST['passverif']) && isset($_POST["inscription"])) { $passverifError = errorMdpVerif($_POST['passverif'], $_POST['pass']); $passverif = $_POST['passverif']; } if (!isset($LoginError)&& !isset($mailError) && !isset($passError) && !isset($passverifError) && isset($_POST["inscription"])) { $inscription = "inscription reussi"; registerUser($_POST['login'], $_POST['mail'], $_POST['pass']); $redirection = "finInscription"; } include("views/vueNavigation.php"); include("views/vueMenu.php"); include("views/vueContentInscription.php"); /*Fin formulaire Inscription*/ } else { header('Location: index.php'); } }
Mon fichier vueContentInscription.php

Code : Tout sélectionner

<div id="body"> <div id="inscription"> <form method="post" action="index.php?page=inscription"> <table> <tr> <td> Login </td> <td> <?php if(isset($login)) echo '<input type="text" name="nom" value="'.$login.'" />'; else echo '<input type="text" name="login" />'; if(isset($loginError)) echo $loginError; ?> </td> </tr> <tr> <td> Mail </td> <td> <?php if(isset($mail)) echo '<input type="text" name="mail" value="'.$mail.'" />'; else echo '<input type="text" name="mail" />'; if(isset($mailError)) echo $mailError; ?> </td> </tr> <tr> <td> Mot de passe </td> <td> <?php if(isset($pass)) echo '<input type="password" name="pass" value="'.$pass.'" />'; else echo '<input type="password" name="pass" />'; if(isset($passError)) echo $passError; ?> </td> </tr> <tr> <td> Retapez votre mot de passe </td> <td> <?php if(isset($passverif)) echo '<input type="password" name="passverif" value="'.$passverif.'" />'; else echo '<input type="password" name="passverif" />'; if(isset($passverifError)) echo $passverifError; ?> </td> </tr> <tr> <td> </td> <td> <input type="submit" name="inscription" value="inscription" /> </td> </tr> </table> </form> <?php if(isset($inscription)) echo $inscription; ?> </div> </div>
Et mon fichier insertion.php

Code : Tout sélectionner

<?php function existeUtil($login) { $requete = mysql_query("SELECT `login` FROM `users` WHERE `login` = '".$login."'"); $existe = mysql_num_rows($requete); return $existe; } function registerUser($login, $mail, $pass) { if(existeUtil($login) == false) { $requete = mysql_query("INSERT INTO `users` (`login`, `mail`, `pass`) VALUES ('".$login."', '".$mail."', '".md5($pass)."'); "); } } ?>
Cordialement, et merci d'avance

ViPHP
xTG
ViPHP | 7331 Messages

16 déc. 2011, 14:09

Quelle est le code de la fonction errorChampLogin() ?

bostak
Invité n'ayant pas de compte PHPfrance

16 déc. 2011, 14:12

désolé j'ai oublié de vous mettre le fichier inscription.php que voici :

Code : Tout sélectionner

<?php function problemeInscription($problem) { $message="<br /><strong style='color:red'>".$problem."</strong>"; return $message; } function errorChampLogin($donnee) { if(empty($donnee)) { $message=problemeInscription("Veuillez indiquer votre login"); return $message; } elseif(existeUtil($donnee) == 1) { $message=problemeInscription("Ce login existe deja"); return $message; } } function errorChampMail($donnee) { if(empty($donnee)) { $message=problemeInscription("Veuillez indiquer votre adresse email"); return $message; } elseif(!preg_match('#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#', $donnee)) { $message=problemeInscription("Votre adresse email n'est pas valide"); return $message; } } function errorMdp($donnee) { if(empty($donnee)) { $message=problemeInscription("Veuillez indiquer votre mot de passe"); return $message; } elseif(strlen($donnee)<6) { $message=problemeInscription("Votre mot de passe doit contenir au moins 6 caractères"); return $message; } } function errorMdpVerif($donnee, $donnee2) { if(empty($donnee)) { $message=problemeInscription("Veuillez indiquer votre mot de passe"); return $message; } elseif(strcmp($donnee, $donnee2)) { $message=problemeInscription("Votre mot de passe doit être le même que le précédent"); return $message; } } ?>

ViPHP
xTG
ViPHP | 7331 Messages

16 déc. 2011, 14:23

Pas d'erreur dans tout ça, mais c'était en amont :
if(isset($login))
echo '<input type="text" name="nom" value="'.$login.'" />';
else
echo '<input type="text" name="login" />';

bostak
Invité n'ayant pas de compte PHPfrance

16 déc. 2011, 18:11

Vraiment merci beaucoup, je l'ai relu plein de fois ce code et je suis toujours passé à côté de cela. Mille merci.

Cordialement,

bostak
Invité n'ayant pas de compte PHPfrance

16 déc. 2011, 18:22

j'aurais une autre petit question sinon concernant une redirection une fois que l'utilisateur a bien rempli le formulaire j'utilise cela :

Code : Tout sélectionner

<?php if(isset($redirection) && $redirection == "redirection") echo '<meta http-equiv="refresh" content="1; index.php">'; ?>
qui se trouve dans un fichier que "j'include" tout en haut de mon index.php.

Je ne comprend pas pourquoi celui-ci ne fonctionne pas ?

Cordialement,

bostak
Invité n'ayant pas de compte PHPfrance

16 déc. 2011, 18:26

j'ai enfaite résolu mon problème j'ai mis le bout de code juste après les conditions pour enregistrer le fichier et cela fonctionne.

Cordialement