Ankündigung

Einklappen
Keine Ankündigung bisher.

header() funktioniert nicht : (

Einklappen

Neue Werbung 2019

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

  • header() funktioniert nicht : (

    hi !
    also, ich versuche mich gerade am login-script und mein problem ist, das die header()-function bei mir nicht funktioniert. habe auch versucht eine weiterleitung zuerstellen, das tuts jedoch auch nicht.

    versuche folgendes script:

    PHP-Code:
    <?php

    function auth_user() {
       
    $realm mt_rand11000000000 );
       
    header('WWW-Authenticate: Basic realm="Realm ID='.$realm.']"');
       
    header('HTTP/1.0 401 Unauthorized');
       die(
    "Unauthorized access forbidden!");
    }

    if (!isset(
    $_SERVER['PHP_AUTH_USER'])) {
       
    auth_user();
    } else if (!isset(
    $_SERVER['PHP_AUTH_USER'])) {
       
    auth_user();
    } else if (
    $_SERVER['PHP_AUTH_USER'] != $auser || $_SERVER['PHP_AUTH_PW'] != $apass) {
       
    auth_user();
    } else if (isset(
    $_GET['action']) && $_GET['action'] == "logout") {
       
    auth_user();
    }

    // Normal Page Code Here
    ?>

    was mache ich denn falsch'!?
    wieso läuft die header nicht?

    danke für jede hilfe...

  • #2
    zum 10000mal:

    was bedeutet "funktioniert nicht"? Wird ein fehler ausgegeben (wenn ja, welcher?) oder bleibt der bildschirm nur leer?


    Mich wundert ein bischen das "]" im header....

    Kommentar


    • #3
      ok... das "]" ist schon komisch... gehört da vielleicht nicht rein(ist nicht mein script).
      nicht funktioniert heisst, die header() wird einfach übergangen... es wird direkt "Unauthorized access forbidden!" angezeigt. und wie gesagt, wenn ich mit header eine weiterleitung versuche, geschieht auch nichts...

      Kommentar


      • #4
        if (!isset($_SERVER['PHP_AUTH_USER'])) {
        auth_user();
        } else if (!isset($_SERVER['PHP_AUTH_USER'])) {
        auth_user();
        }
        steht da nicht zweimal das selbe?

        Läuft das Skript/die Skripte mit error_reporting(E_ALL) und ini_set('display_errors', true); ?
        Wenn nicht, dann ganz an den Anfang setzen und nochmal testen. Fehlermeldungen? Und wenn dann irgendwas mit "already sent" kommt, garnicht erst mehr hier nachfragen sondern gleich die Forensuche benutzen.

        Kommentar


        • #5
          danke für deine hilfe... also, wie gesagt das script ist nicht von mir sondern von http://de2.php.net/features.http-auth

          habe weiter probiert, und mit
          PHP-Code:
          <?php
            
          if (!isset($_SERVER['PHP_AUTH_USER'])) {
                 
          Header("WWW-Authenticate: Basic realm=\"Privat Area\"");
                 
          Header("HTTP/1.0 401 Unauthorized");
                 echo 
          "Text to send if user hits Cancel button\n";
                 exit;
                 } else {
             echo 
          "Hello {$_SERVER['PHP_AUTH_USER']}";
             echo 
          "

          You entered 
          {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
            }
          ?>
          funktioniert es jetzt. das script war wohl nicht das beste zum ersten testen.
          aber mal eine andere frage... der name und passwort stehen in der .htaccess mit dem authname = Private Area, oder sehe ich das falsch!?

          irgendwie fragt er bei mir immer wieder aufs neue nach dem login-daten

          oder wie mache ich es richtig... kannst du mir da vielleicht noch einen tip geben, oder ein gutes tutorial empfehlen...

          Kommentar


          • #6
            der name und passwort stehen in der .htaccess mit dem authname = Private Area,
            Kann sein, muss aber nicht. Wenn ja, machen die Skripte kaum Sinn.
            Entweder der Webserver regelt die Zugriffskontrolle oder das PHP Skript, nicht beide.
            Wenn der Webserver die Zugriffe kontrolliert, sendet er selbst die notwendigen 40x header. Wenn dann das Skript tatsächlich ausgeführt wird, hat sich der Benutzer offenkundig bereits ausreichend authorisiert und das Skript sollte (ausser um eine Art Abmelden zu realisieren) die Finger von den headern lassen.

            Kommentar


            • #7
              hi nochmal...
              habe endlich mal wieder zeit gefunden...
              nun, ich habe dieses script

              PHP-Code:
              <?php
                
              if (!isset($_SERVER['PHP_AUTH_USER'])) {
                     
              Header("WWW-Authenticate: Basic realm=\"Privat Area\"");
                     
              Header("HTTP/1.0 401 Unauthorized");
                     echo 
              "Text to send if user hits Cancel button\n";
                     exit;
                     } else {
                 echo 
              "Hello {$_SERVER['PHP_AUTH_USER']}";
                 echo 
              "

              You entered 
              {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
                }
              ?>
              nur, wie schon gesagt ich bekomme wenn ich einen namen und ein passwort eingeben immer wieder das authenticate-fenster vorgestetzt.
              woran liegt es?!
              normaler weise müsste ich doch auch nur einen beliebigen namen eingeben, oder nicht? wird dieser automatisch in $_server['php_auth_user'] geschrieben?!
              liegt da der fehler?!?
              habe mit infophp() nachgesehen, und register_globals ist on...

              woran könnte es denn noch liegen...

              danke für jede hilfe...

              Kommentar


              • #8
                Was gibt phpinfo bei "Server API" aus?

                Kommentar


                • #9
                  CGI

                  Kommentar


                  • #10
                    Dann wirst Du diese Werte wohl nicht bekommen.
                    http://www.php.net/manual/en/reserved.variables.php
                    'PHP_AUTH_USER'

                    When running under Apache or IIS (ISAPI on PHP 5) as module doing HTTP authentication this variable is set to the username provided by the user.

                    Kommentar


                    • #11
                      heisst das ich kann diese art von login mit meinem php nicht realisieren!?

                      wie mache ich es dann am besten?!

                      kannst du mir vielleicht einen tip geben...

                      Kommentar


                      • #12
                        Hm, nein. Von CGI habe ich keine Ahnung.

                        Kommentar

                        Lädt...
                        X