Per distruggere una sessione è necessario adottare le seguenti misure:
- cancellare i dati della sessione
- invalidare la sessione ID
Per fare ciò, I ‘D Usare questo:
session_start();
// resets the session data for the rest of the runtime
$_SESSION = array();
// sends as Set-Cookie to invalidate the session cookie
if (isset($_COOKIE[session_name()])) {
$params = session_get_cookie_params();
setcookie(session_name(), '', 1, $params['path'], $params['domain'], $params['secure'], isset($params['httponly']));
}
session_destroy();
E per essere sicuri che l'ID di sessione non è valida, si dovrebbe consentire solo gli ID di sessione che venivano avviate da script. Quindi impostare un flag e verificare se è impostato:
session_start();
if (!isset($_SESSION['CREATED'])) {
// invalidate old session data and ID
session_regenerate_id(true);
$_SESSION['CREATED'] = time();
}
Inoltre, è possibile utilizzare questo timestamp per scambiare l'ID di sessione periodicamente per ridurre la sua vita:
if (time() - $_SESSION['CREATED'] > ini_get('session.gc_maxlifetime')) {
session_regenerate_id(true);
$_SESSION['CREATED'] = time();
}
Date un'occhiata all'indirizzo: http://stackoverflow.com/questions/10648565/destroying-php-session/10662060#10662060 – Brett