PEAR::auth Frage ... (*amverzweifelnist*)

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

  • PEAR::auth Frage ... (*amverzweifelnist*)

    Hi,

    Ich habe die letzen Tage das Objektorientierte Programmieren von PHP gelerent und auch die versch. PEAR Klassen kennen gelernt. Also habe ich PEAR auf meinem Server installiert und wollte dann ein LoginScript coden.

    Soweit funktioniert alles prächtig und ich habe auch alles kapiert.

    Nun meine Frage:
    Wie kann ich in einer völlig anderen PHP Datei (nicht die Login-Datei) überprüfen, ob der User authentifiziert ist? Hab beim PEAR Manual nichts dazu gefunden und meine Denkansätze sind auch mehr Umwege. Ich denke da müsste es eine ganz einfach Lösung geben.

    Mir würde es auch schon reichen, wenn ich mit dem PEAR Log-In ein ganzes Verzeichnis schützen könnte ....

    sitze da schon den ganzen Tag dran und bin um jede Hilfe dankbar!

    mfg
    DocHoliday

  • #2
    In einer anderen Datei schon mal sowas probiert?

    PHP-Code:
    <? 
    session_start();

    echo "<pre>";
    print_r($_SESSION);
    echo "</pre>";
    ?>
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      da wird mit das angezeigt:

      Array
      (
      [_authsession] => Array
      (
      [data] => Array
      (
      )

      [registered] => 1

      (Rest wegelassen)

      Also heißt es ja, das die interessante Variable für mich existiert.

      $_SESSION['_authsession']['data']['registered'] müsste sie lauten, oder? Geht bei mir nämlich net.

      Kommentar


      • #4
        $_SESSION['_authsession']['data']['registered'] müsste sie lauten, oder?
        Nö. Sonst wäre sie schließlich auch da.

        Guck dir nochmal genau an, wie das Array aufgebaut ist,

        Kommentar


        • #5
          Wenn du schon mit den PEAR-Klassen arbeitest, dann sei konsequent. Die Klasse Auth bietet eine eigene Methode für die Überprüfung -> checkAuth().

          Schreib dir eine Datei auth.inc.php mit folgendem Inhalt:
          PHP-Code:
          $loginpage 'http://example.com/yourloginpage.php';

          require_once 
          'Auth.php';  // PEAR muß im include_path sein
          $a = new Auth();  // hier deine Zutaten rein
          $a->start();
          if (
          $a->checkAuth() === FALSE) {
              
          header('Location: '.$loginpage);
              exit;

          Nun reicht
          PHP-Code:
          require 'auth.inc.php'
          ganz am Anfang eines Scripts um es zu schützen.

          Kommentar


          • #6
            Original geschrieben von onemorenerd
            Wenn du schon mit den PEAR-Klassen arbeitest, dann sei konsequent. Die Klasse Auth bietet eine eigene Methode für die Überprüfung -> checkAuth().

            Schreib dir eine Datei auth.inc.php mit folgendem Inhalt:
            PHP-Code:
            $loginpage 'http://example.com/yourloginpage.php';

            require_once 
            'Auth.php';  // PEAR muß im include_path sein
            $a = new Auth();  // hier deine Zutaten rein
            $a->start();
            if (
            $a->checkAuth() === FALSE) {
                
            header('Location: '.$loginpage);
                exit;

            Nun reicht
            PHP-Code:
            require 'auth.inc.php'
            ganz am Anfang eines Scripts um es zu schützen.
            Gut okay, das funktioniert vielen Dank erstmal

            Jetzt eine verständnisfrage:

            mit new Auth(www,xxx,yyy,zzz); erstelle ich ja eine NEUE Instanz der Klasse Auth. Woher weiß mein Skript, dass ich eingeloggt bin, wenn ich doch eine komplett neue Instanz erstelle? Oder checkt die Klasse das ab, ob schon ein Login existiert und schreibt es dann in die Instanz rein?

            Kommentar


            • #7
              Tja dann schau doch mal in die Doku oder direkt in Auth.php.
              Vermutlich wird beim konstruieren des Objekts noch nichts geprüft.
              Wahrscheinlich sorgt start() für die Übernahme der Session* und checkAuth() liefert dir deren gegenwärtigen 'Status'.

              *) Schätze mal das Sessions verwendet werden. Schau mal ob du einen Sessioncookie bekommst ...

              EDIT:
              hab eben selbst geschaut - Sessions. Und auch alles andere wie vermutet.
              Zuletzt geändert von onemorenerd; 16.08.2005, 21:43.

              Kommentar

              Lädt...
              X