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.
}
- 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>
- 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";
}
}
?>
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