logout mit include-Datei genügt nicht?

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

  • logout mit include-Datei genügt nicht?

    hallo,
    probiere ein Beispiel meines Buches aus.
    kann prima einloggen auf der admin-Seite.

    Gehe ich aber von dort zurück zur "öffentlichen" ersten Seite
    müsste doch dort der Link zum Ausloggen erscheinen?


    PHP-Code:
    <?php include_once 'access.inc.php'
    include 
    'mainnavi.inc.php';  //navigationsleiste
    <p><a href="admin.php">zum geschützten Bereich</a></p
    if (
    loggedIn()):
      <
    p>Sie sind bereits angemeldet!
        <
    a href="<?php echo $_SERVER['PHP_SELF']; ?>?logout=1"
        
    >Logout</a></p>
       endif; 
    ?>


    für alle Fälle hier die access-datei
    <?php
    require_once 'config.inc.php';
    function 
    loggedIn()
    {
      return isset(
    $_SESSION['authorized']);
    }

    // Die Anmeldung - Sessionvariable setzen
    if (isset($_POST['login'])) {             
      if (
    $_POST['username'] == ADMIN_USER and
          
    $_POST['password'] == ADMIN_PASS) {
        
    $_SESSION['authorized'] = TRUE;
      }
    }
                                   
    // Die Abmeldung - Sessionvariable löschen
    if (isset($_REQUEST['logout'])) {
      unset(
    $_SESSION['authorized']);
    }
    ?>
    Zuletzt geändert von pepsi; 18.08.2006, 13:45.

  • #2
    Und wenn du explizit den Rückgabe Wert der Fkt abfragst ?
    PHP-Code:
    <?php if (loggedIn() === true): ?>
      <p>Sie sind bereits angemeldet!
        <a href="<?php echo $_SERVER['PHP_SELF']; ?>?logout=1"
        >Logout</a></p>
    <?php endif; ?>
    wie siehts dann aus ?

    Gruss

    tobi

    ach ja und ein error_reporting(E_ALL) am Anfang allr beteiligten Scripts kann manchmal sehr erhellend wirken
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      vielen Dank tobi

      in "allen" Dateien war mit error_reporting(E_ALL) kein Fehler.

      bitte um ganz grosse Geduld:

      durfte ich die Abfrage total mit === übernehmen?
      Wenn ja, dann kommt

      Parse error: syntax error, unexpected T_RETURN in
      \access.inc.php on line 13


      wenn nein:
      kenne bei Fehlerabfrage mit echo: echo "$xy";

      Beispiele wie echo "$_POST['username'];" habe ich nicht finden können.

      bitte um ganz grosse Geduld:

      Gruss Pepsi

      Kommentar


      • #4
        ich bekomme mit
        <?php if (loggedIn() === true): ?>
        jetzt keinen Fehler mehr angezeigt,
        nachdem ich im ie mal raus- und wieder reingegangen bin.

        Vielleicht hat es was mit Sessions zu tun.

        Ich glaube, im Moment wird nur das Einloggen geprüft.

        Gruss
        Pepsi
        Zuletzt geändert von pepsi; 17.08.2006, 20:10.

        Kommentar


        • #5
          Original geschrieben von pepsi
          Vielleicht hat es was mit Sessions zu tun.
          Ich glaube, im Moment wird nur das Einloggen geprüft.
          kann sein: "Note: Only use session_unset() for older deprecated code that does not use $_SESSION."
          siehe hier: session_destroy()

          ansonsten ist mir dein code zu sehr html/php-verschachtelt.

          Kommentar


          • #6
            hab versucht das html einzudämmen.

            Ansonsten grüble ich weiter, warum $_SESSION['authorized']
            nicht weitergegeben wird.

            werde den Hinweis miteinbeziehen: danke dafür!
            Note: Only use session_unset() for older deprecated code that does not use $_SESSION."
            siehe hier: session_destroy()

            ohje

            Gruss
            Pepsi

            Kommentar


            • #7
              bin einen riesigen Schritt weiter:
              session_start(); fehlte noch.
              Jetzt merkt er sich's endlich.


              <p>Sie sind bereits angemeldet!<p>
              erscheint leider immernoch nicht.

              "grübelt" jemand mit mir noch weiter?

              Kommentar


              • #8
                print_r() testausgabe??

                Kommentar


                • #9
                  Array ( [authorized] => 1 )

                  wird dann ausgegeben.

                  aber ich bin mir nicht sicher, ob meine Fehlerabfrage
                  richtig und an der richtigen Stelle ist:

                  if (isset($_POST['login'])) {
                  if ($_POST['username'] == ADMIN_USER and
                  $_POST['password'] == ADMIN_PASS) {
                  $_SESSION['authorized'] = TRUE;
                  print_r($_SESSION);
                  }

                  Kommentar


                  • #10
                    mach die testausgabe mal da, wo du überprüfst, ob bereits eingeloggt ist.

                    session_id übergeben?
                    session_start()?

                    Kommentar


                    • #11
                      danke TobiaZ

                      bin emsig dabei Deinen drei Hinweisen nachzugehen.

                      hab gerade meinen gewünschten Logout-Link bekommen,

                      aber suche noch warum

                      bzw. (trotzdem stimmt noch was nicht).

                      (tauche noch ne Weile unter)

                      Kommentar


                      • #12
                        geschafft!

                        danke, dankeschön!

                        Es lag am sauberen Eintippen vpn

                        session_start() auf "jeder" Seite.

                        Mensch, macht das Spass! Danke!

                        Kommentar


                        • #13
                          So langsam sollten wir ne Kasse für sowas aufmachen...

                          Kommentar


                          • #14
                            OffTopic:

                            Kasse? Da musst du schon langsam ne eigene Bank für aufmachen


                            gruss Chris

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

                            Kommentar


                            • #15
                              Original geschrieben von TobiaZ
                              So langsam sollten wir ne Kasse für sowas aufmachen...

                              oohh, schade, hab kein Smily dahinter gesehen !


                              ...hab schon mal geguckt, ob ich auch mal ne Frage beantworten kann, hihi!


                              ...aber bin mit meinem Buch jetzt durch und habe "nur" 5 Fragen gestellt!

                              ... neee, Ihr seid Spitze! Bis bald!!!!
                              Zuletzt geändert von pepsi; 20.08.2006, 08:52.

                              Kommentar

                              Lädt...
                              X