Wie kann ich mit Basic-HTTP-Authentifizierung in PHP?

Ich versuche, Basic-HTTP-Authentifizierung und folgte dem Beispiel auf der PHP manual-Seite. Aber es funktioniert nicht für mich. Die variable $_SERVER['PHP_AUTH_USER'] scheint nicht eingestellt zu werden. Wenn ein Benutzer versucht, sich einzuloggen, wird der Benutzer aufgefordert, mit einem neuen login-dialog. Der server läuft PHP 5.3.3 und ich habe versucht mit Google Chrome und Internet Explorer.

Hier ist das einfache Beispiel, das ich verwendet habe:

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="Jonas Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'User pressed Cancel';
    exit;
} else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as you password.</p>";
}
?>

Was ist falsch? Wie kann ich mit Basic-HTTP-Authentifizierung in PHP?

  • Anstatt zu versuchen, dies zu tun mit PHP, warum nicht Sie verwenden den web-server, z.B. httpd.apache.org/docs/2.2/howto/auth.html
  • Ich denke, dass meine web-host-Apache verwendet.
  • Dann wird mein PHP-code werden denpendent von meiner web-server, und ich kann nicht easyli Wechsel zu einem anderen web-server. Ich würde gerne auf dem HTTP-standard.
  • Unbefugten ist falsch geschrieben, erste. Dein Beispiel ist kürzer als die der link verwiesen wird.
  • Danke, aber es hat nicht geholfen.
  • Fair genug, es ist so einfach, mit htpasswd 🙂
  • Haben Sie Lesen Sie die Kommentare auf den link, der Sie gefolgt sind? Es sind Vorschläge für verschiedene web-Server und mehrere Versionen des Programms, eine von diesen möglicherweise besser geeignet für Ihre Bedürfnisse. Für PHP finde ich das Handbuch Kommentare zu mehr nützlich als die Beschreibung in der Bedienungsanleitung.

InformationsquelleAutor Jonas | 2010-11-11
Schreibe einen Kommentar