SESSION Frage

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

  • #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

    Kommentar


    • #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

      Kommentar


      • #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.
        Zuletzt geändert von combie; 21.08.2007, 14:49.
        Wir werden alle sterben

        Kommentar

        Lädt...
        X