Hello,
Ich verstehe immer nicht, warum die Credentials beim CGI nicht da drin stehen sollen.
Bei mir stehen sie drin
(
[Host] => testserver
[User-Agent] => Mozilla/5.0 (Windows; U; Windows NT 5.0; de; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9
[Accept] => text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
[Accept-Language] => de
[Accept-Encoding] => gzip,deflate
[Accept-Charset] => ISO-8859-1,utf-8;q=0.7,*;q=0.7
[Keep-Alive] => 300
[Connection] => keep-alive
[Referer] => http://testserver/~thomas/php4/Authenticate/
[Cache-Control] => max-age=0, max-age=0
[Authorization] => Basic VGhvbWFzOmNhZmVrYWtrZQ==
)
$_headers['Authorization'] ist das Feld, dass man auseinandernehmen muss.
$cred = base64_decode($_headers['Authorization']);
$_UN_PW = explode('.'$cred);
Und hier noch der Ablauf des Ganzen dazu, beschrieben von Dennis Riehle.
Das ist doch nicht normal oder ?!
Unter php.net habe ich keinen Hinweis gefunden woran es liegen könnte.
Wenn du dich per HTTP Authentifizierung bei einem Webserver anmelden möchtest, so setzt dein Browser deine Eingaben wie folgt zusammen:
Username:Passwort
Das kodiert der Browser dann mit Base64 (http://de.wikipedia.org/wiki/Base64) und schreibt als als Authorization Header in den Request rein.
Das könnte z.B. so aussehen:
testuser:testpassword
Ergibt Base64-kodiert:
AHRlc3R1c2VyAHRlc3RwYXNzd29yZA==
Und als Header:
Authorization: Basic AHRlc3R1c2VyAHRlc3RwYXNzd29yZA==
Der Server dekodiert das wieder und trennt Username und Passwort anhand des ersten Doppelpunktes auf. Ergo kannst du im Usernamen keinen Doppelpunkt haben.
Wenn du das Prinzip mal auf alle deine Teste durchgehst, dann wirst du sehen, das der Server immer genau das gemacht hat, nämlich am ersten Doppelpunkt in Username und Passwort aufgeteilt.
Aus einem Username „User:Name” und einem Passwort testpassword wird also:
User:Name:testpassword
Und wenn man der Server es wieder ausliest:
Username: User
Passwort: Name:testpassword
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)