Guten Morgen Christian, :)
Wo bitteschön hast Du das base64_encode her?
RFC 1945 zu HTTP 1.0 Abschnitt 11 "Access Authentication" nicht gelesen?
Doch. Und in RFC 2617 (die Spezifikation zur Authentifizierung in HTTP/1.1) steht auch etwas von wegen base64, allerdings verstehe ich Deinen Bezug nicht?
Das erklärt sich aus:
Ach so :) Ich dachte, jetzt in eine ganz andere Richtung.
- Bei HTTP ist ein Konstrukt http://benutzer:passwort@rechner:port/pfad ungültig. (Siehe http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.2.2 - dort steht nichts von Benutzernamen oder Passwort)
Laut http://de2.php.net/manual/en/wrappers.http.php ist die auch irrelevat;
Hmmm? Wo steht da, dass die irrelevant ist?
Das ist das zweite mal, daß ich den Eindruck habe, Du liest die von mir referenzierten Dokumente nicht. Lese bitte und vergleiche welche HTTP-Version Du im Gegensatz zu PHP zugrunde legst...
Der Einfachheit halber - hört sich für mich an, als hätte man bei fopen() eine schwerere Alternative.
Ja, beispielsweise fopen ('http://.../', 'r', $user, $passwort); - was allerdings ziemlich inkonsistent gegenüber anderen Protokollen wäre.
Welche Beispiele hast Du denn noch so? Das Beispiel jedenfall läßt sich auf Linux mit apache2 PHP 4.3.4 als Handler NICHT nachvollziehen:
Fehlermeldung:
Warning: fopen() expects parameter 4 to be resource, string given in t.php on line 2
Warning: fread(): supplied argument is not a valid stream resource in t.php on line 2
t.php
<?php
echo fread(fopen('http://eddi/read.php','r','eddi','susi'),50000);
?>
read.php
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
Header("WWW-Authenticate: Basic realm="My Realm"");
Header("HTTP/1.0 401 Unauthorized");
echo "Text to send if user hits Cancel button\n";
exit;
} else {
echo "Hello {$_SERVER['PHP_AUTH_USER']}";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>
Folgende Ausgabe ergibt sich jedoch im ursprünlichen Beispiel:
Hello eddi
You entered susi as your password.
t.php
<?php
echo fread(fopen('http://eddi:susi@eddi/read.php','r'),50000);
?>
Schlußendlich stimme ich Dir zu, wenn Du Dich auf Browser beziehst, in Ermangelung einer Alternative beim Gebrauch von fopen() stört mich aber gerade das "der Einfachheit halber" ;)
Ich habe nicht gesagt, dass ich das Verhalten von PHP schlecht finde
Ich habe nicht behauptet, Du hättest dies behauptet.
und "der Einfachheit halber" habe ich absolut nicht abwertend, sondern in diesem Fall eher aufwertend gemeint.
Es tut mir leid, ich kann darin KEINE Wertung erkennen. So habe ich es auch nicht verstanden ;)
Gruß aus Berlin!
eddi