Version complète: sur le forum Webmaster Hub : demande d'aide
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
infotech
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


CODE
<?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 &eacute;t&eacute; enregistr&eacute; avec succ&egrave;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&eacute;p&eacute;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&eacute;nom</td>
<td><input name="prenom" type="text" id="prenom"></td>
</tr>
<tr>
<td>Privil&egrave;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>&nbsp;</p>
</div>
</form>
</body>
</html>
Kalt
Salut,

En fait si ton inscription est réussie, tu ne dois pas faire de
CODE
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.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.