Independientemente de lo apuntado por
Cluster, tal vez un vistazo a este fragmento te pueda dar una idea de por dónde va la cosa.
Un saludo.
Código PHP:
$self = $_SERVER["PHP_SELF"];
$do_time_out = true; // limitado?
$session_time = 30; // en minutos
$time = "";
$time_out = false;
if( $do_time_out == true ) {
$real_session_time = $session_time * 6000;
$now = explode( " ", microtime() );
$time = $now[1].substr( $now[0], 2, 2 );
settype( $time, "double" );
if( isset( $_SESSION["login_at"] ) ) {
if( $_SESSION["login_at"] < ( $time - $real_session_time ) ) {
$message = "se acabó";
$time_out = true;
}
}
}
if( $time_out == true ) {
session_unset();
echo '<meta http-equiv="refresh" content="0;URL=',$self,'?message=',$message,'">';
exit;
}