Si nella pagina da proteggere (admin.php) ho inserito il codice: (se non è settata la sessione[autorizzato], allora ti butto fuori e vai a fare il login)
Codice PHP:
if(!isset($_SESSION['autorizzato'])) {
header("Location: login.php?login=fail");
}
Il fatto è che quando premo il pulsante Logout (che sta in admin.php), vengo rimandato a login.php?logout=1, dove ce questo codice:
Codice PHP:
if(isset($_GET['logout'])) {
$_SESSION = array();
$_COOKIE = array();
session_destroy();
}
quindi in teoria sul server la sessione dell'utente collegato dovrebbe essere distrutta, impedendo un qualsiasi accesso!
Ora ho scoperto che questo accesso backpage-after-logout è dato da un cookie memorizzato nella cache per quel sito, dunque sta proprio nel pc locale dell'utente!
Infatti eliminando i cookie dal browser (manualmente), e poi aggiornando la pagina nel pannello amministratore, vengo buttato fuori perche $_SESSION[autorizzato] non risulta più settata... e quindi mi manda a login.php (come è indicato sopra)...
Dunque posso dedurre che il server confronta la sua sessione con un cookie sul mio pc, e se non lo trova fa logout...
Il problema è che questo file non viene cancellato e quindi la sessione sul server viene ricreata, non riesco a capire con quale criterio, dato che l'ID sessione dovrebbe essere univoco e casuale...