Session Variablen verwenden

  • Das Beispiel verwendet zwei Dateien s1.php und s2.php .
  • s1.php erzeugt die Session und registriert eine Variable ‚username‘ im globalen Array $_SESSION .
  • Nach dem Klick auf den Link in s1.php wird in s2.php die akt. Session weitergeführt und die Variable ‚username‘ ausgelesen und die Session zerstört.
  • Man kann so also ohne viel Aufwand versteckt Daten von einer Seite zur anderen transferieren, ohne $_GET (URL) oder $_POST (Formvariablen) zu benutzen.
  • s1.php
    <?php
      if (session_start()) // neue Session erstellen oder bestehende fortführen -> muss ganz oben stehen, vor "<?php" dürfen keine Leerzeichen sein
      {
        // akt. SessionID ausgeben
        echo "akt. SessionID: ".session_id()."<br>";
        
        // akt. Speicherpfad der Session ausgeben
        echo "Speicherpfad der Session: ".session_save_path()."<br>";
        
        // Variable in der Session registrieren, ab PHP 4.1.0
        if (!isset($_SESSION["username"])) $_SESSION["username"] = "admin";
        
        echo "akt. Inhalt der Variable 'username': ".$_SESSION["username"]."<br>";
        
        echo "<a href="s2.php" title="Session test">weiter</a>";
      }
      else
      {
        echo "Session konnte nicht gestartet werden.<br>";
      }
    ?>
    
  • s2.php
    <?php
      if (session_start()) // neue Session erstellen oder bestehende fortführen -> muss ganz oben stehen, vor "<?php" dürfen keine Leerzeichen sein
      {
        // akt. SessionID ausgeben
        echo "akt. SessionID: ".session_id()."<br>";
        
        // akt. Speicherpfad der Session ausgeben
        echo "Speicherpfad der Session: ".session_save_path()."<br>";
        
        // Variable in der Session registrieren, ab PHP 4.1.0
        echo "akt. Inhalt der Variable 'username': ".$_SESSION["username"]."<br>";
        
        // alle Variablen der Session löschen
        session_unset();
        
        // kontrollieren, ob die Variable gelöscht wurde
        echo "akt. Inhalt der Variable 'username' nach session_unset(): ".$_SESSION["username"]."<br>";
        
        if (session_destroy())
        {
          echo "Session erfolgreich zerstört.<br>";
        }
        else
        {
            echo "Session konnte nicht zerstört werden.<br>";
        }
      }
      else
      {
        echo "Session konnte nicht gestartet werden.<br>";
      }
    ?>