Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.
| Name | Standard | Veränderbar | Changelog | 
|---|---|---|---|
| session.save_path | "" | PHP_INI_ALL | |
| session.name | "PHPSESSID" | PHP_INI_ALL | |
| session.save_handler | "files" | PHP_INI_ALL | |
| session.auto_start | "0" | PHP_INI_PERDIR | |
| session.gc_probability | "1" | PHP_INI_ALL | |
| session.gc_divisor | "100" | PHP_INI_ALL | |
| session.gc_maxlifetime | "1440" | PHP_INI_ALL | |
| session.serialize_handler | "php" | PHP_INI_ALL | |
| session.cookie_lifetime | "0" | PHP_INI_ALL | |
| session.cookie_path | "/" | PHP_INI_ALL | |
| session.cookie_domain | "" | PHP_INI_ALL | |
| session.cookie_secure | "" | PHP_INI_ALL | |
| session.cookie_httponly | "" | PHP_INI_ALL | Seit PHP 5.2.0 verfügbar. | 
| session.cookie_samesite | "" | PHP_INI_ALL | Seit PHP 7.3.0 verfügbar. | 
| session.use_strict_mode | "0" | PHP_INI_ALL | Seit PHP 5.5.2 verfügbar. | 
| session.use_cookies | "1" | PHP_INI_ALL | |
| session.use_only_cookies | "1" | PHP_INI_ALL | |
| session.referer_check | "" | PHP_INI_ALL | |
| session.cache_limiter | "nocache" | PHP_INI_ALL | |
| session.cache_expire | "180" | PHP_INI_ALL | |
| session.use_trans_sid | "0" | PHP_INI_ALL | |
| session.trans_sid_tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Verfügbar seit PHP 7.1.0. | 
| session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | PHP_INI_ALL | Verfügbar seit PHP 7.1.0. | 
| session.sid_length | "32" | PHP_INI_ALL | Verfügbar seit PHP 7.1.0. | 
| session.sid_bits_per_character | "4" | PHP_INI_ALL | Verfügbar seit PHP 7.1.0. | 
| session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Seit PHP 5.4.0 verfügbar. | 
| session.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Seit PHP 5.4.0 verfügbar. | 
| session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Seit PHP 5.4.0 verfügbar. | 
| session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Seit PHP 5.4.0 verfügbar. | 
| session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Seit PHP 5.4.0 verfügbar. | 
| session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Seit PHP 5.4.0 verfügbar. | 
| session.lazy_write | "1" | PHP_INI_ALL | Seit PHP 7.0.0 verfügbar. | 
| url_rewriter.tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Ab PHP 7.1.0 wird diese INI Einstellung nicht länger für die Session verwendet. | 
| session.hash_function | "0" | PHP_INI_ALL | Entfernt in PHP 7.1.0. | 
| session.hash_bits_per_character | "4" | PHP_INI_ALL | Entfernt in PHP 7.1.0. | 
| session.entropy_file | "" | PHP_INI_ALL | Entfernt in PHP 7.1.0. | 
| session.entropy_length | "0" | PHP_INI_ALL | Entfernt in PHP 7.1.0. | 
| session.bug_compat_42 | "1" | PHP_INI_ALL | Entfernt in PHP 5.4.0. | 
| session.bug_compat_warn | "1" | PHP_INI_ALL | Entfernt in PHP 5.4.0. | 
Das Sessionmanagementsystem unterstützt eine Anzahl von Konfigurationsoptionen, die in der php.ini gesetzt werden können. Wir geben dazu einen kleinen Überblick.
session.save_handler
     string
    session.save_handler definiert den Namen der
      Routine, die benutzt wird, um die Daten zu speichern und abzurufen, die
      mit der Session in Verbindung stehen. Grundeinstellung
      files. Zu beachten ist, dass einzelne Erweiterungen
      ihre eigenen save_handler registrieren können. Welche
      Routinen registriert sind, kann auf Basis der jeweiligen Installation
      mit phpinfo() ermittelt werden. Siehe auch
      session_set_save_handler().
     
    session.save_path
     string
    session.save_path definiert das Argument, das an die
      Speicherroutine übergeben wird. Wenn Sie die standardmäßige
      files-Routine wählen, ist das der Pfad, unter dem die Dateien erzeugt
      werden. Siehe auch session_save_path().
     
     
      Für diese Anweisung gibt es ein optionales Argument
      N, das die Anzahl der Verzeichnisebenen bestimmt,
      über welche die Session-Dateien verteilt werden. Wird sie zum Beispiel
      auf '5;/tmp' gesetzt, kann das das Anlegen einer
      Session-Datei und Speicherstelle wie
      /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If
      bewirken. Um N verwenden zu können, müssen alle diese
      Verzeichnisse vorher angelegt werden. In
      ext/session gibt es für diesen Zweck ein kleines
      Shell-Script namens mod_files.sh und eine Version
      für Windows namens mod_files.bat. Zu beachten ist,
      dass die automatische Speicherbereinigung (garbage collection) nicht
      durchgeführt wird, wenn N verwendet wird und größer 0
      ist (für weitere Informationen siehe eine Kopie der php.ini). Außerdem
      muss bei der Verwendung von N beachtet werden, dass
      session.save_path zwischen Anführungsstriche gesetzt
      wird, weil der Trenner (;) in der php.ini auch für
      Kommentare benutzt wird.
     
      Standardmäßig erzeugt die files-Speicherroutine Dateien mit dem Modus
      600. Dieser Wert kann mit dem optionalen Argument
      MODE geändert werden:
      N;MODE;/pfad, wobei MODE die
      oktale Darstellung des Modus ist. Die Angabe von MODE
      hat keine Auswirkungen auf den Prozess umask.
     
