Foros del Web » Programando para Internet » PHP »

Caducidad de la session???

Estas en el tema de Caducidad de la session??? en el foro de PHP en Foros del Web. Hola a todos mi problema es: en cuando van mas de 40 minutos que solo se este digitando y sin que se hagan peticiones al ...
  #1 (permalink)  
Antiguo 15/08/2006, 10:25
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 18 años, 9 meses
Puntos: 2
Caducidad de la session???

Hola a todos

mi problema es:
en cuando van mas de 40 minutos que solo se este digitando y sin que se hagan peticiones al servidor (tales como click en un boton, link ...) los datos de la session se borran.

PD: lo per es q se demoran hasta mas de 3 horas para llenar un formulario.

he mirado la configuracion del php.ini en el servidor (linux por cierto)
y hallo lo siguente:


Código PHP:
session.cache_expire 180 
// q me indica q mi sesion dura 180 minutos (unas 3 horas) pero 
// solo me duca al rededor de 15 minutos

session.gc_maxlifetime 1440
//q me indica en 1440 segundos (unos 24 nimutos) mis datos de cache
//serán borrados por el garbag colector process 
//dudo q sea esto ya q son solo 24 minutos y mi session me ha durado 
//mas de eso. Ademan no creo q sea por esoya q cache_limiter es nocahe

session.cache_limiter nocache

session
.gc_probability 1
session
.gc_divisor     100
//q me indican q la probalilidad de q el Garbage Colector process inicie 
//en cada peticion al servidor en este caso 1% 
Si alguien me puede dar una explicadita de q estoy haciendo mal o mal interpretando o lo q es mejor tips para corregirlo les agradesco de antemano

Saludos :D
  #2 (permalink)  
Antiguo 15/08/2006, 10:30
Avatar de DarkXNightmare  
Fecha de Ingreso: agosto-2005
Ubicación: Somewhere Over The Rainbo
Mensajes: 181
Antigüedad: 18 años, 7 meses
Puntos: 0
http://www.php.net/manual/es/functio...che-expire.php
http://www.php.net/manual/en/functio...che-expire.php

Intenta ver esa información y utiliza un Script de esos para difinir el cache_limit manualmente!

Atte... DarkXNightmare ;D.
__________________
Cambiando mi Web... sean pacientes :P
  #3 (permalink)  
Antiguo 15/08/2006, 10:34
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años
Puntos: 33
Busqueda

No me queda del todo claro tu problema
¿Quieres que las sessions duren 40 mins o que no duren dicho tiempo?


Saludillos.
  #4 (permalink)  
Antiguo 15/08/2006, 11:12
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 18 años, 9 meses
Puntos: 2
gracias DarkXNightmare

pero esas funcion ya la he usado y me retorna 180 minutos lo q es 3 horas y esta por defecto en el php.ini pero he notado q se vencie a los 40 o 45 minutos la sesion

no se si sea por el garbae colector process de linux por q en xp me funciona y no se me vence la session ya q hasta donde se XP no tiene Garbage Colector Process (si alguien sabe q xp tien un grabage colector process tomare la correcion encantado )

ya no se q hacer


mauled
mira, lo q me sucede es q tengo un formulario q diligencia en promedio 3 horas ya q es 1 o 2 campos de texto donde solo digitan y digitan ¬¬, pero al mometo de grabar los datos de la session ya se han perdido (segun parce por q ha expirado la session o por el garbage colector), eslo q sucede aqui en el foro si tu te logueas y contestas un post en el cual escreibes 3 renglones vas a almorzar y te tomas un cafe y luego escribes 1 renglon mas y lo envias te debes loguear de nuevo, justo eso es lo q deseo evitar.

no se si me explique bien suelo tener dificultades para plasmar estas cosas
  #5 (permalink)  
Antiguo 15/08/2006, 11:18
Avatar de DarkXNightmare  
Fecha de Ingreso: agosto-2005
Ubicación: Somewhere Over The Rainbo
Mensajes: 181
Antigüedad: 18 años, 7 meses
Puntos: 0
Intenta cambiar manualmente la caducidad de la sessión y dale el doble de tiempo!
session_cache_expire(360) y vuelve a intentar!
Tambien intenta con ini_set("session.cache_expire", 360);
De esa manera, corregiras el PHP directamente desde el Script.

Atte... DarkXNightmare ;D.
__________________
Cambiando mi Web... sean pacientes :P
  #6 (permalink)  
Antiguo 15/08/2006, 11:23
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 18 años, 9 meses
Puntos: 2
gracias voy a interntarlo lasitma q cada prueba me demore mas de 3 hora T-T
y gracias por recordarme de ini_set no me acordaba existia aunq no sabia para q era jejeje


Saludos :D
  #7 (permalink)  
Antiguo 15/08/2006, 14:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Cita:
Iniciado por DarkXNightmare Ver Mensaje
Intenta cambiar manualmente la caducidad de la sessión y dale el doble de tiempo!
session_cache_expire(360) y vuelve a intentar!
Tambien intenta con ini_set("session.cache_expire", 360);
De esa manera, corregiras el PHP directamente desde el Script.

