1
0
mirror of https://github.com/php/doc-de.git synced 2026-03-24 15:22:14 +01:00
Files
Martin Samesch 9bbbfd945d Sync with EN
2023-09-08 21:28:47 +02:00

113 lines
4.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: ba6a83ca3558574695be5ef0a0e008e4e5f78ddb Maintainer: samesch Status: ready -->
<book xml:id="book.session" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="bundled" ?>
<title>Sessionbehandlung</title>
<titleabbrev>Sessions</titleabbrev>
<!-- {{{ preface -->
<preface xml:id="intro.session">
&reftitle.intro;
<para>
Die Unterstützung von Sessions in PHP bietet die Möglichkeit, bestimmte
Daten während einer Folge von Aufrufen einer Website festzuhalten.
</para>
<para>
Einem Besucher wird beim Aufruf einer Website eine eindeutige ID, die
sogenannte Session-ID, zugeordnet. Diese wird entweder benutzerseitig in
einem Cookie abgelegt oder in der URL übermittelt.
</para>
<para>
Die Unterstützung von Sessions erlaubt es, Daten zwischen Anfragen im
superglobalen Array <varname>$_SESSION</varname> zu speichern. Wenn ein
Besucher eine Website aufruft, überprüft PHP automatisch (falls
<link linkend="ini.session.auto-start">session.auto_start</link> auf 1
gesetzt ist) oder auf Anfrage (explizit durch
<function>session_start</function>), ob mit der Anfrage schon eine
bestimmte Session-ID gesendet wurde. Wenn dies der Fall ist, wird die zuvor
gespeicherte Umgebung wiederhergestellt.
</para>
<caution>
<para>
Falls <link linkend="ini.session.auto-start">session.auto_start</link>
aktiviert ist, können Objekte nur dann in Sessions aufgenommen werden,
wenn die Klassendefinition mittels
<link linkend="ini.auto-prepend-file">auto_prepend_file</link> geladen
wird. Andernfalls muss das Objekt mittels <function>serialize</function>
serialisiert werden und danach mittels <function>unserialize</function>
deserialisiert werden.
</para>
</caution>
<para>
<varname>$_SESSION</varname> (und alle registrierten Variablen) werden
intern von PHP unter Verwendung der in der Konfigurationseinstellung
<link linkend="ini.session.serialize-handler">session.serialize_handler</link>
festgelegten Serialisierungsroutine serialisiert, nachdem die Anfrage
beendet ist. Registrierte Variablen, die nicht definiert sind, werden als
nicht definiert gekennzeichnet. Auch bei den folgenden Zugriffen werden sie
nicht vom Session-Modul definiert, außer der Benutzer definiert sie später.
</para>
<warning>
<para>
Weil Session-Daten serialisiert werden, können Variablen vom Typ
<type>resource</type> nicht in der Session gespeichert werden.
</para>
<para>
Die Serialisierungsroutinen (<literal>php</literal> und
<literal>php_binary</literal>) erben die Beschränkungen für
register_globals. Daher können numerische Indizes oder alphanumerische
Indizes, die Sonderzeichen (<literal>|</literal> und <literal>!</literal>)
enthalten, nicht verwendet werden. Deren Verwendung erzeugt Fehler beim
Beenden des Skripts. <literal>php_serialize</literal> hat diese
Einschränkungen nicht.
</para>
</warning>
<note>
<para>
Es ist beim Arbeiten mit Sessions zu beachten, dass der Datensatz einer
Session erst dann erstellt wird, wenn eine Variable durch Hinzufügen eines
neuen Schlüssels zum superglobalen Array <varname>$_SESSION</varname>
registriert wurde. Das gilt auch dann, wenn eine Session mit der Funktion
<function>session_start</function> gestartet wurde.
</para>
</note>
</preface>
<!-- }}} -->
&reference.session.setup;
&reference.session.constants;
&reference.session.examples;
&reference.session.upload-progress;
&reference.session.security;
&reference.session.reference;
&reference.session.sessionhandler;
&reference.session.sessionhandlerinterface;
&reference.session.sessionidinterface;
&reference.session.sessionupdatetimestamphandlerinterface;
</book>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->