Foros del Web » Programando para Internet » PHP »

Problema con caducidad de sesion.-

Estas en el tema de Problema con caducidad de sesion.- en el foro de PHP en Foros del Web. Buenas, ando probando este tema de las sesiones en PHP y me quede en un punto. Hasta ahora logré crearlas y que su fin se ...
  #1 (permalink)  
Antiguo 23/12/2010, 13:22
 
Fecha de Ingreso: agosto-2010
Mensajes: 100
Antigüedad: 14 años, 2 meses
Puntos: 2
Problema con caducidad de sesion.-

Buenas, ando probando este tema de las sesiones en PHP y me quede en un punto.
Hasta ahora logré crearlas y que su fin se concrete (evitar el acceso a secciones restringidas sin previa identificación). El tema es que se me ocurrió armar al script para que expire la sesión pasados 5 minutos de inactividad. Y realmente no lo estoy pudiendo conseguir.
A continuación dejo los códigos explicando qué quise hacer.

- check.php:

Código PHP:
<?php
session_start
();
/* conexiona a la bd  blablablabla*/

if (mysql_num_rows($resultado) <> 1){
    echo 
"Usuario o contraseña no válidos:<br>Solicitud rechazada!.<br>";
}else{
  
$_SESSION["auth"] = "true"// usuario autorizado.
  
$_SESSION["lastAcces"] = date(); // timestamp del ultimo movimiento del usuario.
  
header ("Location: http://localhost/laucha/login/auth/private.php"); // redirecciono a la seccion privada.
}
Hasta acá anda todo bien. Luego, la sección restringida y nada raro nuevamente:

- private.php:

Código PHP:
<?php
session_start
();
if (
$_SESSION["auth"] <> "true"){
  echo 
"Estas intentando entrar a un sitio restringido !.<br>";
}else{
echo 
"Bienvenido.<br>";
}
?>
<a href="otra.php" target="_blank" name="ejemplo">otra pagina</a><br>
<a href="quit.php" target="_blank" name="ejemplo">quit!</a><br>
Ahora si. Es acá cuando dejo pasar unos minutos (más de 5, porque es el tiempo máximo de inactividad permitida que quiero) e intento acceder a el enlace de "otra pagina".

- otra.php
Código PHP:
<?php
session_start
();
if (
$_SESSION["auth"] <> "true"){
  echo 
"Estas intentando entrar a un sitio restringido!.<br>";
}else{
  
$time2kill 300// 300 segundos = 5 minutos.
  
$lastAcces $_SESSION["lastAcces"];
  
$now date(); // timestamp actual.
  
$elapsed = ($now $lastAcces); // transcurrido desde el ultimo movimiento.
  
if ($elapsed >= $time2kill) {
      
session_unset();
      
session_destroy();
      
header("Location: notime.php");
  }else{
      
$_SESSION["lastAcces"] = $now;
      echo 
"esta es otra pagina";
  }
}
?>
El problema es que me deja entrar al sitio y visualiza el contenido, cuando por la resta entre $now - $lastAcces me debería dar un número mayor a 300 (digo, si espere 5 minutos o más).
No se si estare aplicando bien la idea en el código o si hay algún error en los else...estoy desde las 9 de la mañana y no lo puedo sacar .
Agradecería cualquier ayudilla.
Saludos
  #2 (permalink)  
Antiguo 23/12/2010, 13:26
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 11 meses
Puntos: 13
Respuesta: Problema con caducidad de sesion.-

en vez de date usa time y nos cuentas

Etiquetas: caducidad
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 09:58.