Wenn ein Verzeichnis gewählt wurde, für das jeder Leserechte hat, wie das z.B. bei /tmp (Grundeinstellung) der Fall ist, könnten andere Serverbenutzer mit Hilfe der Dateiliste dieses Verzeichnisses die Sessions entführen.
       Wird das optionale Argument N für die
       Verzeichnisebenen wie oben beschrieben verwendet, ist zu beachten, dass
       ein Wert größer als 1 oder 2 wegen der großen Anzahl an benötigten
       Verzeichnissen für die meisten Websites unangemessen ist: z.B. bedeutet
       ein Wert von 3, dass (2 ** session.sid_bits_per_character) ** 3 Verzeichnisse im
       Dateisystem existieren, was eine große Verschwendung an Speicher und
       Inodes zur Folge haben kann.
      
       Verwenden Sie N größer als 2 nur, wenn Sie absolut
       sicher sind, dass Ihre Website so groß ist, dass Sie es benötigen.
      
session.name
     string
    session.name definiert den Namen der Session, der als
      Cookie-Name verwendet wird. Grundeinstellung
      PHPSESSID. Siehe auch
      session_name().
     
    session.auto_start
     boolean
    session.auto_start definiert, ob das Session-Modul zu
      Beginn einer Anfrage automatisch eine Session startet. Grundeinstellung
      0 (deaktiviert).
     
    session.serialize_handler
     string
    session.serialize_handler definiert den Namen der
      Routine, die benutzt wird, um Daten zu serialisieren/deserialisieren.
      Unterstützt werden das PHP-Serialisierungsformat (Name
      php_serialize), die internen PHP-Formate (Namen
      php und php_binary) und WDDX (Name
      wddx). WDDX steht nur zur Verfügung, wenn PHP mit
      WDDX support kompiliert wurde.
      php_serialize steht ab PHP 5.5.4. zur Verfügung.
      php_serialize verwendet intern die einfachen
      serialize/unserialize-Funktionen und hat nicht die Einschränkungen, die
      php und php_binary haben. Ältere
      Serialisierungsroutinen können aus $_SESSION weder numerische Indizes
      speichern, noch alphanumerische Indizes, die Sonderzeichen
      (| und !) enthalten. Verwenden Sie
      php_serialize um Fehler wegen solcher Indizes am Ende
      des Skripts zu vermeiden. Grundeinstellung php.
     
    session.gc_probability
     integer
    session.gc_probability wird in Verbindung mit
      session.gc_divisor dazu verwendet, die
      Wahrscheinlichkeit zu regeln, mit der die gc-Routine (gc=garbage
      collection, Speicherbereinigung) gestartet wird. Grundeinstellung
      1. Siehe auch session.gc_divisor.
     
    session.gc_divisor
     integer
    session.gc_divisor definiert gekoppelt mit
      session.gc_probability die Wahrscheinlichkeit, mit
      der die gc-Routine (gc=garbage collection, Speicherbereinigung) bei
      jeder Initialisierung einer Session gestartet wird. Die
      Wahrscheinlichkeit errechnet sich aus gc_probability/gc_divisor. 1/100
      bedeutet z.B., dass die gc-Routine bei jeder Anfrage mit einer
      Wahrscheinlichkeit von 1% gestartet wird. Grundeinstellung
      100.
     
    session.gc_maxlifetime
     integer
    session.gc_maxlifetime definiert die Anzahl der
      Sekunden, nach denen Daten als 'garbage' ('Müll') betrachtet und
      möglicherweise entsorgt werden. Die Speicherbereinigung kann zu Beginn
      einer Session durchgeführt werden (abhängig von session.gc_probability und
      session.gc_divisor).
     
     Hinweis: Falls sich der Wert von
