Foros del Web » Programando para Internet » PHP »

SESSIONES que caducan antes de tiempo.

Estas en el tema de SESSIONES que caducan antes de tiempo. en el foro de PHP en Foros del Web. Hola expertos, en primer lugar muchas gracias por leer mi post , tengo un problema con mis sessiones, y en segundo lugar no me enrollo, ...
  #1 (permalink)  
Antiguo 03/09/2008, 03:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta SESSIONES que caducan antes de tiempo.

Hola expertos, en primer lugar muchas gracias por leer mi post , tengo un problema con mis sessiones, y en segundo lugar no me enrollo, al grano:

Mi configuración php.ini:

Código:
[Session]
session.auto_start = 0
session.name = PHPSESSID
session.save_handler = files
session.save_path = "X:/APPSERV/PHP5/SESSIONS"
session.use_cookies = 1
session.use_only_cookies = 1
session.cookie_secure =
session.cookie_lifetime = 3600
session.cookie_path = /
session.cookie_domain = 
session.cookie_httponly = 
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor     = 100
session.gc_maxlifetime = 3600
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
;session.entropy_length = 16
;session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 60
session.use_trans_sid = 0
session.hash_function = 1
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,form=,fieldset="
Un fragmento de código de todas y cada una de las páginas:

Código PHP:
<?php
session_start
();
if (!
$_SESSION["nombre_usuario"]) {
    
$_SESSION["referer"] = $PHP_SELF;
    
header("Location: index.php");
    exit();
}
// Código visible cuando el usuario se ha loggeado...
?>
Un pequeño Script JavaScript simplemente a modo informativo al navegante:

Código:
var TimeOut=3600;
function CountDown() {
	if (TimeOut > 0) {
		top.document.title = 'Título de mi página (' + TimeOut + ')';
		TimeOut--;
	}
	else { top.document.title = 'Título de mi página (Desconectado)'; }
	setTimeout("CountDown()", 1000);
}
CountDown();
El problema:

Supuesta mente las sessiones están programadas para que duren 3600 segundos / 1 hora ¿no?, pues le pide al usuario que pase por index.php aleatoria mente cuando el título no llega ni siquiera a mostrar (3200), lo hace aleatoria mente, lo cual me hace pensar que gc_probability y gc_divisor puedan estar afectando esto, pero lo he tenido puesto 1 mes (2592000 segundos) tanto en cookie_lifetimo y gc_maxlifetime y aun así sigue pasando esta movida.

Solamente existe una página donde se destruye la sessión (logout.php) al igual que solo existe una página donde se crea $_SESSION["nombre_usuario"] (login.php), no lo hace siempre con la misma página por lo que todas las páginas están bien programadas (o al menos son todas iguales), todas tienen las primeras líneas que mostré antes, el error me tiene desconcertado por que obliga a los usuarios a reloggear cuando apenas llevan unos 10 minutos dentro, a mi incluso también me lo hace mientras programo y pruebo y ya sabéis lo que se tarda en debuggar que estas dando actualizar cada 10 o 30 segundos... (aunque yo uso un meta refresh pero bueno).

Pase por php.net, me he leído mas de 20 post / tutoriales / documentación online acerca de sesiones y creerme que no sé todavía que es lo que ocurre, por que si pensásemos que es la máquina donde pruebo el código podría ser... pero ¡no! en el servidor también me lo hace y está exactamente igual los dos php.ini, mismas rutas y mismas versiones, no lo entiendo...

¿Alguna idea amigos?
  #2 (permalink)  
Antiguo 03/09/2008, 08:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: SESSIONES que caducan antes de tiempo.

Recuerda que session.cookie_lifetime especifica el tiempo de vida de la cookie que mantiene la sesion, si esta es borrada antes se pierde la sesion, por lo que tu me dices es probable que tengas algún software adicional (como un firewall o antivirus) que este borrando la cookie antes de tiempo, revisa esto primero, ya que en un ambiente ideal la sesion no se pierde si no se borra la cookie.

Saludos.
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 22:21.