HTTP

Měl bych dotaz. Moc se v tom nevyznám, tak mě omluvte.
Mám na svých stránkách HTTP autorizaci. Chtěl bych tam mít i možnost se odlogovat, jelikož jinak si prohlížeče vyprazdňují autentikační cache až při zavření. Četl jsem, že to lze udělat posláním prohlížeči response kódu 401.
Problém je, že nevím, jak se to dělá.
Myslel jsem, že bude fungovat tohle:

Header( "HTTP/1.0 401 Unauthorized");

ale nějak to nereaguje. Víte někdo, jak se to dělá? To jest abych uzavřel současný realm?
hm, tak to ti neporadím, páč mě se HTTMP identifakace nelíbí a nepoužívám jí... další důvod, proč púoužívat vlastní...
No podle toho, co jsem zatim cetl, tak odlogovani neni mozne. Proto si myslim, ze je to duvodem, ze se autorizovany HTTP az tak nepouziva. Spis opravdu na zabezpeceni admin stranek.
Tak se zeptám jinak. Jak mám poslat nějakou hlavičku.

A k zabezpečení bez HTTP. Jak si mám zablokovat celej adresář? To musím v každým dokumentu testovat, jestli je někdo nalogovanej? A co když nechci, aby se mi někdo dostal k jinejm souborům. Mám tam třeba Wordovej dokument u kterýho nestojím o to, aby mi ho někdo prohlížel. Jak to mám pomocí PHP udělat. Nevím, s PHP začínám, ale nedokážu si představit, že by něco takovýho šlo.
header("hlavička");
hm, dík, tak to mi bohužel nefakčí, tak asi máte pravdu, ale HTTP autorizace se nevzdám, jelikož jsem zatím nenašel lepší způsob řešící můj problém (určitě je, ale já o něm nevím a neumím ho)
v diskuzi na http://www.php.net/manual/cs/features.http-auth.php se tusim o 'odlogovani' take diskutuje.
mohlo by stacit odeslat hlavicky

header( "WWW-Authenticate: Basic realm=\"Test Authentication System\"");
header("HTTP/1.0 401 Unauthorized");

ale prakticky stoprocentne to jde pouze zavrenim prohlizece (zahozeni hlavicek neni normou stanoveno, takze udajne treba lynx na to nereaguje stejne jako IE)...

m.s.
Už jsem si to nastudoval a jedinné opravdové řešení je zavřít okno, jelikož to co jsi napsal Ti sice otevře to dialogové okno, ale stiskneš-li Storno, normálně zas můžeš lízt kam chceš, jako by se nic nestalo.
Prostě dát skriptík na zavření okna, což ovšem u hlavního jde jen se svolením uživatele. Prostě odhlášení je věc neřešitelná, což mě přijde jako dost hloupá nedokonalost protokolu, respektive jeho zpracování prohlížeči. Nechápu, proč prostě nemůžou vyprázdnit ty proměnný při přijmutí hlavičky 401 Unauthorized.
No co se dá dělat. Ale i tak tomu zůstanu věrný, jelikož pro identifikaci uživatele v celým webu vůbec nemusím používat session ani nic jiného. Prostě to jde samo :-)
co se tyce stisknuti storno, pak mas asi chybu ve skriptu (mas tam exit???)
takhle to funguje, ze pri stisku storno user nemuze pokracovat...

if (!isset($PHP_AUTH_USER)) {
Header ("WWW-Authenticate: Basic realm=\"Pokus\"");
Header("HTTP/1.0 401 Unauthorized");
echo "STOP - je nutne zadat heslo...";
exit;
} else {
echo "Uzivatel: $PHP_AUTH_USER <BR>";
echo "Heslo: $PHP_AUTH_PW <BR>";
}
:-) No ju, já na to úplně zapomněl. No to je dneska den. Radši si dám pauzu a nebudu sem chvíli psát. Nějak mě drtíte na všech frontách a ve všech příspěvcích.

Asi začnu víc myslet a míň kecat.

Počkat ... ale ne ... zas tak hloupej nejsem. Když zmáčkneš storno, tak Ti to napíše STOP-zadat heslo a skončí skript. A tudíž se nehneš z místa. Já ale kliknu na Back (popř vícekrát) a jelikož prohlížeč nevysypal cach, tak se vklidu vrátím na původní místo, tam kde byl ten, kdo se přede mnou odlogoval. No ale nechme toho. Myslím, že už je to tu oddiskutovaný, že to má prostě svoje mouchy a že se prostě musí zavřít okno, pokud chceme mít jistotu. A řešení jak to alespoň ošetřit a přinuti uživatele zavřít okno je ve výše zmíněných článcích.
cache a back je neco uplne rozdilneho, viz. RFC2616 (i kdyz microsoft v IE se to snazi davat dohromady). pokud das back, mela by se stranka zobrazit i v pripade, ze je zakazane cachovani (v IE ale neni uplne pravda, takze tam si pomuzes prave zakazem cache). Opera a urcite i jine browsery se drzi v tomto standartu, takze tam je potreba zavrit browser (je dobre na to uzivatele upozornit)... pokud ti reseni nevyhovuje, mas moznost si udelat svoje presne na miru :-) ...ale to uz, jak jsi poznamenal, tu padlo :-)

m.s.
blbě jsem se vyjádřil. Nemyslel jsem cach, kam se dávaj stránky, ale autentikační cach, kde se uchovává proměnná $PHP_AUTH_USER atd. Bylo to trošku nedorozumnění

Btw: Upozornit uživatele na zavření browseru musím ať chci nebo ne, jelikož hlavní okno bez jeho odsouhlasení stejně nemám právo zavřít.

Ad řešení na míru: Ale ještě nikdo mi tu nenapsal, jak jinak než pomocí HTTP ochránít všechny soubory v adresáři od přímého přístupu (nejen ty, co jsou v php, ale jiné datové).
napr. umistit je mimo web_space...

m.s.
Hm ... o tom toho moc nevím, ale myslel jsem, že to jaksi asi na tomhle webhostingu neudělám ... nebo jo? (estli jo tak jak, please)
ne, to je neschudne pro 95% uzivatelu ... resp. zvladlo by to vic lidi, ale byli by zbytecne zmateni a denne bychom na to museli odpovidat asi 185x ze to maji dat do adresare html nebo jak by se jmenoval

dej do toho adresare soubor .htaccess s obsahem:
deny from all
Dík miro. To s tím deny mě nějak nenapadlo (přitom jsem se zrovna nedávno probíral direktivama serveru, jestli by se mi něco užitečnýho nehodilo).

Škoda, že se řadím mezi těch 95% (každej holt nemůže mít všechno :-)), ale zas tak mě to nemrzí.