Bonjour à tous,
J'ai créé un site d'anciens élèves uniquement consultable par des utilisateurs préalablement enregistrés dans ma BDD.
Sur la page d'index, j'ai un formulaire demandant un couple login/mot de passe.
J'utilise naturellement les sessions.
Il ya quelques temps je me décide à refondre le design afin d'intégrer des CSS. Depuis, mes sessions ne fonctionnent plus du tout.
Y'a t'il un rapport ? je ne crois pas.
Je travaille en local sur phpmyadmin 2.8.0.2 et mysql 5.0.19.
Voila le code de la page d'index contenant le formulaire :
$verif_query= sprintf("SELECT * FROM lh_membre WHERE login='$login' AND pass='".md5($pass)."' AND statut='$base' AND valid='1'");
mysql_real_escape_string($login);
mysql_real_escape_string($pass);
$verif = mysql_query($verif_query, $connexion) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);
if((strcmp($login,$row_verif['login'])==0)&&(strcmp(md5($pass),$row_verif['pass'])==0)){
if ($utilisateur) {
session_register("authentification");
$_SESSION['nom'] = $row_verif['nom'];
$_SESSION['prenom'] = $row_verif['prenom'];
$_SESSION['login'] = $row_verif['login'];
$_SESSION['id'] = $row_verif['id'];
$_SESSION['email'] = $row_verif['email'];
$_SESSION['arrivee'] = $row_verif['arrivee'];
$_SESSION['depart'] = $row_verif['depart'];
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['statut'] = $row_verif['statut'];
$_SESSION['privilege'] = $row_verif['privilege'];
$_SESSION['visite'] = $row_verif['visite'];
$_SESSION['bureau'] = $row_verif['bureau'];
$_SESSION['cp'] = $row_verif['cp'];
$_SESSION['rue'] = $row_verif['rue'];
$_SESSION['ville'] = $row_verif['ville'];
$_SESSION['tel'] = $row_verif['tel'];
$timestamp_expire = time() + 365*24*3600;
setcookie('visite', $row_verif['visite'], $timestamp_expire);
$time = (date("H") * 60) + date("i");
$compteur = $_SESSION['visite'] + 1;
if($row_verif['ip'] != $_SERVER['REMOTE_ADDR']){
$sql = mysql_query("UPDATE lh_membre SET ip='".$_SESSION['ip']."', visite='$compteur' WHERE id='".$_SESSION['id']."'");
}
header("Location: membre/accueil.php");
}
else{
header("Location: index.php?erreur=login");
}
}
}
Je rajoute en plus
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){
session_unset('authentification');
header("Location:index.php?erreur=delog");
}
Si l'utilisateur existe, je suis bien renvoyé vers la page membre/accueil.php sinon je reste sur index.php
Jusque là, cela fonctionne
Ensuite sur ma page d'accueil.php :
session_start();
if (session_is_registered("authentification")){
}
else{
header('Location:../index.php?erreur=logout');
}
Et là, rien n'y fait. Je peux accéder à cette page même si je ne suis pas loggué.
J'ai un lien pour me delogguer (../index?erreur=logout) qui est censé effacer les variables mais rien n'y fait.
J'ai besoin d'aide SVP.
Merci d'avance