Tengo esto en todas las páginas:
Cita: session_start();
include "logeado.php";
En logeado.php
Código PHP:
<?php
session_start();
if (($_SESSION['usuario'] == '') || ($_SESSION['password'] == '') || ($_SESSION['nombre'] == '')) {
include("index.php");
exit;
}
else {
//Calculamos el tiempo transcurrido
$fechaGuardada = $_SESSION["ultimoAcceso"];
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));
//comparamos el tiempo transcurrido
if($tiempo_transcurrido >= 600) { //si pasaron 10 minutos o más
$link = mysql_connect("localhost", "root", "root");
mysql_select_db("estadisticas_web", $link);
mysql_query("UPDATE administrador SET estado='no_autenticado' where (nombre_usuario='".$_SESSION['usuario']."' and contraseña='".$_SESSION['password']."')", $link);
session_unset();
session_destroy(); // destruyo la sesión
header("Location: index.php"); //envío al usuario a la pag. de autenticación
}else { //sino, actualizo la fecha de la sesión
$_SESSION["ultimoAcceso"] = $ahora;
}
}
?>
En todas las páginas me mantiene bien las sesiones, pero en esta concreta (que es igual que el resto), me entra por la 1º rama del if, ya que la variable $_SESSION['nombre'] me aparece vacía SOLO si actualizo con F5 o intento navegar de ahí a cualquier otra pagina.