Moin,
so, das habe ich eben gebastelt und genau diese Automatik scheint mir ein Problem. Wie fordere ich denn den Brauser auf, nach einem Ausloggen, die Daten erneut anzufordern? Bzw. wie muß die Ausloggfunktion aussehn? Ich übergebe jetzt zum einloggen 'admin=1' ->(Abfrage der Daten) und zum Ausloggen 'admin=0' ->(Abfrage der Daten wird übersprungen). Der admin-Status verschwindet auch wie gewünscht. Aber bei erneutem Einloggen, ohne den Brauser vorher geschlossen zu haben, komme ich direkt rein. Ist natürlich blöd, wenn zwei Leute den gleichen Rechner benutzen.
Ein 'Ausloggen' gibt es bei HTTP Auth nicht, jedenfalls nicht serverseitig. Das ist eine Funktionalität die vom Client bereit gestellt werden muß. Siehe ungefähr 27 Threads im Archiv dazu. (Merke: 93,2% aller Statistiken werden aus dem Stehgreif erfunden.)
Was deine Beobachtungen angeht: Strenggenommen basiert das was ich vorgeschlagen habe nur auf einem Verhalten welches die Spezifikation ausdrücklich erlaubt, aber nicht fordert. Mein äusserst hastiger Test mit lynx ist aber durchaus positiv aufgefallen. Kommt dir vielleicht das Caching dazwischen?
mit denen rede ich nur noch im Notfall. Was passiert denn dann? ;-)
Sehr schön und vollständig dokumentiert: http://www.ccc.de/t-hack/.
Der Code den ich verwendet habe:
--- Achtung, das ist hässlich und falsch und tut nur für sehr anspruchslose Werte von "funktionieren" so als ob es funktionieren würde. Bitte nicht nachmachen oder abschreiben. ---
<?php
if($_GET["login"]) auth(FALSE);
auth();
function auth($bla = TRUE)
{
if(isset($_SERVER["PHP_AUTH_USER"]))
$GLOBALS["login"] = "ok";
else if(!$bla) {
header("Status: 401 Unauthorized");
header('WWW-Authenticate: Basic realm="Test"');
}
}
?>
<a href="test1.php?t=1">Normaler Link</a><br>
<a href="test1.php?t=2">Normaler Link die zweite</a><br>
<a href="test1.php?login=true">Einloggen</a><br>
<?php if($login) { ?>
<a href="test1.php?t=3">Admin-Link</a><br>
<a href="test1.php?t=4">Admin-Link nochmal</a>
<?php } ?>
--- Siehe Warnung oben. Das gilt insbesondere für Besucher aus dem Archiv. ---
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~