Foros del Web » Programando para Internet » PHP »

Duda con session_unset()

Estas en el tema de Duda con session_unset() en el foro de PHP en Foros del Web. Saludos, soy un nuevo en el mundo del php (vengo del asp...), bueno y tengo una inquietud con un sistema de login, una vez que ...
  #1 (permalink)  
Antiguo 16/08/2004, 11:40
 
Fecha de Ingreso: marzo-2004
Ubicación: San José, Costa Rica
Mensajes: 234
Antigüedad: 13 años, 8 meses
Puntos: 0
Duda con session_unset()

Saludos, soy un nuevo en el mundo del php (vengo del asp...), bueno y tengo una inquietud con un sistema de login, una vez que el usuario es comprobado se guarda su nick en una variable de sesion y esta es la función que uso para comprobar que el usuario esté logeado:

function verifica_login(){
if (!isset($_SESSION['usuario_nick'])) {
header("Location: login.php");
exit();
}
}

En la página de salir utilizo un session_unset() para limpiar las variables de sesion..., pero por ejemplo si me logeo y salgo, las variables de sesion no se borran y puedo volver a entrar en las páginas protegidas sin ningún problema...

Porque el session_unset(), no elimina las variables de sesion??
No se supone que es así como debe trabajar?
  #2 (permalink)  
Antiguo 16/08/2004, 11:51
Avatar de cadec  
Fecha de Ingreso: junio-2004
Mensajes: 278
Antigüedad: 13 años, 5 meses
Puntos: 0
Deberia de ser como lo describes pero al parecer o tu navegador te muestra lo que tienes en cache abriendo y posibilitando nuevamente acceso o tu logout no funciona en tiempo y forma.
verifica tu base de datos.

un saludo

___________________
www.todopy.com
  #3 (permalink)  
Antiguo 16/08/2004, 11:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cuando usas los arrays superglobales ($_SESSION) para sesiones .. no se usa session_unset() para deshacerte de las variables de sesión sino:

Un ejemplo de "logout" típico sería:

Código PHP:
<?
session_start
();
$_SESSION=array();
session_destroy()
header("Location: index.php");
?>
(el $_SESSION=array() .. es decir, asignar al array superglobal $_SESSION un array vacio .. es lo que recomienda PHP: www.php.net/session_destroy pero, podrías usar unset ($_SESSION) también.)

Es importante redireccionar hacia otro sítio (página) al hacer tu "logout" donde destruyes las variables de sesión .. dichos valores no quedarán actualizados hasta la próxima petición al servidor (recarga de página .. redirección .. etc).

Un saludo,
  #4 (permalink)  
Antiguo 16/08/2004, 11:59
 
Fecha de Ingreso: marzo-2004
Ubicación: San José, Costa Rica
Mensajes: 234
Antigüedad: 13 años, 8 meses
Puntos: 0
Muchas Gracias....
Vi el ejemplo de Cluster y me dí cuenta de algo de que tenía que usar el session_start() antes de poder destruir la sesion... desconocía eso...

Además gracias por el conse, siempre es bueno apegarse a las recomendaciones de los creadores....

Gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:15.