¿Por qué mi sesión permanece?

Debo ser realmente estúpido porque parece algo bastante obvio que me está confundiendo por completo ahora.

Tengo una sesión …

es decir $_SESSION['handbag_id'];

y en cierto punto, necesito matar por completo esta sesión.

es decir

 // at the start of the page session_start(); // elsewhere on the same page unset($_SESSION); session_destroy(); 

Y, sin embargo, puedo ir a otra página y hacer un

 echo $_SESSION['handbag_id']; 

Y todavía tengo el mismo handbag_id que antes.

¿Qué me estoy perdiendo? ¿No entiendo cómo funciona esto o tengo alguna configuración de servidor que prevalezca sobre mi deseo de destruir sus valores?

Las funciones de sesión pueden ser muy difíciles. Para matar completamente una sesión, necesita asignar un nuevo valor al $_SESSION _SESSION. De lo contrario, todo lo que hace es descargar los datos de sesión del script actual. Esto debería funcionar:

 session_start(); $_SESSION = array(); session_write_close(); // Not required 

Si también necesita abrir una sesión completamente nueva, puede hacer esto:

 session_regenerate_id(FALSE); $tmp = session_id(); session_destroy(); session_id($tmp); unset($tmp); session_start(); 

Actualizar:

Una pregunta relacionada que puede serle útil: Cerrar sesión y comenzar una nueva

No hagas esto

 unset($_SESSION); 

Hacer esto

 $_SESSION = array(); 

Y finalmente

 session_destroy(); 

use session_comitt antes de imprimir y vea la magia 🙂