dedlfix: PHP_AUTH_USER löschen

Beitrag lesen

echo $begrüßung;

ich möchte einen Zugang per htaccess wieder rückgängig machen, wie bei PHPMyAdmin. So dass sich der Besucher wieder neu autorisieren muss. Sowas in der Art, als wenn er sich von einer Session ausloggt.
Wenn $_SERVER['PHP_AUTH_USER'] gelehrt wird mit $_SERVER['PHP_AUTH_USER']=''; reicht das nicht aus. Beim nächsten Aufruf ist sie wieder auf den vorherigen Wert gesetzt. Kann mir jemand da weiterhelfen.

geleert = leer gemacht
gelehrt = Wissen beigebracht

HTTP-Autorisierung funktioniert anders als klassische An-/Abmeldesysteme. Der Browser sendet einen Request an eine Seite. Die sagt ihm 401. Daraufhin zeigt er dem Benutzer den Dialog zum Eingeben von Benutzername und Passwort. Mit diesen Daten im Schlepptau wiederholt er den Request und bekommt die gewünschte Ressource ausgeliefert. Diese Daten versendet er nun bei jedem weiteren Request ungefragt und automatisch mit. Der Benutzer bekommt davon nichts mit. Ein Abmelden müsste darin bestehen, dass der Browser aufhört, die Anmeldedaten mitzusenden.
Das ständige Mitsenden muss so sein, da HTTP ein zustandsloses Protokoll ist. Jeder Request ist für sich selbst zu betrachten. Der Webserver muss auch für jeden Request neu nachsehen, ob die Anmeldedaten stimmen, bzw. genauer: ob mit diesen Anmeldedaten dieser Request beantwortet werden soll. Der Browser hört auf, die Anmeldedaten mitzusenden, wenn der Server ihm sagst, damit sei er nicht mehr autorisiert (401). Was aber zur Folge hat, dass das Anmeldefenster dem Benutzer wieder erscheint und möglicherweise die im Browser dauerhaft gespeicherten Anmeldedaten verworfen werden, was den Anwender sicher nicht freuen wird.

PHP kennt übrigens ein eigenes Kapitel zum Thema HTTP authentication with PHP, in dem (oder dessen Userkommentaren) auch irgendwo was zum "Abmelden" steht, wenn ich mich recht erinnere.

echo "$verabschiedung $name";