Session Problem

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

  • Session Problem

    Hallo!
    Ich habe mir ein Login-System programmiert. Wenn ich mich einlogge, wird eine Session erzeugt. Auch die SID wird angehängt, falls die Cookies deaktiviert sind. Allerdings funktioniert das Ausloggen nicht, wenn der Browser cookies nicht erlaubt.
    Wenn ich mich auslogge und die url mit der SID wieder eingebe, so komme ich ohne Probleme in den geschützen Bereich!

    Der Code mit dem die Session erzeugt werden.
    PHP-Code:
        $to mysql_result($result,0,"timeout");
        
    $to explode(",",$to);    //<- creating a Array with the timouts
        
    $_SESSION['to'] = $to;    
      
    $_SESSION['user_id'] = mysql_result($result,0,"id");
        
    $_SESSION['user'] = mysql_result($result,0,"username");
        
    $_SESSION['userlevel'] = mysql_result($result,0,"userlevel");
        
        
    $sql =" DELETE FROM login_error WHERE users_id=".$_SESSION['user_id']; 
        @
    mysql_query($sql,$dbhandler);
      @
    mysql_close($dbhandler);
      echo 
    "
      <script type='text/javascript'>
      <!--
      window.setTimeout('Weiterleitung()', "
    .$forwarding_time.");
      //-->
      </script>
      "
    ;
      
    error_table("Login erfolgreich!","Kisi, vielen Dank für Ihre Anmeldung.<br>
      <p style='font-size:10px;'><a href='start.php?"
    .strip_tags(SID)."'>Falls 
    die automatische Weiterleitung nicht funktioniert, klicken Sie bitte hier!</a></p>"
    );
      } 
    Im geschützen Bereich werden die Daten der Session überprüft. Falls sie vorhanden sind, so wird der Inhald angezeigt.
    PHP-Code:
    <?php
    if(!isset($_SESSION['to']) || !isset($_SESSION['user_id']) || 
    !isset(
    $_SESSION['user']) || !isset($_SESSION['userlevel']))
    {
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
              "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Login Error</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <meta name="robots" content="noindex, nofollow">
    </head>
    <body>
    <?php
        
    include("error_table.php");
        
    error_table("Login Error!","Sie sind nicht eingeloggt!
    <br> Klicken sie <a href='login.html'>hier</a> um sich einzuloggen!"
    );
        echo 
    "\n</body>\n</html>";
        exit;
    }
    ?>
    Und hier der Coder von der Logout Datei
    PHP-Code:
    <?php session_start();?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
              "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Logout</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <meta name="robots" content="noindex, nofollow">
    </head>
    <body>
    <?php
    session_unset
    ();
    session_destroy();
    include(
    "includes/error_table.php");

    if(isset(
    $_SESSION['userlevel']))
    {
        
    error_table("Logout fehlgeschlagen!","Der Logout war nicht erfolgreich!
                     <br /> Bitte versuchen sie sich erneut auszugloggen: <a href='logout.php'>Logout</a>"
    );
    }
    else
    {
        
    error_table("Logout erfolgreich!","Sie wurden erfolgreich ausgeloggt. <br />Um sich erneut anzumelden 
                               klicken Sie bitte <a href='login.html'>hier!</a>"
    );
    }
    ?>
    </body>
    </html>
    Zuletzt geändert von Kisi; 27.07.2006, 21:19.

  • #2
    müsste man beim logout nicht die session zerstören?

    Kommentar


    • #3
      Sorry, da hab ich die falsche Datei kopiert. Habs jetzt geändert.

      Kommentar


      • #4
        dem zweiteg auszug fehlt noch ein session_start().

        kann es sein, dass du eine ge-cache-te datei bekommst? schalte in deinem browser cache aus.

        Kommentar


        • #5
          Der zweite Auszug wird von einer anderen Datei includet. In der anderen Datei wird die session gestartet. Ich habe jetzt nach dem ausloggen den chache gelöscht, aber ich komm trotzdem noch rein.

          Ich komme allerdings nur rein, wenn ich die Cookies deaktiviert habe. Sind sie aktiviert, so wird die Session ohne Probleme gelöscht. Wenn ich mich einlogge und die SID ist 9acd6899e29caebf7638e23f14e9ca0c
          und dann mit http://www.slipknot.at/cms/cms/acp/s...38e23f14e9ca0c
          die Seite aufrufe, dann bin ich eingeloggt (auch wenn ich meinen cache gelöscht habe). Meine Schlussfolgerung: Die Session wird am Server nicht gelöscht, aber wie kann ich diese löschen? Oder liegt dies an etwas Anderem?
          Zuletzt geändert von Kisi; 28.07.2006, 19:28.

          Kommentar


          • #6
            ...aber wie kann ich diese löschen
            unset($_SESSION['name'])

            Gruss

            tobi
            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

            Lädt...
            X