Bonjour,
Je viens de créer un formulaire basique de LOGIN et PASSSWORD. La validation de ce formulaire entraine 3 possibilités:
- les identifiants n'existent pas la page index.php est affichée en mode "visiteur".
- les identifiants existent et sont ceux d'un membres, la page index.php est affichée en mode "membres".
- les identifiants existent et sont ceux de l'administrateur, a page index.php est affichée en mode "administrateur".
Les identifiants sont gérés par des variables de session-->$_SESSION["login"] et $_SESSION["password"] qui sont comparés à la base SECURE...
Jusque là, rien de bien extraordinaire. Mais voilà:
- sous FF et IE7 lorsque je me signe en ADMIN et que je clique sur la touche VALIDER, la page index.php remonte bien en mode "admin".
- sous FF et IE7 lorsque je me signe en ADMIN et que je clique sur la touche ENTER, la page index.php remonte bien en mode "admin".
dans les deux cas je suis donc signé en admin et la page est en admin...Tout va bien
Le problème c'est que lorsque je reclique sur VALIDER ou ENTER, avec des identifiants erronés ou des champs vident, la page index.php revient en mode "visiteur".
Si je rentre des identifiants de "membres" tout fonctionne, la page se met en mode "membres".
Voici les codes:
Code : Tout sélectionner
<form id="log" name="log" method="post" action="veriflogin.php">
<input type="text" name="login" value="Login" onFocus="this.value=''"/><br/>
<input type="password" name="mot_de_passe" value="*****" onFocus="this.value=''"/><br/>
<input type="submit" id="submit" name="submit" value="Valider !"/>
</form>
et le fichier veriflogin.php
<?php
if($_POST["login"] != "" && $_POST["mot_de_passe"] != "")
{
$login = $_POST["login"] ;
$password = $_POST["mot_de_passe"] ;
include('connect.php');
$sql = "SELECT * FROM membres WHERE id AND login = '$login' AND password = '$password'";
$requete = mysql_query($sql, $cnx) or die($sql."<br>".mysql_error()) ;
$result = mysql_fetch_object($requete) ;
if(is_object($result))
{
session_start() ;
$_SESSION["login"] = $login ;
$_SESSION["password"] = $password ;
header("Location: index.php") ;
}
else
{
header("Location: index.php") ;
}
}
{
header("Location: index.php") ;
}
?>
et le code qui determine le mode de la page
<?php
if(!isset($_SESSION["login"]) || $_SESSION["login"] == "")
{
$varsess = 0;
echo ' Vous n êtes pas identifié !';
}elseif (($_SESSION["login"] == 'administrateur') && ($_SESSION["password"] == 'passadmin')) {
$varsess = 2;
echo ' Bonjour Maître ';
} else {
$varsess = 1;
echo ' Bonjour '.ucfirst($_SESSION["login"]).' ...';
}
?>
je suis coincé, je ne vois pas ou ça "vrille" :(
Pourquoi les variables de sessions sont-elles effacées lors d'une seconde soumission ??
Merci pour vos réponses....