Foros del Web » Programando para Internet » PHP »

detectar sesion inactiva en php

Estas en el tema de detectar sesion inactiva en php en el foro de PHP en Foros del Web. Hola alguien sabe como detectar una sesion inactiva en php. tengo un sistema de login de usuarios y utilizo una aplicación para ver quienes estan ...
  #1 (permalink)  
Antiguo 19/08/2003, 15:06
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta detectar sesion inactiva en php

Hola alguien sabe como detectar una sesion inactiva en php.


tengo un sistema de login de usuarios y utilizo una aplicación para ver quienes estan activos en el sistema, pero algunos usuarios no cierran la sesión, en cambio cierran la ventana y pues queda con valor true la sesión en la base de datos.

aclaro que para hacer esto de usuarios activos cada vez que alguien se loguea en el sistema actualizo el campo activo = 1 y cuando cierran la sesion lo actualizo a activo = 0.

--

tambien he probado con esto en el encabezado.inc que lo tengo como un include


<script language="JavaScript">

function amplia(){
resizeTo(screen.width, screen.height)
moveTo(0, 0);
}

function popUp(url, nombre, ancho, alto) {
hor = (screen.width - ancho)/2;
vert = (screen.height - alto)/2;
propiedades = eval("'toolbar=no, location=no, directories=no, status=no, menubar=no, resizable=no, scrollbars=no, width=" + ancho + ", height=" + alto + ", left=" + hor + ", top=" + vert + "'");
miPopUp = window.open(url, nombre, propiedades);
}
</script>
<title>Sistema de Información Andinistas</title>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onUnload="popUp('exit.php?userid=<?=$codigo?>', 'popup', 300, 200)">


pero al parecer onUnload no funciona bien, porque cada vez que actualizo alguna pagina del sistema o entro a otra seccion me sale el popup exit.php.


bueno, si pueden aconsejarme....


Gracias



Última edición por andinistas; 19/08/2003 a las 15:09
  #2 (permalink)  
Antiguo 19/08/2003, 20:41
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
tu session tiene tiempo de caducidad..... osea es una bomba de relojeria...., puedes hacer como con las cookies... le metes un timeout y ella sola se borra del servidor...

aver, voy a buscarte algo para que lo veas...
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 19/08/2003, 20:51
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
mira este ejemplo

Código PHP:
session_start();
$session_timeout 10// number of seconds till timeout

if (isset($_SESSION['last_access']) && $_SESSION['last_access'] < (time() - $session_timeout)) {
    
session_destroy();
} else {
    
$_SESSION['last_access'] = fileatime('/path/to/sessions/sess_' session_id());

http://es2.php.net/manual/es/ref.session.php

la session caduca a los 10 segundos, ahora ya es cosa tuya como lo hagas y lo modifiques..., puedes hacer que caduque a la hora del usuario marchar... o algo asi...


Código PHP:
define(EXPIREINSECONDS15 60);  // 15 minutes

if (isset($_SESSION['timestamp']) && (date('U') - $_SESSION['timestamp']) > EXPIREINSECONDS)
  
session_destroy();
else
  
$_SESSION['timestamp'] = date('U'); 
·········································
Código PHP:
$session_expire 86400;
$cookie_expire time()+$session_expire;

ini_set("session.cookie_lifetime",$session_expire);

session_start();

setcookie("cookie""content"$cookie_expire"/"); 
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 19/08/2003 a las 20:53
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 09:49.