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.