Foros del Web » Programando para Internet » PHP »

Expiracion de la session si no actividad

Estas en el tema de Expiracion de la session si no actividad en el foro de PHP en Foros del Web. Aupa Foreros, Me gustaria encontrar algun codigo sobre: como desconectar a un usuario despues de un momento de inactividad. Se que la variable que controla ...
  #1 (permalink)  
Antiguo 27/08/2004, 12:36
 
Fecha de Ingreso: mayo-2004
Mensajes: 70
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta Expiracion de la session si no actividad

Aupa Foreros,


Me gustaria encontrar algun codigo sobre: como desconectar a un usuario despues de un momento de inactividad. Se que la variable que controla eso es session_cache_limiter y la de session_cache_expire, pero me estoy armando un poco de lio con todo esto.

A ver si alguien me pueda dar alguna url o algo del estilo,


Os agradezco a todos vustros esfuerzos,

Un saludo,

Niko
  #2 (permalink)  
Antiguo 27/08/2004, 13:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm Justamente esas dos directivas no són las que controlan la duración de una sesión ...

Lee este mensaje:
http://www.forosdelweb.com/s/showthread.php?t=226451

Un saludo,
  #3 (permalink)  
Antiguo 27/08/2004, 13:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Por cierto .. dicha directiva (la que habla el otro mensaje: session.gc_maxlifetime) sólo hace que PHP "expire" el SID válido para ese cliente al tiempo que se indica .. pero "físicamente" no va a "desconectar" a un usuario de tu aplicación. Recuerda que PHP no se va a enterar si todavía sigue ahí tu "cliente" (usuario) hasta que este recarge su página o pida otra página de tu aplicación donde valides la existencia de esas variables de sesión.

Si requires que tu aplicación "desconecte" a tu usuario físicamente .. tendrías que recargar la página cada X tiempo para probocar una "petición" de una página al servidor y que actue tu código PHP de validación de esa sesión. Eso lo puedes hacer vía HTML o Javacript (etiquetas <META de refresh ... > o javacript)

Un saludo,
  #4 (permalink)  
Antiguo 29/08/2004, 05:05
 
Fecha de Ingreso: mayo-2004
Mensajes: 70
Antigüedad: 13 años, 7 meses
Puntos: 0
Entiendo todo lo que me dices. Pero pongo session.gc_maxlifetime = 3 y me conecto a mi aplicacion se supone que si estoy 3 segundo sin hacer nada, el SId expirara y por lo tanto si le doy a a algun submit me tendria que decir que tengo que recargar la página porque ha caducado y le tendria que dar a F5. ¿Si es eso cierto a mi no me pasa eso?



Gracias de todas maneras,

Un saludo,

Niko.
  #5 (permalink)  
Antiguo 30/08/2004, 12:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
devilnick
No es así exactamente .. tu en tu programación debes validar la existencia de tus sesiones y será esa validación la que definitivamente si la sesión expiró (el SID pasó al estado "garbage") será el que dermine si está o no en una sesión valida.

Algo tipo:

Código PHP:
<?
session_start
();
if (isset(
$_SESSION['alguna_variable_sesion'])){
die (
"Se terminó la sesión");
}
 
// resto de tu Script
Un saludo,
  #6 (permalink)  
Antiguo 30/08/2004, 13:24
 
Fecha de Ingreso: mayo-2004
Mensajes: 70
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta

no entiendo lo que me dices puesto que con este codigo siempre saldra que el die puesto que la variable de sesion exista. No habria que hacer eso con la condicion de que la variable de session ya no existese o de que estuviera caducada la session?


Un saludo,

Niko
  #7 (permalink)  
Antiguo 30/08/2004, 22:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ok, .. se me quedó por el camino la "negación" o bien usar empty() en lugar de isset():

Código PHP:
<? 
session_start
(); 
if (!isset(
$_SESSION['alguna_variable_sesion'])){ 
die (
"Se terminó la sesión"); 
}
ó

Código PHP:
<? 
session_start
(); 
if (empty(
$_SESSION['alguna_variable_sesion'])){ 
die (
"Se terminó la sesión"); 
}
Un saludo,
  #8 (permalink)  
Antiguo 31/08/2004, 10:29
 
Fecha de Ingreso: mayo-2004
Mensajes: 70
Antigüedad: 13 años, 7 meses
Puntos: 0
ok todo bien 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 12:10.