Sesiones

alexa
30 de Junio del 2005
Hola:
Tengo una pregunta y era a ver si me podian ayudar:

Necesito que cuando un usuario permanezca inactivo por un tiempo determinado, la sesion sea borrada, es decir, el usuario no pueda volver acceder a su informacion al menos que se logee nuevamente, esto se debe a que el sitio web debe ofrecer servicios de seguridad y este es uno de los requisitos que me exigen.

Por lo que quisiera saber si existe algun modo de verificar el tiempo que ha permanecido inactivo el usuario para borrar las variables de sesion...... o si existe alguna otra forma de hacerlo.

Agradeceria si me pudiesen guiar...


Cristian
30 de Junio del 2005
Prueba con algo como esto:

------------------------------------------
$max = 30; // minutos de inactividad permitidos

if (!isset($_SESSION['inactividad_usuario'])) {
$_SESSION['inactividad_usuario'] = $time();
}

else {
$tiempo_session = $time() - $_SESSION['inactividad_usuario'];
$minutos_session = number_format(($tiempo_session/60),1,'.','');

if (($tiempo_session) >= ($max * 60)) {

// aquí eliminas la sesión e indicas al usuario que excedió el tiempo max. Ej.:

unset($_SESSION);


die("Ud. registra $minutos_session minutos de inactividad........etc");

}

else {$_SESSION['inactividad_usuario'] = $time();}
}
------------------------------------------

Tendrías que incluirlo en cada archivo del área logueada o en include global.

Suerte.

Cristian

geobasis
30 de Junio del 2005
Algo mas facil utiliza session.isNew() para saber que esta ingresando luego de haber excedido el tiempo de inactivad y mostrarle el mensaje, para configurar el tiempo de inactivad colo en el archivo web.xml
<session-config>
<session-timeout>minutos</session-timeout>
</session-config>
en minutos colocas el tiempo en minutos de inactivada que quieres la sesion del usuario, luego de este tiempo el Web Server la elimina automaticamente junto con todos los objetos asociados a la misma.

geobasis
30 de Junio del 2005
Perdon la solucion anterior es para jsp, aca en php el tiempo de sesion lo configuras en el php.ini y puedes utilizar
if(session.isRegistered("NombreVariabledeSesion") y si esto es falso significa que no esta ingresando por donde debe o que la session ha terminado, creo que tambien existe session.isNew() y trabaja igual como la solucion anterior para jsp