Ciao raga,

premesso che non sono un esperto sull'argomento però non capisco una cosa. Nel mio caso ho 3 pagine che vi espongo qui sotto.

Pagina di inizio index.php
Codice PHP:
<?php
session_start
();
?>

<html>
 <head><title></title></head>
 <body>

 <form method="post" action="login.php">
  
  # Ci sono solo due campi: Username & Password (e pulsante invia)

 </form>
 </body>
</html>
<?php
$_SESSION 
= array();
session_destroy();
?>
Ecco. Fin qui si inseriscono i dati e si inviano. I dati vengono passati a login.php.

Pagina login.php
Codice PHP:
<?php
session_start
();

if (isset(
$_POST['invia_dati'])) {

  if ((
$_POST['username'] == 'username_ok') && ($_POST['password'] == 'password_ok')) {

  
$_SESSION['mantenere_stato_user'] = $_POST['username']; # Metto i valori in $_SESSION
  
$_SESSION['mantenere_stato_pass'] = $_POST['password'];

  
header('Location:destinazione.php'); # ..e vengo reindirizzato alla pagina riservata
  
exit();

  } else {

     
header('Location:index.php'); # In caso di errore torna indietro..
     
exit();

  }
}

$_SESSION = array();
session_destroy();
?>
Eccoci. Fin qui invece controlliamo se i valori USERNAME e PASSWORD corrispondono ai valori presenti nell'IF di controllo. In caso positivo si salvano i valori nell'array $_SESSION e si viene reindirizzati alla pagina destinazione.php finale.

Però..c'è un però..

Espongo la pagina destinazione.php

Codice PHP:
<?php
session_start
();

if (isset(
$_SESSION['mantenere_stato_user']) && isset($_SESSION['mantenere_stato_pass'])) {

   echo 
"Benvenuto!";
   exit();

} else {

   
header('Location:index.php'); # Se le variabili di sessione non sono settate si viene reindirizzati alla pagina iniziale.
   
exit();

}

$_SESSION = array();
session_destroy();
?>
Ecco. Questa è la pagina finale. Lo script funziona ma la domanda è una sola.

Perchè se entro in pagina "destinazione.php" ed effettuo il refresh del browser, le variabili di sessione non valgono più...e quindi vengo riportato indietro??


Grazie a tutti.