Ankündigung

Einklappen
Keine Ankündigung bisher.

php Login-script Problem

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • php Login-script Problem

    Hallo!

    Ich bin ein ziemlicher php Anfänger und versuche verzweifelt dieses Script zum laufen zu bringen.
    Ich möchte die Funktion CheckAuth vor jedem verändernden Zugriff aufrufen können. Es kommt auch brav die Passwortabfrage, aber ich komme nicht weiter, sondern es kommt ohne Ausgabe sofort nochmal die Passwortabfrage, so als ob ich ein falsches Passwort eingegeben hätte.

    Was mach ich falsch? Irgendetwas übersehe ich - aber was?

    Code:
    function CheckAuth() {
    
        if (isset($_SESSION[auth])) {
            $auth = $_SESSION[auth];
        }
        else {
            $auth = 0;
        }
    
        if ($auth) return; //Authorisation has already been granted
    
        if (($PHP_AUTH_USER == "xx" ) && ($PHP_AUTH_PW == "yy" )) {
            $auth = 1;
            $_SESSION[auth] = $auth;
        } 
        if ( $auth != 1 ) { 
            header( "WWW-Authenticate: Basic realm=\"Sie müssen sich anmelden!\"" ); 
            header( "HTTP/1.0 401 Unauthorized" ); 
            echo "Anmeldung erforderlich!"; 
            $auth = 0;
            $_SESSION[auth] = $auth;
            exit; 
        } 
    }

  • #2
    Re: php Login-script Problem

    Zitat von MuggelKid
    Code:
    $_SESSION[auth] = $auth;
    so speichert man keine sessions.

    Code:
    session_register(auth);
    so wird das gemacht oder habe ich da was falsch verstanden?[/code]

    Kommentar


    • #3
      Wenn ich der Doku auf http://www.php.net/manual/de/ref.session.php glaube, dann ist

      Code:
      $_SESSION['auth'] = $auth;
      schon gültig!

      Und ob ich
      Code:
      $_SESSION['auth'] = $auth;
      oder
      Code:
      $_SESSION[auth] = $auth;
      macht leider keinen Unterschied

      Kommentar


      • #4
        Habe das Problem gelöst:

        Code:
          if (($PHP_AUTH_USER == "xx" ) && ($PHP_AUTH_PW == "yy" )) {
        funktioniert nicht in einer Funktion, da $PHP_AUTH_USER und $PHP_AUTH_PW scheinbar nicht im GlobalScope definiert sind!

        Besser gehts mit

        Code:
            if (($_SERVER['PHP_AUTH_USER'] == "xx" ) && ($_SERVER['PHP_AUTH_PW'] == "yy" )) {
        :wink:

        Kommentar

        Lädt...
        X