J'ai un petit problème de contrôle de session afin que l'utilisateur qui se connecter puisse naviguer sur le site mais lorsque qu'il se déco il ne peut pas faire précèdent pour revenir dans le site et continuer a naviguer:
Mon bout de code contrôle de session :
<?php
// on lance la session
session_start();
/// vérification qu'il n'existe PAS une variable de session login (créée uniquement si on se connecte avec succès)
if (!isset($_SESSION['login'])) {
die ("ERREUR: Acces interdit!");
}
// Sinon et bien c'est que la variable existe, donc on ne fait rien de spécial et le script continue sa route (et affiche ta page).
else {
}
?>
Mon bout de code connexion:
<?php
require_once('connexion.php');
/*
-----------------------------------
------ SCRIPT DE PROTECTION -------
DBProtect V1.2
-----------------------------------
*/
session_start(); // début de session
if (isset($_POST['login'])){ // execution uniquement apres envoi du formulaire (test si la variable POST existe)
$id = addslashes($_POST['id']);
$login = addslashes($_POST['login']); // mise en variable du nom d'utilisateur
$pass = addslashes(sha1($_POST['pass'])); // mise en variable du mot de passe chiffré à l'aide de md5 (I love md5)
// requete sur la table administrateurs (on récupère les infos de la personne)
mysql_select_db($database_database, $database);
$verif_query=sprintf("SELECT * FROM users WHERE login='$login' AND pass='$pass'"); // requête sur la base administrateurs
$verif = mysql_query($verif_query, $database) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$users = mysql_num_rows($verif);
if ($users) { // On test s'il y a un utilisateur correspondant
// déclaration des variables de session
$_SESSION['rang'] = $row_verif['rang']; // le privilège de l'utilisateur (permet de définir des niveaux d'utilisateur)
$_SESSION['id'] = $row_verif['id'];
$_SESSION['login'] = $row_verif['login']; // Son Login
$_SESSION['pass'] = $row_verif['pass']; // Son mot de passe (à éviter)
if($row_verif["rang"] == "1") //les infos correspondent à un compte admin
header('Location: Administration.php');//on redirige vers la partie admin
else if($row_verif["rang"] == "0") //les infos correspondent à un compte utilisateur
header('Location: Page accueil.php');//on redirige vers la partie utilisateur
}
else {
header("Location:index.php?erreur=login"); // redirection si utilisateur non reconnu
}
}
// Gestion de la déconnexion
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){ // Test sur les paramètres d'URL qui permettront d'identifier un contexte de déconnexion
$login = $_SESSION['login']; // On garde le prénom en variable pour dire au revoir (soyons polis
session_unset("authentification");
header("Location:index.php?erreur=delog&login=$login");
}
?>
Merci d'avance pour votre aide