Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno HTTP autentizace - potíž s odhlášením

Chtěl bych se zeptat jak to vlastně je s HTTP autentizací.
Uvažujme následující skriptík, který obecně přiložíme do každého skriptu na začátek (ověření usera):

<?
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']) && 
$_SERVER['PHP_AUTH_USER'] == 'uzivatel' && $_SERVER['PHP_AUTH_PW'] == 'heslo') { // vse v poradku
//  echo 'Prihlaseni probehlo uspesne.';
}
else { // chyba prihlaseni
  header('HTTP/1.0 401 Unauthorized');
  header('WWW-Authenticate: Basic realm="Login"');
  echo 'Chyba prihlaseni - zadejte platne uzivatelske jmeno a heslo!';
  exit;
}
?>

Toto funguje všude zcela dobře.
Nicméně uvažujme dále, že chceme uživatele odhlásit.

To je možné v IE7 zavoláním následující fce:

document.execCommand("ClearAuthenticationCache");

(Ponechme stranou debatu o tom, že je tam "nežádoucí" závislost na JS)

No a teď k tomu na co se vlastně ptám.
V Mozilla FireFox 2.0.0.5, ani jakési novější Opeře mi nefunguje odhlášení, které by měl zajistit následující skript pro odlogování:

$_SERVER['PHP_AUTH_USER'] = null;
$_SERVER['PHP_AUTH_PW'] = null;
unset($_SERVER['PHP_AUTH_USER']);
unset($_SERVER['PHP_AUTH_PW']);
session_destroy();

Po proběhnutí následného skriptu totiž nejenže ve FireFoxu a Opeře po kliknutí na BACK je uživatel přihlášen, ale dokonce se přihlášen může pohybovat "normálně v systému". Což znamená, že uvedené prohlížeče na to totálně prdí.

Díval jsem se, jak to dělali ještě větší loseři než já, nicméně ti se omezili na konstatování: "Uzavřením Vašeho prohlížeče se odhlásíte".

Jde to v tomto duchu nějak udělat tak, abych mohl odhlásit uživatele klikem na něco ?

Předmět Autor Datum
:x:http://usenet.jyxo.cz/cz.comp.linux/0402/apache-htt p-autorizace-a-vazba-na-php.html :x: poslední
Flash_Gordon 15.03.2008 13:10
Flash_Gordon

Zpět do poradny Odpovědět na původní otázku Nahoru