session_destroy()
finaliza la sesión completa, lo que significa que se eliminará del almacenamiento de la sesión de PHP y no podrá volver a utilizarse. Si solo desarma las variables de sesión y las cookies, la sesión aún estaría activa en el lado del servidor y podría reciclarse si se establecen algunas variables de sesión nuevamente y la cookie con la ID de la sesión original se envía nuevamente al cliente.
Para decirlo de otra manera: una sesión consiste básicamente en una ID secreta almacenada en algún lugar en el servidor web, junto con las variables de sesión registradas en esa sesión. El ID de sesión se envía al cliente (generalmente como una cookie) para que el cliente pueda identificarse como 'propietario' de la sesión en solicitudes posteriores. Si se asume que una sesión ya se ha creado y tiene las variables registrados en él, aquí está un resumen de lo que las funciones hacen:
session_start()
importa todos las variables de sesión que pertenecen a la ID de sesión que el cliente envía desde el registro de sesión a la $_SESSION
gama
session_unset()
o llamando unset()
en $_SESSION
las variables limpiará todas las variables registradas para la sesión actual, pero no clara la sesión en sí
- desarmado la cookie de sesión del cliente será la señal de la CLI ent que la sesión ha terminado, pero esto no eliminará la sesión del registro de sesión en el servidor, ya sea
session_destroy()
es la única función que realmente va a purgar la sesión del registro de la sesión, por lo tanto, literalmente, 'destruir' la sesión
Mientras session_destroy()
se anulará el registro todas las variables de sesión, no se borrará la matriz $_SESSION
en la secuencia de comandos que se está ejecutando actualmente, por lo que es una buena idea para desarmar las variables de sesión para evitar errores y problemas de seguridad.
En una nota relacionada, el manual de PHP recomienda no utilizar session_unset()
sino que no se ha establecido las claves de $_SESSION
:
Si se utiliza $_SESSION
(o $HTTP_SESSION_VARS
para PHP 4.0.6 o menos), utilice unset()
a anular el registro de una variable de sesión, es decir, unset($_SESSION['varname']);
.
http://us.php.net/manual/en/function.session-destroy.php –
Muchas gracias, lo he leído varias veces pero no puedo entender lo que hace. Por qué en realidad no destruye la sesión. Para destruir la sesión, tengo que usar dos pasos más. Pero de hecho, session_destroy() debería hacer esos pasos por mí. – Green
Si la respuesta de * Another Code * le proporcionó la información que necesitaba (no veo cómo no pudo hacerlo), ¿podría aceptarla? Por lo general, así se hacen las cosas aquí: p – RobinJ