infotech Posté 12 Février 2006 Posté 12 Février 2006 j'ai un prob que voici: qaund je remplie le formulaire les informations sont enregistré dans ma base de donnée, mais le message confirmant l'inscription n'apparait pas. pareille pour les chaps vides et les pass differents? voilà le code si vous pouvez savoir où es le problème. Merci <?php require_once('connexion.php'); ?><?php if(isset($_POST['login'])){ if(($_POST['login'] == "") || ($_POST['pass'] == "")){ header("Location:inscription.php?erreur=empty"); } else if($_POST['pass'] == $_POST['pass2']){ $login = $_POST['login']; $pass = md5($_POST['pass']); $nom = $_POST['nom']; $prenom = $_POST['prenom']; $privilege = $_POST['privilege']; $add_user = sprintf("INSERT INTO utilisateurs (login, pass, nom, prenom, privilege) VALUES ('$login', '$pass', '$nom', '$prenom', '$privilege')"); mysql_select_db($database_dbprotect, $dbprotect); $result = mysql_query($add_user, $dbprotect) or die(mysql_error()); header("Location:inscription.php?add=ok"); } else{ header("Location:inscription.php?erreur=pass"); }}?><html><head><title>Inscription des utilisateurs</title><link href="styles.css" rel="stylesheet" type="text/css"><style type="text/css"><!--.style1 {font-family: Arial, Helvetica, sans-serif}--></style></head><body><form action="" method="post" name="add"> <div class="titre"></div> <p align="center" class="style1"> <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "pass")) { // Affiche l'erreur ?> <span class="erreur">Veuillez entrer deux fois votre mot de passe SVP</span> <?php } ?> <?php if(isset($_GET['add']) && ($_GET['add'] == "ok")) { // Affiche l'erreur ?> <span class="reussite">Vous avez été enregistré avec succès !</span> <?php } ?> <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "empty")) { // Affiche l'erreur ?> <span class="erreur">Veuillez renseigner au moins un login et un mot de passe SVP</span> <?php } ?></p> <p align="center"><strong><u><font face="Arial">Formulaire d'Inscription</font></u></strong></p> <table width="350" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#eeeeee" class="tableaux"> <tr> <td width="40">Login</td> <td width="144"><input name="login" type="text" id="login"></td> </tr> <tr> <td>Mot de passe </td> <td><input name="pass" type="password" id="pass"></td> </tr> <tr> <td>Répéter mot de passe </td> <td><input name="pass2" type="password" id="pass2"></td> </tr> <tr> <td>NOM</td> <td><input name="nom" type="text" id="nom"></td> </tr> <tr> <td>Prénom</td> <td><input name="prenom" type="text" id="prenom"></td> </tr> <tr> <td>Privilège</td> <td><select name="privilege" id="privilege"> <option value="user">Utilisateur</option> </select></td> </tr> <tr> <td height="50" colspan="2"><div align="center"> <input type="submit" name="Submit" value="Inscription"> </div></td> </tr> </table></form><p align="center"><strong> </strong></p><form action="" method="post" name="suppr"> <p align="center"><strong></strong></p> <div align="center"> <p> </p> </div></form></body></html>
Kalt Posté 13 Février 2006 Posté 13 Février 2006 (modifié) Salut, En fait si ton inscription est réussie, tu ne dois pas faire de header("Location:inscription.php?add=ok"); , tu restes sur la page en cours et tu affiches simplement que l'inscription a réussi. Tel que ton code fonctionne maintenant, il tourne en rond : 1- Tu vérifies en début de page si tu as bien les valeurs des variables login et mot de passe, 2- Si tu ne les as pas tu renvoies une erreur 3- Si tu les as tu fais l'inscription dans la base de données et tu renvoies la même page pour afficher la réussite 4- Problème : la page est relancée sans les variables login et mot de passe -> on se retrouve en 2, donc erreur. Donc si l'insertion dans la base a réussi, tu fais $reussite = true; puis tu testes l'existence de la variable $reussite au moment où tu affiches ton résultat. Modifié 13 Février 2006 par Kalt
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant