Ciao a tutti, ho un problema con l'autenticazione via HTTP in locale: in pratica non riesco a fare il logout! Questo è il codice:
$login["user"] e $login["pass"] contengono solo l'hash md5 (criptato )
Codice PHP:
$_SESSION["login"] = (empty($_SERVER["PHP_AUTH_USER"]) || empty($_SERVER["PHP_AUTH_PW"])) ? false : true;
if($_SESSION["login"] == false || empty($_SESSION["login"]) || !$_SESSION["login"]) {
if (isset($_SERVER["PHP_AUTH_USER"]) && isset($_SERVER["PHP_AUTH_PW"]))
{
$user = md5($_SERVER["PHP_AUTH_USER"]);
$pass = md5($_SERVER["PHP_AUTH_PW"]);
if($user == $login["user"] && $pass == $login["pass"])
{
$_SESSION["login"] = true;
header("Location: index.php");
}
else
{
header("Location: index.php");
}
}
else
{
header("WWW-Authenticate: Basic realm=\"Area Riservata\"");
header("HTTP/1.0 401 Unauthorized");
}
}
Il file viene incluso, tramite questo codice nell'index.php (prima di tutto):
Codice PHP:
<? session_start(); include("altro/security.php"); ?>
Invece questo è il case "logout":
Codice PHP:
unset($_SESSION);
unset($_SERVER['PHP_AUTH_USER']);
unset($_SERVER['PHP_AUTH_PW']);
#header("Location: index.php");
In pratica voglio che mi cancelli user, pass e la sessione torni nulla, cancellata o false. Ma non funziona... dove sto sbagliando?
Io mi loggo quando vado ad index.php e quando (ipoteticamente) dovrei cliccare su Logout quest'ultimo deve resettare tutto, fare il redirect a index.php dove poi security.php controlla se le variabili sono piene... qualora fossero vuote o altro deve avviare il login. Spero di essermi spiegato!
Grazie mille!!