Foros del Web » Programando para Internet » PHP »

No caduca sesion al cerrar navegador

Estas en el tema de No caduca sesion al cerrar navegador en el foro de PHP en Foros del Web. Hola amigos, les tengo un código que no me funciona, a ver si me ayudan: Código PHP: <?php error_reporting ( E_ALL ); //forzamos al php.ini a que propague la sesion solamente por cookies. ini_set ( ...
  #1 (permalink)  
Antiguo 26/10/2008, 22:57
Avatar de Celcius  
Fecha de Ingreso: febrero-2003
Ubicación: Lima - Perú
Mensajes: 652
Antigüedad: 21 años, 2 meses
Puntos: 5
Pregunta No caduca sesion al cerrar navegador

Hola amigos, les tengo un código que no me funciona, a ver si me ayudan:

Código PHP:
<?php
error_reporting
(E_ALL);
//forzamos al php.ini a que propague la sesion solamente por cookies.
ini_set("session.use_only_cookies","1");
ini_set("session.use_trans_sid","0");

session_start();
if(!isset(
$_SESSION["usuario"]["nivel"]) || $_SESSION["usuario"]["nivel"]!=0){
    
header("location: ../ingreso.php?error=6");
    exit;
}

//asignamos una duracion de cero segundos a la cookie.
session_set_cookie_params(0"/"$HTTP_SERVER_VARS["HTTP_HOST"], 0);

//hacemos la comprobacion del tiempo de la sesion
$tiempo_actual time()-$_SESSION["registro_tiempo"];
//configuramos la comprobacion del tiempo a 1200 segundos (osea, si en veinte minutos no hay actividad, nos saca)
if($tiempo_actual>1200){
    
header("location: ../ingreso.php?error=2");
    exit;
}
//renovamos el registro del tiempo
$_SESSION["registro_tiempo"] = time();
?>
El problema está en que al cerra el navegador, la sesion sigue activa. ¿Qué estoy haciendo mal?

Saludos,
__________________
"Si tú conocieras el don de Dios, y quién es el que te dice: 'Dame de beber,' tú Le habrías pedido a El, y El te hubiera dado agua viva.
Sn. Juan 4:19
Jesus
  #2 (permalink)  
Antiguo 27/10/2008, 06:19
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: No caduca sesion al cerrar navegador

Una cosa es la session, y otra la cookie. La cookie deberia destruirse. Las session (el fichero con los datos), se destruyen periodicamente todas las caducadas. Ni siquiera con un session_destroy borras el fichero (solo los datos que contiene).

Para estar seguro que se destruyen los datos de la session, deben usar un link a un script logout que ejecute el session_destroy. Porque solo cerrando el navegador no se envia ningun mensaje al servidor y este no sabe si el visitante ha cerrado el navegador o tiene todavia la pagina abierta. Solo borra la session en este caso si supera su tiempo de expiracion.
  #3 (permalink)  
Antiguo 27/10/2008, 06:26
Avatar de Celcius  
Fecha de Ingreso: febrero-2003
Ubicación: Lima - Perú
Mensajes: 652
Antigüedad: 21 años, 2 meses
Puntos: 5
Respuesta: No caduca sesion al cerrar navegador

Y como hago eso? cómo controlo ese tiempo de expiración porque con ése código pensé que ya lo había controlado...

saludos,
__________________
"Si tú conocieras el don de Dios, y quién es el que te dice: 'Dame de beber,' tú Le habrías pedido a El, y El te hubiera dado agua viva.
Sn. Juan 4:19
Jesus
  #4 (permalink)  
Antiguo 27/10/2008, 08:44
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: No caduca sesion al cerrar navegador

Que tal Celcius, lee y analiza este link creo que te puede servir.
Diferentes formas de cerrar sesión en PHP




Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #5 (permalink)  
Antiguo 27/10/2008, 10:22
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: No caduca sesion al cerrar navegador

Si pasas el ID de Session por medio de Cookies y no URL, solo basta con cambiar esta directiva en tu php.ini:

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

Cuando el valor esta en 0, la cookie se destruye cuando cierras el navegador.

PD: No uses $HTTP_SERVER_VARS["HTTP_HOST"], usa $_SERVER['HTTP_HOST']
  #6 (permalink)  
Antiguo 28/10/2008, 18:27
Avatar de Celcius  
Fecha de Ingreso: febrero-2003
Ubicación: Lima - Perú
Mensajes: 652
Antigüedad: 21 años, 2 meses
Puntos: 5
Respuesta: No caduca sesion al cerrar navegador

Cita:
Iniciado por Ronruby Ver Mensaje
Si pasas el ID de Session por medio de Cookies y no URL, solo basta con cambiar esta directiva en tu php.ini:

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

Cuando el valor esta en 0, la cookie se destruye cuando cierras el navegador.

PD: No uses $HTTP_SERVER_VARS["HTTP_HOST"], usa $_SERVER['HTTP_HOST']
Hola gracias por sus respuestas:
Revisé la informacion del php.ini y session.cookie_lifetime está en cero y ya le cambié a $_SERVER['HTTP_HOST'], pero sigue igual, alguna otra idea?
__________________
"Si tú conocieras el don de Dios, y quién es el que te dice: 'Dame de beber,' tú Le habrías pedido a El, y El te hubiera dado agua viva.
Sn. Juan 4:19
Jesus
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 08:26.