Buon giorno a tutti, non riesco a fare il logout di un'autenticazione richiesta tramite server.
Spiego.Il sito all'apertura richiede un'autenticazione attraverso:
Codice PHP:
$_SERVER['PHP_AUTH_USER'].
Si inseriscono User e Pass, ed il risultato si assegna ad una variabile di sessione cosi:
Codice PHP:
$_SESSION['SessUserName'] = $_SERVER['PHP_AUTH_USER'];
Dopo aver valorizzato $_SESSION['SessUserName'], utilizzo questa variabile per effettuare una serie di select per estrapolare dalle diverse tabelle alcuni valori riguardanti quello User.
Fin qui nulla di strano.Il problema sorge quando voglio effettuare un Logout.
Clicco sul pulsante logout che richiama la medesima pagina strutturata cosi:
Codice PHP:
//LogOut.php
session_unset();
session_destroy();
$_SESSION = array();
$nextpage = ($_REQUEST['nextpage'] ? $_REQUEST['nextpage'] : "index.php?p=logOut");
header("location:".$nextpage);
a sua volta richiama la pagina messaggioLogout.php in questo modo:
Codice PHP:
index.php?p=logOut
Ma purtroppo la sessione $_SESSION['SessUserName'] resta sempre attiva.
Questo perchè la stessa variabile($_SESSION['SessUserName']) è valorizzata all'apertura della pagina da $_SERVER['PHP_AUTH_USER'].
All'apertura della pagina la richiesta dell'autenticazione
Codice PHP:
if (isset($_SERVER['PHP_AUTH_USER'])) {
session_unset();
session_destroy();
$_SESSION = array();
session_start();
$_SESSION['SessUserName'] = $_SERVER['PHP_AUTH_USER'];
//serie di select utilizzando $_SESSION['SessUserName']
}
if (!isset($_SESSION['SessUserName'])) {
session_unset();
session_destroy();
$_SESSION = array();
} else {
require_once('SSI/Sessioni.ssi');
}
require_once('SSI/Sessioni.ssi');
Quindi vi chiedo gentilmente come posso eseguire un logout alla luce di quanto postato?
Grazie mille dell'aiuto :|