session.gc_maxlifetimein verschiedenen Skripten unterscheidet, aber sie die Sessiondaten an der selben Stelle speichern, löscht das Skript mit dem kleinsten Wert die Daten. Verwenden Sie die Anweisung in diesem Fall zusammen mit der Anweisung session.save_path.
session.referer_check
     string
    session.referer_check enthält die Zeichenkette, auf
      die Sie jeden HTTP-Referer überprüfen wollen. Wenn der Referer vom
      Client gesendet und die Zeichenkette nicht gefunden wurde, wird die
      eingebettete Session-ID als ungültig gekennzeichnet. Grundeinstellung
      ist eine leere Zeichenkette.
     
    session.entropy_file
     string
    session.entropy_file gibt den Pfad zu einer externen
      Quelle (Datei) an, die bei der Erzeugung einer Session-ID als
      zusätzliche Entropiequelle verwendet wird. Beispiele sind
      /dev/random oder /dev/urandom, die
      auf vielen Unix-Systemen zur Verfügung stehen.
     
     
      Diese Einstellung wird unter Windows seit PHP 5.3.3 unterstützt. Wenn
      session.entropy_length auf einen von Null
      verschiedenen Wert gesetzt wird, verwendet PHP die Windows-Zufalls-API
      als Entropie-Quelle.
     
     Hinweis: Entfernt in PHP 7.1.0. Ab PHP 5.4.0 ist die Grundeinstellung für
session.entropy_file/dev/urandomoder/dev/arandom, falls es verfügbar ist. In PHP 5.3.0 ist diese Konfigurationsoption in der Grundeinstellung leer.
session.entropy_length
     integer
    session.entropy_length definiert die Anzahl der
      Bytes, die von der oben spezifizierten Datei gelesen werden.
      Grundeinstellung 32 (deaktiviert).
     
     
       Entfernt in PHP 7.1.0.
     
    session.use_strict_mode
     boolean
    session.use_strict_mode definiert ob das Modul den
      strikten Modus für die Session-ID verwendet. Wenn dieser Modus aktiviert
      ist, akzeptiert das Modul keine Session-ID, die nicht initialisiert ist.
      Falls ein Browser eine uninitialisierte Session-ID sendet, wird eine
      neue Session-ID zum Browser gesendet. Im strikten Modus sind Anwendungen
      vor der Übernahme der Session durch Session-Fixation geschützt.
      Grundeinstellung 0 (deaktiviert).
     
     Hinweis: Das Aktivieren von
session.use_strict_modeist für grundsätzliche Session-Sicherheit verpflichtend. Es wird empfohlen, dass alle Sites dies aktiveren. Verdeutlichender Beispielcode kann der Dokumentation von session_create_id() entnommen werden.
      Wenn ein benutzerdefinierter Session-Handler, der per session_set_save_handler()
      registriert wurde, weder SessionUpdateTimestampHandlerInterface::validateId()
      implementiert, noch einen validate_sid Callback übergibt,
      ist der strikte Session-ID-Modus praktisch deaktiviert, unabhängig vom Wert dieser Direktive.
      Im Besonderen ist zu beachten, dass SessionHandler
      SessionHandler::validateId() nicht implementiert.
     
session.use_cookies definiert, ob das Modul Cookies
      verwendet, um die Session-ID clientseitig zu speichern. Grundeinstellung
      1 (aktiviert).
     
    session.use_only_cookies definiert, ob das Modul
      nur Cookies verwendet, um die
      Session-ID clientseitig zu speichern. Mit Aktivierung dieser Einstellung
      wird möglichen Angriffen durch Übermittlung von Session-IDs in URLs
      vorgebeugt. Ab PHP
      5.3.0 ist die Grundeinstellung 1 (aktiviert).
     
    session.cookie_lifetime definiert die
      Cookie-Lebensdauer, die an den Browser geschickt wird, in Sekunden. Der
      Wert 0 bedeutet "bis der Browser geschlossen wird." Grundeinstellung
      0. Siehe auch
      session_get_cookie_params() und
      session_set_cookie_params().
     
     Hinweis: Der Verfalls-Zeitstempel wird relativ zur Serverzeit gesetzt, die nicht unbedingt mit der Browserzeit des Clients übereinstimmt.
