Ver Mensaje Individual
  #30 (permalink)  
Antiguo 07/06/2006, 17:32
okram
Invitado
 
Mensajes: n/a
Puntos:
Como siempre Cluster apareciendo donde mas se le necesita con una gran-brillante idea...

seik!, tal y como te mencionó, debes usar $_SESSION para manejar sesiones...

Los javascript que se postearon fueron para cerrar una sesion en tiempo real, por asi decirlo, al redireccionar el navegador a una pagina PHP que eliminara los datos de la sesion...

Pero como bien lo dices Cluster, existe siempre (aunque parece extraño en estos tiempos) la posibilidad de que el js este deshabilitado....

Cita:
Iniciado por Cluster
El tratamiento que se le suele dar a "expirar" una sesión -indivitual- (sí, .. individual por qué PHP gestiona las sesiones y su tiempo de expiración en forma global para toda sesión creada en el servidor* es el de ir actualizando el tiempo que el "cliente"** pide una página de tu sitio y contrastar ese tiempo almacenado en algún medio: BBDD o similar que sea "de acceso común" no una variable de sesión por supuesto ya que pertenece -sólo- al cliente que lo crea ... con un tiempo que uno determine como "inactividad del usuario" .. es decir .. el tiempo que nosotros consideremos que si no ha "pedido" alguna página del sitio: por recargar la página, hacer click en un link, enviar un formulario .. etc se le considerará como que ya no está en el sistema expirando su sesión y/o denegando el acceso a tal proceso.
No entendi bien, sobretodo la parte en negrita

Se me ocurrio una idea basado en los comentarios de Cluster... pero yo si usaria sesiones para almacenar los tiempos ... checalo, ya que a mi me parece que si funciona, pero tal vez tenga errores...

seik!, tenemos una variable DE SESION llamada ultima_actividad ($_SESSION['ultima_actividad']) que nos guardara el tiempo en el que se realizo el ultimo acceso a cada pagina... Con esta variable, a mi parecer, podemos hallar una diferencia entre ese tiempo y el tiempo del siguiente acceso, para que asi, si excede algun dewterminado tiempo de inactividad, la sesion termine... algo asi:

esto al inicio de cada pagina php
Código PHP:
//session_start();
if(isset($_SESSION['ultima_actividad'])) {
$tiempo_inact_permitido 600// Tiempo de inactividad maximo en segundos
$diferencia time() - $_SESSION['ultima_actividad'];
if(
$diferencia $tiempo_inact_permitido) {
// CERRAMOS LA SESION
session_destroy();
echo 
'Se termino tu tiempo';
exit;
}
}
// ACTUALIZAMOS EL TIEMPO (O LO CREAMOS SI ES EL PRIMER ACCESO)
$_SESSION['ultima_actividad'] = time();

// CONTENIDO DE LA PAGINA 
Asi, si el tiempo que paso desde el ultimo acceso a una pagina es mayor al tiempo permitido, al entrar a una nueva pagina se cerrara la sesion

Me parece que asi debe funcionar... pero yo guardo todos los tiempos en sesiones... hay algo mal?

Salu2