Hello,
Voraussetzung ist mMn aber, dass Du PHP als Modul einsetzt.
Was bedeutet das?
Die Weitergabe dieser Werte funktioniert nicht, wenn PHP als CGI läuft, also nicht direkt in den Apachen "eingebaut" ist.
Mit der Funktion php_sapi_name() http://de3.php.net/manual/en/function.php-sapi-name.php kannst Du das abfragen, welche Version bei Dir läuft.
Das habe ich auch schon versucht, aber die Variablen werden bei Strato anscheinend nicht unterstützt...?!
Das liegt dann vermutlich daran, dass PHP als CGI läuft.
In der login.php5 stände dann folgendes:
if(crypt($passOLD,substr($line[1],0,2)) == $line[1])
{
// authentication success.
$_SERVER['PHP_AUTH_USER'] = $line[0];
$_SERVER['PHP_AUTH_PW'] = $line[1];
$line[1] = crypt($passNEW);
}
else
{
echo "password incorrect";
return FALSE;
}und wenn ich dann auf die Hauptseite komme, steht im Server-Array nix davon...
Das ist auch verkehrt herum verstanden.
Frag mal diese beiden Variablen ab, wenn das Script beginnt.
Und wenn nichts drinsteht, dann sendest Du nur einen header.
header('WWW-Authenticate: Basic realm="Toms Seite"');
header('HTTP/1.0 401 Unauthorized');
Vor dem Header NICHTS anderes senden, auch kein Leerzeichen!
Daraufhin muss der Browser dann das Anmeldefenster Aufklappen.
Wenn Du das ausfüllst und damit einen neuen Request auslöst, muss der Server die beiden Variablen entweder gefüllt haben, oder nicht.
Wenn nein, muss auf jeden Fall ein Wert in $_SERVER["REMOTE_USER"] stehen. Diese Variable ist aber nur vorhanden, wenn der Vorgang mit Status 401 mit einer CGI-Version stattfindet.
Du könntest auch mal schauen, was in den Request-Headern drinsteht.
http://de3.php.net/manual/en/function.getallheaders.php
Ich verstehe immer nicht, warum die Credentials beim CGI nicht da drin stehen sollen.
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 :-)