session.cookie_path definiert den Pfad, der im
      Session-Cookie gesetzt wird. Grundeinstellung /.
      Siehe auch session_get_cookie_params() und
      session_set_cookie_params().
     
    session.cookie_domain definiert die Domain, die im
      Session-Cookie gesetzt wird. In der Grundeinstellung überhaupt keine,
      was bedeutet, dass entsprechend der Spezifikation für Cookies der
      Hostname des Servers verwendet wird, der das Cookie erzeugt hat. Siehe
      auch session_get_cookie_params() und
      session_set_cookie_params().
     
    session.cookie_secure definiert, ob Cookies nur über
      sichere Verbindungen geschickt werden sollen. Grundeinstellung
      off. Siehe auch session_get_cookie_params()
      und session_set_cookie_params().
     
    session.cookie_httponly markiert das Cookie als nur
      über das HTTP-Protokoll zugänglich. Das bedeutet, dass für
      Skriptsprachen wie z.B. JavaScript nicht zugänglich ist. Diese
      Einstellung kann helfen, Identitätsdiebstahl durch XSS-Angriffe zu
      reduzieren (obwohl es nicht von allen Browsern unterstützt wird).
     
    Lax und Strict bedeuten, dass das Cookie
     bei POST-Anfragen nicht cross-domain gesendet wird; Lax
     sendet das Cookie für cross-domain GET-Anfragen, während Strict
     das nicht tut.
    
   session.cache_limiter
     string
    session.cache_limiter definiert die Methode der
      Cacheverwaltung, die bei Session-Seiten benutzt wird. Das kann einer der
      folgenden Werte sein: nocache,
      private, private_no_expire oder
      public. Grundeinstellung nocache.
      Informationen über die Bedeutung dieser Werte finden Sie in der
      session_cache_limiter()-Dokumentation.
     
    session.cache_expire
     integer
    session.cache_expire definiert in Minuten, wie lange
      Session-Seiten im Cache bleiben. Bei nocache ist diese Angabe
      wirkungslos. Grundeinstellung 180. Siehe auch
      session_cache_expire().
     
    session.use_trans_sid
     boolean
    session.use_trans_sid bestimmt ob transparente
      SID-Unterstützung aktiviert ist oder nicht. Grundeinstellung
      0 (deaktiviert).
     
     Hinweis: URL-basiertes Session-Management hat im Vergleich zu Cookie-basiertem Session-Management zusätzliche Sicherheitsrisiken. Benutzer können zum Beispiel eine URL, die eine aktive Session-ID enthält, per E-Mail an Freunde schicken oder in ihren Bookmarks speichern und immer mit der selben Session-ID auf Ihre Seite zugreifen. Seit PHP 7.1.0 werden auch vollständige URL-Pfade, z.B. https://php.net/, vom trans sid Feature unterstützt. Vorherige PHP-Versionen unterstützten nur relative URL-Pfade. Rewrite-Ziel-Hosts werden durch session.trans_sid_hosts definiert.
session.trans_sid_tags gibt an, welche HTML Tags
      umgeschrieben werden, um die Session-ID zu enthalten, wenn transparente
      SID-Unterstützung aktiviert ist. Die Voreinstellung ist
      a=href,area=href,frame=src,input=src,form=.
     
     
      form ist ein besonderes Tag. <input hidden="session_id" name="session_name">
      wird als Form-Variable hinzugefügt.
     
     Hinweis: Vor PHP 7.1.0, wurde url_rewriter.tags für diesen Zweck verwendet. Seit PHP 7.1.0 wird
fieldsetnicht länger als besonderes Tag angesehen.
session.trans_sid_hosts
     string
    session.trans_sid_hosts gibt an, welche Hosts umgeschrieben
      werden, um die Session-ID zu enthalten, wenn transparente SID-Unterstützung
      aktiviert ist. Die Voreinstellung ist $_SERVER['HTTP_HOST'].
      Mehrere Hosts können durch "," getrennt angegeben werden; Leerzeichen sind
      nicht erlaubt. Beispiel: php.net,wiki.php.net,bugs.php.net.
     
    session.bug_compat_42
     boolean
    Hinweis: Entfernt in PHP 5.4.0.
session.bug_compat_warn
     boolean
    Hinweis: Entfernt in PHP 5.4.0.
