Hallo zusammen, guten Abend,
ich brüte seit Stunden über folgendem Problem....
Ich habe ein PHP Skript für ein Gästebuch im Einsatz welches für den Administrator-Login die klassischen HTTP-Authentifizierungs-Mechanismen verwendet wie sie auch in PHP-Manual http://php.net/manual/de/features.http-auth.php berschrieben sind.
Nämlich z.B.:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text, der gesendet wird, falls der Benutzer auf Abbrechen drückt';
exit;
} else {
echo "<p>Hallo {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>Sie gaben {$_SERVER['PHP_AUTH_PW']} als Passwort ein.</p>";
}
?>
Die header()-Funktion wird dazu genutzt, um die Nachricht "Authentifizierung erforderlich" an den Client-Browser zu senden, damit dieser ein Fenster zur Eingabe von Benutzername/Passwort öffnet. Hat der Benutzer diese eingegeben, wird die URL des PHP-Scripts mit den vordefinierten Variablen PHP_AUTH_USER, PHP_AUTH_PW und AUTH_TYPE, die den Benutzernamen, das Passwort und den Typ der Authentifizierung enthalten, erneut aufgerufen. Diese vordefinierten Variablen befinden sich in den Arrays $_SERVER und $HTTP_SERVER_VARS.
Nun habe ich das Problem, dass das ganze bei mir lokal in einer XAMPP-Installation problemlos funktioniert, nicht aber auf dem Produktivsystem, also auf dem T-Online-Server wo ich meine Homepage liegen habe-
Die Eingabemaske für User und Pass erscheint zwar, ich kann auch Daten eingeben und die Eingabe mit Return abschließen, es scheint aber so, als wenn der T-Online-Server nicht wie erwartet die vordefinierten Variablen zur Abfrage befüllt. Das Eregbnis ist eine endlose Eingabe des User+Pass bzw. im Falle meines Gästebuchs nach dreimaliger falsche Eingabe eine Abbruchmeldung.
Warum funktiniert es auf XAMPP aber nicht auf T-Online?
Was mache ich falsch?
Sind irgendwelche Funktionen die ich benötigt nicht freigeschaltet, wenn NEIN welche bzw. wie kann ich sie aktivieren? Kennt jemand das Problem?
Die Schalter für cgi.rfc2616_headers in meiner PHP installation auf dem T-Online-Server sind 0.
Die verwendete PHP Version ist 5.2.16.
Vielen Dank für Eure Hilfe im Voraus,
Markus