Ho il seguente script inserito in ogni pagina, per verificare se è stata fatta l'autentificazione:

Codice PHP:
if(empty($_SESSION['username']) && $_REQUEST['act'] != 'login' && $_REQUEST['act'] != 'login2') {

    
// Effettuo il redirect alla pagina di login
    
echo "
    <script>
        window.location = \"index.php?act=login\"
    </script>"
;
  } 
ho dovuto impostare che deve effettuare il redirect se:
1) non è settata la variabile di sessione "username"
2) se non ci troviamo ne nella pagina login ne nella pagina di login2 (login2 è l'elaborazione per l'autentificazione)

Per il fatto che l'autentificazione del sito deve avvenire in ogni pagina e dunque questo codice è inserito nella index dalla quale vengono richiamate tutte le pagine.

Ora io vorrei fare in modo che dopo un tot di tempo bisogna rieffettuare il login
Quando si effettua il login viene aggiornata una cella nel db con l'ora attuale (utilizzo NOW()) chiamata "tempo". Io ora volevo inserire il codice di verifica nella funzione sopra.

Ho scritto queste 2 righe x verificare se è terminata la sessione di tempo
Codice PHP:
time() - strtotime($_REQUEST['tempo'])) >= 3600 // 3600 = 60*60 (secondi*minuti) 
Dove e come dovrei inserirle nel codice x evitare il ciclo perpetuo del redirect?

xke io ho provato impostando un elseif (empty($_SESSION['tempo']) e al suo interno dopo la verifica un redirect all'act=logout.. solo che continua a rielaborare il ciclo


Vi posto anche il codice per il login e del logout
Login:
Codice PHP:
// Dopo aver verificato se l'utente e la pass sono correnti
$stato_on "UPDATE user SET stato = '1', tempo = NOW() WHERE id = '$row[id]'"// row si riferisce all'id dell'utente che ha effettuato il login
$result_on mysql_query($stato_on) or die(mysql_error());

// Eseguo la query per iserire l'ora nella variabile di sessione
$tempo "SELECT tempo FROM user WHERE id = '$row[id]'";
$result_tempo mysql_query($tempo) or die(mysql_error());
$row_tempo mysql_fetch_array($result_tempo);


//metto l'username nella variabile di sessione "username"
session_register("username");
session_register("permessi");
session_register("tempo");
$_SESSION['username'] = $row['nick'];
$_SESSION['permessi'] = $row['permessi'];
$_SESSION['tempo'] = $row_tempo['tempo']; 
questo è il logout
Codice PHP:
// Modifico il campo "stato" nel db per far figurare l'utente offline
$stato_off "UPDATE user SET stato = '0' WHERE nick = '$_SESSION[username]'";
echo 
$stato_off;
$result_off mysql_query($stato_off) or die(mysql_error());

// Distruggo le sessioni per fare il logout
session_destroy();
session_unregister("username");
session_unregister("permessi");
session_unregister("tempo");


echo 
"Logout effettuato";
echo 
"<script>
            window.location = \"index.php\"
      </script>"