predAtor: Problem mit HTTP-Authentification

Hiho, ich hoffe ihr könnt mir bei meinem Problem helfen ;)
Ich hab PHP 4.3.3 als Apache-Modul installiert und trotzdem will folgendes Script nicht laufen: auch wenn Benutzer und Passwort eingegeben wurden, erscheint nicht die Ausgabe, sondern das Authentifizierungsfenster bleibt einfach da!

<?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>";
  }

?>

Danke für eure Hilfe schonmal im voraus...

predAtor

  1. Hi!

    <?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>";
      }

    ?>

    Das Problem ist dass Du Variablen verwendest, die vermutlich gar nicht existieren. In PHP 4.3.3 sollte der Zugriff auf System-Variablen über den Array $_SYSTEM erfolgen.

    Näheres findest Du unter
    http://de3.php.net/manual/en/language.variables.predefined.php, und
    http://www.dclp-faq.de/q/q-formular-register-globals.html

    Verwende einfach das aktuellere Beispiel der englischen Version des Manuals: http://de3.php.net/manual/en/features.http-auth.php

    Grüße
    Andreas

    PS: Es empfielt sich oft bei Problemen einen Blick in die englische Version des Manuals zu werfen, denn die ist oft aktueller.

    1. Ok ich werd deine Tipps später mal ausprobieren...

      predAtor

      1. Sorry nochmal ne kurze Frage: die User und Passwortvariablen sind doch nur auf einer Seite gültig, oder?

        1. Hallo,

          Sorry nochmal ne kurze Frage: die User und Passwortvariablen sind doch nur auf einer Seite gültig, oder?

          Nein,
          da HTTP bei jedem Request eine neue Verbindung aufbaut, müssen auch jedes MAl die Userdaren mitgesendet werden, wenn der Client im geschützten Verzeichnis bleibt. Davon bekommt der User jedoch nichts mit. Die Variablen sind aber auf allen geschützten Seiten "vorhanden".

          Gruß Henk

    2. Hi!

      Das Problem ist dass Du Variablen verwendest, die vermutlich gar nicht existieren. In PHP 4.3.3 sollte der Zugriff auf System-Variablen über den Array $_SYSTEM erfolgen.

      Entschulding, ich meinte natürlich $_SERVER und nicht $_SYSTEM ;-)

      selbiges gilt im übrigen für GET und POST Variablen(z.B. bei HTML-Formularen), mehr erfährst Du in den Links.

      Grüße
      Andreas

      1. Entschulding, ich meinte natürlich $_SERVER und nicht $_SYSTEM ;-)

        hab mich auch schon gewundert (häh? $_SYSTEM?) ;)