SESSION Frage

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Hab da mal ein kleines Testscript zusammen gestellt:
    So kann man auch ganz gut ohne session_destroy klarkommen.
    PHP Code:
     <?php
    error_reporting
    (E_ALL); 
    ini_set('display_errors'TRUE);
    define('PARANOID',TRUE);

    session_start();

    if(
    PARANOID)
      
    session_regenerate_id(FALSE); // bei jedem Aufruf
    // um Cookieklau zu erschweren
    //(zerstört leider F5 und BackButton bei transSID)

    function logout()
    {
      
    $_SESSION = array();
      if(
    PARANOIDsession_regenerate_id(TRUE);
    }

    function 
    login()
    {
      
    $_SESSION['eingelogt'] = 'yes'// nur um was zu tun
    }

    if(isset(
    $_GET['action']))
      switch(
    $_GET['action'])
      {
        case 
    'logout' :logout(); break;
        case 
    'login'  :login(); break;
      }
    ?>

    <a href="?action=egal"> reload</a> ||
    <a href="?action=logout"> Logout</a> ||
    <a href="?action=login"> Login</a>
    </br></br></br>
    <?php
    echo 'SID: '.session_id(); 
    echo 
    '<pre>'.var_export($_SESSION,TRUE).'</pre>';
    ?>
    Wir werden alle sterben

    Comment


    • #17
      Original geschrieben von combie
      Quark!!
      Session_destroy() macht genau Null Komma gar nichts mit der SID!!
      hm... jo... (tolles Verhalten, so intuitiv und so~)

      session_regenerate_id(true);
      beim Login - das killt die alte Session und startet eine neue saubere mit neuer SID

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Comment


      • #18
        Hmmm... mit Einschränkungen..
        1. Den Parameter TRUE, gibts erst ab 5.1
        2. löscht es die Datei und ändert die SID aber die Sessiondaten des gerade laufenden Scriptes bleiben erhalten

        Also führt kein Weg an $_SESSION = array(); vorbei(nagut, man könnte die Kritischen Einträge einzeln mit unset rauslöschen), auch bei der Benutzung von session_destroy(). Steht ja auch nicht umsonst in dem Beispiel der Doku so.
        Last edited by combie; 21-08-2007, 14:49.
        Wir werden alle sterben

        Comment

        Working...
        X