Atte... DarkXNightmare ;D.
No tiene nada que ver el "caché expire" con la duración de una sesión. También hay que tener encuenta como se propaga el SID.

En este mensaje se hicieron los comentarios respectivos:
http://www.forosdelweb.com/f18/configuracion-php-ini-sesiones-415276/

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 15/08/2006, 17:37
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 18 años, 9 meses
Puntos: 2
Hola Cluster

entre tanto mirar y buscar me encontre con esto

tengo en mi php.ini
session.gc_maxlifetime = 1440 // igual a 24 minutos


ini_set("session.gc_maxlifetime", 18000);
si pongo esta instrucción antes de la creacion de mi session
se supone q sera de 5 horas, pero, como por variar nada,
ahora bien he descubiento q debo ponerlo en el inicio de mi script y en esas ando

ya les contare si me funcionará asi

agradesco su ayuda brindada pero no creo q se pueda cerrar este capitulo aun T-T


y si sirve de algo pongo mi codigo de certificacion =P

Código PHP:

ini_set
("session.gc_maxlifetime"18000);
    
    
session_start();
    
    include(
"lib/conexion.inc.php");
    
    
$orden "SELECT * FROM usuarios WHERE usuario='".$login."' AND clave='".$password."'"
    
$result mysql_query($orden) or die ("Error al consultar los usuarios. (1) ".mysql_error()); 
    
$fila mysql_fetch_array($result);
    if(
mysql_num_rows($result) > 0) {
        
        
$CPGA_servicios[login] = $login;
        
        
$orden "SELECT * FROM cer_perfil_servicio PS, cer_servicio S ".
                         
"WHERE PS.id_servicio=S.id_servicio AND PS.id_perfil='".$fila[id_perfil]."'"
        
$result mysql_query($orden) or die ("Error al consultar los servicio del usuario. (1) ".mysql_error()); 
        while(
$fila mysql_fetch_array($result)) {
            
$CPGA_servicios[$fila[SER_servicio]] =  true;
        }


}
    else {
        echo 
            
"<script language='JavaScript'>".
            
"alert('El usuario no existe en la base de datos.');".
            
"history.back();".
            
"</script>";
        die();
    }
    
    
header("Location: pagina_principal.php"); 
a ver si les gusta ^^
acepto sugerencias

me parece q esta wapo por ser 100% mio jaja (na sin ser engreido :D:D:D:D)
  #9 (permalink)  
Antiguo 15/08/2006, 18:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Si leistes bien el mensaje que dejè el link veras que se menciona algo sobre la propagaciòn del SID .. (no sé si tu conces dicho término).

Bien .. (como en el otro mensaje que dejé el link) .. tu en tu caso "asumes" que propagas el SID en cookies (de hecho si te funciona: así es ..)

Por ende .. no sólo involucra el tiempo de vida de la sesiòn en sí:
session.gc_maxlifetime

Sino tambièn el del tiempo de vida de la cookie que PHP crea para propagar el SID:
session.cookie_lifetime

Leistes el otro mensaje? (es qué he dicho lo mismo!). De hecho ahì tienes un usuario que siguió los consejos sugeridos y llegó al fin propuesto: controlar la vida de la sesión.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 16/08/2006, 16:41
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 18 años, 9 meses
Puntos: 2
muchas gracias cluster

Disculpa es q andaba agobiado (aunq soy algo distraido tambien)

ini_set("session.cookie_lifetime", 10800);
ini_set("session.gc_maxlifetime", 10800);

intente con esto en la creacion de mi session y por lo menos ya lo probe con 56 minuto y me funcionó a ver luego haré mas pruebas gracias por la ayuda de todos

Saludos :D
  #11 (permalink)  
Antiguo 25/08/2006, 13:37
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
Una pregunta... Estas dos lineas


ini_set("session.cookie_lifetime", 10800);
ini_set("session.gc_maxlifetime", 10800);

¿Las he de colocar en cada uno de mis scripts o solo en el script en el que se crea la sessión de usuario (mi login.php)?

Cabe mencionar, que en todas las páginas uso session_start();

Gracias :)
  #12 (permalink)  
Antiguo 25/08/2006, 13:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Cita:
Iniciado por Computer XTress Ver Mensaje
Una pregunta... Estas dos lineas


ini_set("session.cookie_lifetime", 10800);
ini_set("session.gc_maxlifetime", 10800);

¿Las he de colocar en cada uno de mis scripts o solo en el script en el que se crea la sessión de usuario (mi login.php)?

Cabe mencionar, que en todas las páginas uso session_start();

Gracias :)
En todos los scripts que usen session_Start() y antes de esa llamada a esa función.

Otras opciones es que uses un .htaccess con php_flag o php_value para no tener que andar modificando todos tus scripts o añadiendo esa configuración .. (otros servicios de hosting usan php.ini personales para sus usuarios .. )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 27/08/2006, 19:06
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
Muchas gracias CLUSTER.

Lo voy a hacer directamente desde el .htaccess sino me voy a volver loco :P

Un saludo!
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 19:42.