Estoy intentando desconectarme correctamente de un usuario administrador. Aquí está mi función:(PHP) ¿Cómo destruir la cookie de sesión correctamente?
function logout()
{
$_SESSION = array(); //destroy all of the session variables
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
session_destroy();
}
Básicamente, una vez que autenticar la contraseña, me puse la sesión como válida (en total sólo el 1 por el usuario). Ahora, cuando el administrador cierra la sesión, quiero destruir la sesión actual y también destruir la cookie, para que no puedan regresar a la página de administración utilizando la cookie de sesión almacenada en el navegador. pero mi código no funciona. toco cerrar sesión, y puedo navegar directamente de regreso a la página de administración. Sin embargo, si elimino mis cookies, la funcionalidad es perfecta. Entonces, ¿qué pasa con la función de eliminación de cookies aquí?
bien, eso tiene sentido, pero ¿por qué todavía puedo acceder a la página de administración directamente incluso después de que destruí la sesión? – sepiroth
@hatorade, verifique mi respuesta editada. –
No importa, creo que me di cuenta: no llamé a session_start() en mi página de cierre de sesión (el texto de cierre de sesión se vincula a una página de cierre de sesión que llama a mi función anterior) – sepiroth