session.sid_length
     integer
    session.sid_length erlaubt die Angabe der Länge der
      Session-ID-Zeichenkette. Diese Länge kann zwischen 22 und 256 liegen.
     
     
      Die Voreinstellung ist 32. Wird Kompatibilität benötigt, kann 32, 40, etc.
      angegeben werden. Längere Session-IDs sind schwerer zu erraten. Wenigstens
      32 Zeichen werden empfohlen.
     
     
       Hinweis zur Kompatibiliät: Verwenden Sie 32 anstatt
       session.hash_function=0 (MD5) und
       session.hash_bits_per_character=4,
       session.hash_function=1 (SHA1) und
       session.hash_bits_per_character=6. Verwenden Sie 26 anstatt
       session.hash_function=0 (MD5) und
       session.hash_bits_per_character=5. Verwenden Sie 22 anstatt
       session.hash_function=0 (MD5) und
       session.hash_bits_per_character=6. Die INI Werte müssen
       so konfiguriert werden, dass sie wenigstens 128 bits in der Session-ID
       haben. Vergessen Sie nicht,
       session.sid_bits_per_character den entsprechenden Wert
       zuzuweisen; andernfalls erhalten Sie schwächere Session-IDs.
      
Hinweis: Diese Einstellung wurde in PHP 7.1.0 eingeführt.
session.sid_bits_per_character
     integer
    session.sid_per_character erlaubt die Angabe der Anzahl
      der Bits in kodierten Session-ID-Zeichen. Die möglichen Werte sind '4'
      (0-9, a-f), '5' (0-9, a-v) und '6' (0-9, a-z, A-Z, "-", ",").
     
     
      Die Voreinstellung ist 4. Mehr Bits ergeben stärkere Session-IDs.
      5 wird für die meisten Umgebungen empfohlen.
     
     
Hinweis: Diese Einstellung wurde in PHP 7.1.0 eingeführt.
session.hash_function
     mixed
    session.hash_function gibt Ihnen die Möglichkeit, den
      Prüfsummen-Algorithmus für die Erzeugung von Session-IDs selbst zu
      bestimmen. '0' bedeutet MD5 (128 Bit) und '1' bedeutet SHA-1 (160 Bit).
     
     
      Ab PHP 5.3.0 ist es auch möglich, einen der Algorithmen zu bestimmen,
      die durch die Hash-Erweiterung (falls
      vorhanden) zur Verfügung stehen, wie z.B. sha512 oder
      whirlpool. Eine vollständige Liste unterstützter
      Algorithmen erhalten Sie mit der Funktion
      hash_algos().
     
Hinweis: Diese Einstellung wurde in PHP 5 eingeführt. Entfernt in PHP 7.1.0.
session.hash_bits_per_character
     integer
    session.hash_bits_per_character gibt Ihnen die
      Möglichkeit, zu definieren wieviele Bit bei der Umwandlung der binären
      Prüfsummen-Daten in etwas Lesbares in jedem Zeichen gespeichert werden.
      Mögliche Werte sind '4' (0-9, a-f), '5' (0-9, a-v) und '6' (0-9, a-z,
      A-Z, "-", ",").
     
     Hinweis: Entfernt in PHP 7.1.0.
session.upload_progress.enabled
     boolean
    session.upload_progress.cleanup
     boolean
    Hinweis: Es wird dringend empfohlen diese Funktion aktiviert zu lassen.
session.upload_progress.prefix
     string
    $_POST[ini_get("session.upload_progress.name")]
      angehängt, um einen eindeutigen Schlüssel zu erhalten.
     
     
      Grundeinstellung "upload_progress_".
     
    session.upload_progress.name
     string
    $_POST[ini_get("session.upload_progress.name")]
      nicht übergeben wird oder nicht verfügbar ist, wird kein
      Upload-Fortschritt aufgezeichnet.
     
     
      Grundeinstellung "PHP_SESSION_UPLOAD_PROGRESS".
     
    session.upload_progress.freq
     mixed
    session.upload_progress.min_freq
     integer
    session.lazy_write
     boolean
    session.lazy_write auf 1 gesetzt ist, werden
      Daten nur gespeichert, nachdem sie sich geändert haben. Grundeinstellung
      1 (aktiviert).
     
    
  Die Konfigurationseinstellung register_globals
  beeinflusst, wie die Session-Variablen gespeichert und wiederhergestellt
  werden.
 
Der Upload-Fortschritt wird nur aufgezeichnet, wenn session.upload_progress.enabled aktiviert ist und die Variable $_POST[ini_get("session.upload_progress.name")] gesetzt ist. Siehe Session Upload Progress für weitere diesbezügliche Informationen.