Hi,
zunächst einmal danke, dass du mich auf die Idee gebracht hast. So etwas ähnliches wollte ich auch immer schon benutzen, habe mich aber dann mit dem popup zufriedengegeben...
- Anklopfen mit apache_lookup_uri($name)
Meine Idee war nun nicht direkt http://login:passwort@www.domain.de/geschuetzt/ die URL aufzurufen, sondern erst einmal "anzuklopfen" und bei entsprechendem "Alles richtig, herein!" die URL zu übergeben.
Dieser Lösungsansatz ist schlichtweg genial! Diese Idee hatte mir bisher gefehlt.
Also zum Problem: Wie Stefan schon schrieb wird dieser URL wohl nicht korrekt sein. Aber sein Verweis auf den RFC bringt auch die Lösung. Zwar nicht in rfc1738, sondern in rfc2616 und 2617:
http://rfc.net/rfc2616.html
http://rfc.net/rfc2617.html
Was spricht denn dagegen, zumindest eine Minimalform von HTTP zu implementieren, womit du dann gleichzeitig exklusiven Zugriff auf die Fehlercodes hast.
Also statt dem apache_lookup_uri($name) machst du etwas in der Art wie:
$conn=fsockopen("www.domain.de",80);
fwrite($conn,"GET /geschuetzt/ HTTP/1.1\nHost: www.domain.de\n".
"Authorization: ".base64_encode($username.":".$password)."\n\n";
$status=fgets($conn,4);
fclose($conn);
Und solltest anschließend den Statuscode, also 200 oder 401, in $status haben. (Der obige Code ist ein quick hack und natürlich ungetestet)
Funktionen zum öffnen von Netzwerkverbindungen hat wohl auch Perl, so daß diese Lösung nicht auf PHP beschränkt bleiben dürfte...
H2H
--
Henryk Plötz
Grüße von der Ostsee