Foros del Web » Programando para Internet » PHP »

tiempo de expiracion de una sesion

Estas en el tema de tiempo de expiracion de una sesion en el foro de PHP en Foros del Web. Hola : Me encuentro desarrollando una aplicacion web para un colegio con php y mysql que se aloja en un servidor comercial ... el problema ...
  #1 (permalink)  
Antiguo 25/08/2004, 07:40
 
Fecha de Ingreso: mayo-2004
Mensajes: 57
Antigüedad: 20 años, 5 meses
Puntos: 0
tiempo de expiracion de una sesion

Hola :
Me encuentro desarrollando una aplicacion web para un colegio con php y mysql que se aloja en un servidor comercial ... el problema es que la evaluacion de un boletin por parte de un docente requiere de un tiempo cercano a los 35 minutos y por ende cuando termina de colocar las notas y
presiona el boton evaluar para registrar los datos en la base de datos, la sesion se pierde y la evaluacion no queda registrada.

Yo asocio este problema con el session.gc_maxlifetime del php.ini y quisiera saber como puedo hacer para modificar esta variable desde mis scripts php ya que no tengo acceso al servidor. Si este no es el problema les agradezco me digan cual puede ser. Gracias..
  #2 (permalink)  
Antiguo 25/08/2004, 07:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Puedes usar la función:

ini_set() para cambiar en tiempo de ejecución un valor de configuración (php.ini) de PHP. Eso sí, no se puede hacer con toda directiva ..pero la que mencionas si se puede. Sería algo tipo:

ini_set("session.gc_maxlifetime","segundos que necesites");

Todo esto antes de tus session_start()

más info:
http://www.php.net/session
http://www.php.net/ini_set

Un saludo,
  #3 (permalink)  
Antiguo 25/08/2004, 08:59
 
Fecha de Ingreso: mayo-2004
Mensajes: 57
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola:
De antemano gracias por tu ayuda... quisiera saber si este tiempo de expiracion son los segundos que se contabilizan tras no tener ningun tipo de interacion con el sistema, por ejemplo el usuario se va y deja la sesion abierta o si el tiempo se contabiliza cuando no realizo ninguna solicitud al servidor, por ejemplo el usuario tiene un formulario con muchos radiobutton y se mantiene clickeando varios de ellos y escribiendo texto en las cajas de texto, PERO no realiza ninguna solicitud al servidor.
  #4 (permalink)  
Antiguo 25/08/2004, 09:13
 
Fecha de Ingreso: mayo-2004
Mensajes: 57
Antigüedad: 20 años, 5 meses
Puntos: 0
hola:
sigo con el problema... Realicé una prueba dejando un script del sitio abierto por un tiempo de 26 minutos y sin tener ningun tipo de interaccion con este. Me sorprendio mucho que despues de ese tiempo presione un boton para realizar una accion y la sesion no se habia perdido... estoy algo confundido con esto, supuestamente el session.gc_maxlifetime controla el tiempo de expiracion de la sesion y este se encuentra en 1440 es decir 24 minutos. Entonces porque no se perdio la sesion?? que puede estar pasando??.
Les agradezco mucho cualquier ayuda que me puedan brindar.
  #5 (permalink)  
Antiguo 25/08/2004, 11:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En teoría es el tiempo que no hace ninguna petición al servidor .. se reinicia en cada petición al servidor siempre y cuando la sesión sea válida (no ha expirado y pasado al estado "garbage": listo para ser borrada físicamente del servidor (el archivo) pero el SID (ID sesión) ya no es válido).

-------

Ajusta menos tiempo de expiración y observa que sucede .. no tengo explicación lógica para tal hecho. Debería funcionar como así describe PHP.net que hace dicha función.

Un saludo,
  #6 (permalink)  
Antiguo 25/08/2004, 13:30
 
Fecha de Ingreso: mayo-2004
Mensajes: 57
Antigüedad: 20 años, 5 meses
Puntos: 0
Haber, me asalta otra duda: para cambiar el tiempo de expiracion de la sesion a traves de la directiva ini_set(), debo colocar ini_set("session.gc_maxlifetime ","tiempo que yo quiera") en todas las paginas del sitio? si no la coloco en alguna no tendra efecto el cambio?

gracias por la ayuda, un saludo
  #7 (permalink)  
Antiguo 26/08/2004, 06:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Si, debes usarlos en todos los scripts PHP que usen sesiones. O bien usar un .htacces para configurarlo y forzar dicha configuración que afecte a todo script de tu sito (del directorio que esté ese .htacces y ramas inferiores)

Un saludo,
  #8 (permalink)  
Antiguo 27/08/2004, 11:05
 
Fecha de Ingreso: mayo-2004
Mensajes: 57
Antigüedad: 20 años, 5 meses
Puntos: 0
Un saludo y gracias por la ayuda:
me podrias colaborar con en ejemplo sencillo de como crear este archivo y en donde ubicarlo?
  #9 (permalink)  
Antiguo 27/08/2004, 11:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En principo el archivo .htaccess debe contener:

php_value session.gc_maxlifetime segundos

Lo puedes colocar en el raiz de tu sito ("DocumentRoot").

No sé que sistema operativo usas ni si usas Apache como servidor HTTP (por qué ese .htacces es de Apache .. ). Eso va a influir directamente en que te funcione o no el própio ".htacces" .. Consultalo en el foro de "Servidores web"

Un saludo,
  #10 (permalink)  
Antiguo 20/09/2004, 12:09
 
Fecha de Ingreso: mayo-2004
Mensajes: 57
Antigüedad: 20 años, 5 meses
Puntos: 0
sigue el problema con el tiempo de expiracion de la sesion

Hola cluster un saludo muy cordial:
El servidor con con el que estoy trabajando en mi aplicacion es Apache, ahora creé el archivo .htaccess de la siguiente forma:

<IfModule mod_php4.c>
php_value session.gc_maxlifetime 60
</IfModule>

coloqué 60 segundos para probar, pero al pasar los 60 segundos la sesion no expiró.

Necesito urgentemente cambiar este a 7200 segundos para que la aplicacion me funcione correctamente...

Que me sugieres... Gracias
  #11 (permalink)  
Antiguo 21/02/2008, 08:45
 
Fecha de Ingreso: enero-2008
Mensajes: 16
Antigüedad: 16 años, 10 meses
Puntos: 2
Re: tiempo de expiracion de una sesion

Yo tambien quiero saber por que la sesion no expira por ejemplo en 60 segundos ¿?¿?¿?¿?¿?¿? alguien sabe?????
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




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