- Home
- Categorie
- Coding e Sistemistica
- Coding
- Meccanismo di logout da un'area ristretta
-
Meccanismo di logout da un'area ristretta
Ciao a tutti, descrivo la questione. Devo implementare un meccanismo di
logout dall'area ristretta di un sito con php e avrei pensato ad un
sistema decisamente standard: se il login dell'utente va a buon fine, viene
settata la variabile di sessione $_SESSION["user"]; ogni pagina dell'area
ristretta controlla se $_SESSION["user"] esiste: se si, la pagina mostra
il proprio contenuto altrimenti ridirect al login. Tutte le pagine della
sezione ristretta presentano un link alla pagina logout.php che distrugge
la variabile $_SESSION["user"] ed esgue una redirect a index.php.
La struttura delle pagine dell'area ristretta è:[PHP]
<?phpif( !isset($_SESSION["user"] || $_SESSION["user"]!="logged" )
{
header('location:login.php');
exit();
}?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stric......-strict.dtd">
<html>
...html della pagina...
<a href="logout.php">logout</a>
.....
</html>
[/PHP]La pagina logout.php contiene solo le istruzioni php:
[PHP]
<?php
session_start();unset($_SESSION["user"]);
header('location:index.php');
?>
[/PHP]La domanda è: la pagina logout.php va bene anche così o deve
necessariamente distruggere la sessione con session_destroy? 1000 grazie
-
Ciao,
può andare bene anche così, ma dipende da quali altre variabili di sessione utilizzi e come.
Mi spiego.
Se in fase di login e durante il periodo in cui l'utente è loggato memorizzi ad esempio anche altri dati come il nome o lo username che successivamente al logout non dovrebbero essere più disponibili, dovresti distruggere anche quelli.
Con
[PHP]
session_unset();
session_destroy();
[/PHP]
sei sicuro di cancellare tutto, ma se oltre alle variabili di sessione relative all'utente ne hai altre che utilizzi per scopi differenti e di cui hai necessità allora devi distruggere una ad una solo quelle legate all'account loggato, come nel codice che hai riportato.Alessandro