Bjoern: Benutzerauthentifizierung mit PHP

Hallo zusammen,

Wie kann ich auf einer php-Seite den Benutzer auffordern, einen Benutzername und Passwort anzugeben ?
Ich habe einmal diesen Code hier versucht:

<?php
  if(!isset($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 $PHP_AUTH_USER.<P>";
    echo "You entered $PHP_AUTH_PW as your password.<P>";
  }
?>

Mein Problem: Wenn ich Passwort und Benutzername eingebe, wird der Text "Hello..." nicht ausgegeben. Die Seite fragt mich einfach noch einmal nach Name/Passwort.

Habt ihr eine Idee, was ich falsch mache ? Vielen Dank im voraus.

Gruss,
  Bjoern

  1. Hallo Bjoern,

    Habt ihr eine Idee, was ich falsch mache ?

    Möglichkeit 1: Du verwendest PHP als CGI und nicht als Apache-Modul, dann _kann_ HTTP-Authentifizierung mit PHP nicht funktionieren.

    Möglichkeit 2: Du hast eine PHP-Version mit ausgeschaltetem register_globals - in dem Fall solltest Du $_SERVER['PHP_AUTH_USER'] statt $PHP_AUTH_USER nehmen. (und gleiches für das Passwort)

    Christian

    --
    Hast Du einen Beitrag? Nur her damit!
    http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
    SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
    sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[
    1. Hallo,

      Danke erstmal Christian. Ich hab das einmal angeschaut:

      Möglichkeit 1: Du verwendest PHP als CGI und nicht als Apache-Modul, dann _kann_ HTTP-Authentifizierung mit PHP nicht funktionieren.

      In meiner phpinfo steht: "Loaded Modules  mod_php4"
      Das heisst doch, dass PHP als Modul läuft, oder ?

      Möglichkeit 2: Du hast eine PHP-Version mit ausgeschaltetem register_globals - in dem Fall solltest Du $_SERVER['PHP_AUTH_USER'] statt $PHP_AUTH_USER nehmen. (und gleiches für das Passwort)

      In der phpinfo steht ebenfalls: "register_globals On". Ich hab's auch einmal mit $_SERVER[... versucht. Aber irgendwie will das nicht.

      Habt ihr noch eine Idee ?

      Gruss,
        Bjoern

      1. Hallo Bjoern,

        In meiner phpinfo steht: "Loaded Modules  mod_php4"
        Das heisst doch, dass PHP als Modul läuft, oder ?

        Ja.

        Habt ihr noch eine Idee ?

        Direkt zur Problemlösung nicht, jedoch zur Diagnose:

        Füge mal phpinfo (INFO_VARIABLES); dort ein, wo die Autentifizierung fehlschlägt, direkt vor die exit-Zeile. Dann gibst Du einmal Deine Daten (Benutzername, Passwort) ein und drückst dann beim zweiten Mal auf Abbrechen.

        Christian

        --
        Hast Du einen Beitrag? Nur her damit!
        http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
        SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
        sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[
        1. Hallo Christian,

          Direkt zur Problemlösung nicht, jedoch zur Diagnose:

          Füge mal phpinfo (INFO_VARIABLES); dort ein, wo die Autentifizierung fehlschlägt, direkt vor die exit-Zeile. Dann gibst Du einmal Deine Daten (Benutzername, Passwort) ein und drückst dann beim zweiten Mal auf Abbrechen.

          Der Benutzername, den ich eingegeben habe, taucht nirgens auf. Eine Variable mit Namen ...'PHP_AUTH_USER' gibt's auch nicht...

          Bjoern