cvs: phpdoc-de /reference/session reference.xml

From: Date: Fri, 04 Oct 2002 15:36:58 +0000
Subject: cvs: phpdoc-de /reference/session reference.xml
Groups: php.doc.de 
Request: Send a blank email to doc-de+get-264@lists.php.net to get a copy of this message
samesch Fri Oct 4 11:36:58 2002 EDT Modified files: /phpdoc-de/reference/session reference.xml Log: syncing with EN-Rev. 1.16

Index: phpdoc-de/reference/session/reference.xml diff -u phpdoc-de/reference/session/reference.xml:1.7 phpdoc-de/reference/session/reference.xml:1.8 --- phpdoc-de/reference/session/reference.xml:1.7 Sat Aug 17 16:26:32 2002 +++ phpdoc-de/reference/session/reference.xml Fri Oct 4 11:36:58 2002 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.7 $ --> -<!-- EN-Revision: 1.12 Maintainer: samesch Status: ready --> +<!-- $Revision: 1.8 $ --> +<!-- EN-Revision: 1.16 Maintainer: samesch Status: ready --> <reference id="ref.session"> <title>Session Funktionen</title> <titleabbrev>Sessions</titleabbrev> @@ -107,229 +107,7 @@ </para> </section> - <section id="session.configuration"> - &reftitle.runtime; - <para> - Das Sessionmanagementsystem unterstützt eine Anzahl von - Konfigurationsoptionen, die Sie in Ihrer &php.ini; setzen können. - Wir geben Ihnen dazu einen kleinen Überblick. - <itemizedlist> - <listitem> - <simpara> - <literal>session.save_handler</literal> definiert den Namen - der Prozedur, die benutzt wird, um die Daten zu speichern und - zurückzuholen, die mit der Session in Verbindung stehen. - Grundeinstellung <literal>files</literal>. - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.save_path</literal> definiert das Argument, - das an die Speicherprozedur übergeben wird. Wenn Sie die - standardmäßige files Prozedur wählen, ist das der Pfad, unter - dem die Dateien erzeugt werden. Grundeinstellung - <literal>/tmp</literal>. Wenn die Verzeichnistiefe von - <literal>session.save_path</literal> größer als zwei ist, wird - die Garbage-Collection nicht durchgeführt. - </simpara> - <warning> - <para> - Wenn Sie ein Verzeichnis gewählt haben, 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 Ihre Sessions entführen. - </para> - </warning> - </listitem> - <listitem> - <simpara> - <literal>session.name</literal> spezifiziert den Namen der - Session, der als Cookie-Name verwendet wird. Grundeinstellung - <literal>PHPSESSID</literal>. - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.auto_start</literal> spezifiziert, ob das - Session-Modul zu Beginn einer Anfrage automatisch eine Session - startet. Grundeinstellung <literal>0</literal> (deaktiviert). - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.cookie_lifetime</literal> spezifiziert die - Cookie-Lebensdauer, die an den Browser geschickt wird, in - Sekunden. Der Wert 0 bedeutet "bis der Browser geschlossen - wird." Grundeinstellung <literal>0</literal>. - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.serialize_handler</literal> definiert den - Namen der Prozedur, die benutzt wird, um Daten zu - serialisieren/deserialisieren. Gegenwärtig wird ein internes - PHP-Format (Name <literal>php</literal>) und WDDX (name - <literal>wddx</literal>) unterstützt. WDDX steht nur zur - Verfügung, wenn PHP mit <link linkend="ref.wddx">WDDX - support</link> kompiliert wurde. Grundeinstellung - <literal>php</literal>. - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.gc_probability</literal> spezifiziert die - prozentuale Wahrscheinlichkeit, dass die gc (garbage - collection) Routine bei jeder Anfrage gestartet - wird. Grundeinstellung <literal>1</literal>. - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.gc_maxlifetime</literal> spezifiziert die - Anzahl der Sekunden, nach denen Daten als 'garbage' ('Müll') - betrachtet und entsorgt werden. - </simpara> - <note> - <simpara> - Falls Sie die standardmäßige dateibasierte Session-Prozedur - verwenden, muss Ihr Dateisystem die Zugriffszeiten (atime) - verfolgen. Windows FAT tut dies nicht. Sie müssen sich daher - einen anderen Weg einfallen lassen, um die 'Müllentsorgung' - Ihrer Session zu erledigen, wenn Sie an ein FAT-Dateisystem - gebunden sind oder an irgendein anderes Dateisystem, das - keine atime-Kontrolle bietet. - </simpara> - </note> - </listitem> - <listitem> - <simpara> - <literal>session.referer_check</literal> 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. - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.entropy_file</literal> gibt den Pfad zu einer - externen Quelle (Datei) an, die bei der Erzeugung einer - Session-ID als zusätzliche Entropiequelle verwendet - wird. Beispiele sind <literal>/dev/random</literal> oder - <literal>/dev/urandom</literal>, die auf vielen Unix-Systemen - zur Verfügung stehen. - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.entropy_length</literal> spezifiziert die - Anzahl der Bytes, die von der oben spezifizierten Datei - gelesen werden. Grundeinstellung <literal>0</literal> - (deaktiviert). - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.use_cookies</literal> spezifiziert, ob das - Modul Cookies verwendet, um die Session-ID clientseitig zu - speichern. Grundeinstellung <literal>1</literal> (aktiviert). - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.use_only_cookies</literal> spezifiziert, ob - das Modul <emphasis role="strong">nur</emphasis> Cookies - verwendet, um die Session-ID clientseitig zu speichern. - Grundeinstellung <literal>0</literal> (deaktiviert, für - Rückwärts-Kompatibilität). Mit Aktivierung dieser Einstellung - wird möglichen Angriffen durch Übermittlung von Session-IDs in - URLs vorgebeugt. Diese Einstellung wurde in - <literal>PHP</literal> 4.3.0 hinzugefügt. - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.cookie_path</literal> spezifiziert den Pfad, - in dem das Session-Cookie gesetzt wird. Grundeinstellung - <literal>/</literal>. - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.cookie_domain</literal> spezifiziert die - Domain, unter der das Session-Cookie gesetzt wird. In der - Grundeinstellung überhaupt keine. - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.cache_limiter</literal> spezifiziert die - Methode der Cacheverwaltung, die bei Session-Seiten benutzt - wird (none/nocache/private/private_no_expire/public). - Grundeinstellung <literal>nocache</literal>. - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.cache_expire</literal> spezifiziert in - Minuten, wie lange Session-Seiten im Cache bleiben. Bei - nocache ist diese Angabe wirkungslos. Grundeinstellung - <literal>180</literal>. - </simpara> - </listitem> - <listitem> - <simpara> - <literal>session.use_trans_sid</literal> bestimmt ob - transparente SID-Unterstützung aktiviert ist oder nicht. - Grundeinstellung <literal>0</literal> (deaktiviert). - </simpara> - <note> - <simpara> - In PHP 4.1.2 oder darunter wird sie durch compilieren mit - <link - linkend="install.configure.enable-trans-sid"><literal>--enable-trans-sid</literal></link> - aktiviert. Ab PHP 4.2.0 ist das Feature trans-sid immer - eincompiliert. - </simpara> - <simpara> - 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 Email an Freunde - schicken oder in ihren Bookmarks speichern und immer mit der - selben Session-ID auf Ihre Seite zugreifen. - </simpara> - </note> - </listitem> - <listitem> - <simpara> - <literal>url_rewriter.tags</literal> bestimmt, wenn - Unterstützung für transparente SID aktiviert ist, welche - HTML-Tags so umgeschrieben werden, dass sie die Session-ID - beinhalten. Grundeinstellung - <literal>a=href,area=href,frame=src,input=src,form=fakeentry</literal> - </simpara> - </listitem> - </itemizedlist> - </para> - <para> - Die Konfigurationseinstellungen von - <link linkend="ini.track-vars"><literal>track_vars</literal></link> - und - <link linkend="ini.register-globals"><literal>register_globals</literal></link> - beeinflussen, wie die Session-Variablen gespeichert und - wiederhergestellt werden. - </para> - - <note> - <para> - Seit PHP 4.0.3 ist - <link linkend="ini.track-vars"><literal>track_vars</literal></link> - immer aktiviert. - </para> - </note> - </section> + &reference.session.ini; <section id="session.resources"> &reftitle.resources; @@ -347,79 +125,89 @@ <varname>$_REQUEST</varname> und so weiter, als globale Variable zur Verfügung. Im Gegensatz zu <varname>$HTTP_SESSION_VARS</varname> ist - <varname>$_SESSION</varname> immer global. Deshalb sollte - <literal>global</literal> nicht für <varname>$_SESSION</varname> - verwendet werden. + <varname>$_SESSION</varname> immer global. Deshalb brauchen Sie + für <varname>$_SESSION</varname> nicht <literal>global</literal> + zu verwenden. Bitte beachten Sie, dass in dieser Dokumentation + nun überall <varname>$_SESSION</varname> verwendet wird. Sie + können <varname>$_SESSION</varname> durch + <varname>$HTTP_SESSION_VARS</varname> ersetzen, wenn Sie + Letzteres bevorzugen. + </para> + <para> + Für die Schlüssel des assoziativen + <varname>$_SESSION</varname>-Arrays gelten die selben + Beschränkungen, wie für die Bezeichnungen von regulären + Variablen in PHP, d.h. sie dürfen nicht mit einer Zahl, sondern + müssen mit einem Buchstaben oder Unterstrich beginnen. Um + weitere Deteils zu erhalten, siehe Abschnitt <link + linkend='language.variables'>Variablen</link>. </para> </note> <para> - Falls - <link linkend="ini.track-vars"><literal>track_vars</literal></link> - aktiviert und - <link linkend="ini.register-globals"><literal>register_globals</literal></link> + Falls <link + linkend="ini.register-globals"><literal>register_globals</literal></link> deaktiviert ist, können nur Bestandteile des globalen - assoziativen Arrays <varname>$HTTP_SESSION_VARS</varname> als + assoziativen Arrays <varname>$_SESSION</varname> als Session-Variablen registriert werden. Wiederhergestellte Session-Variablen stehen nur im Array - <varname>$HTTP_SESSION_VARS</varname> zur Verfügung. - <example> + <varname>$_SESSION</varname> zur Verfügung. + </para> + <para> + Aus Gründen der Verbesserung der Sicherheit und der Lesbarkeit + des Codes wird die Verwendung von <varname>$_SESSION</varname> + (oder <varname>$HTTP_SESSION_VARS</varname> bei PHP 4.0.6 oder + niedriger) empfohlen. Mit <varname>$_SESSION</varname> werden die + Funktionen <function>session_register()</function>, + <function>session_unregister()</function> und + <function>session_is_registered()</function> nicht benötigt. Auf + die Session-Variablen kann wie auf jede normale Variable + zugegriffen werden. + <example> <title> - Registrierung einer Variablen bei aktiviertem - <link linkend="ini.track-vars"><literal>track_vars</literal></link> + Registrierung einer Variablen mit $_SESSION. </title> <programlisting role="php"> <![CDATA[ <?php session_start(); -if (isset($HTTP_SESSION_VARS['zaehler'])) { - $HTTP_SESSION_VARS['zaehler']++; -} -else { - $HTTP_SESSION_VARS['zaehler'] = 0; +// Verwenden Sie bei PHP 4.0.6 oder niedriger $HTTP_SESSION_VARS +if (!isset($_SESSION['zaehler'])) { + $_SESSION['zaehler'] = 0; +} else { + $_SESSION['zaehler']++; } ?> ]]> </programlisting> </example> - </para> - <para> - Aus Gründen der Sicherheit und der Lesbarkeit des Codes wird die - Verwendung von <varname>$_SESSION</varname> (oder - <varname>$HTTP_SESSION_VARS</varname> bei PHP 4.0.6 oder - niedriger) empfohlen. Mit <varname>$_SESSION</varname> oder - <varname>$HTTP_SESSION_VARS</varname> werden die Funktionen - session_register()/session_unregister()/session_is_registered() - nicht benötigt. Der Benutzer kann auf die Session-Variable wie - auf eine normale Variable zugreifen. <example> <title> - Registrierung einer Variablen mit $_SESSION. + Aufheben der Registrierung einer Variablen mit $_SESSION und + deaktiviertem register_globals. </title> <programlisting role="php"> <![CDATA[ <?php session_start(); // Verwenden Sie bei PHP 4.0.6 oder niedriger $HTTP_SESSION_VARS -if (!isset($_SESSION['zaehler'])) { - $_SESSION['zaehler'] = 0; -} else { - $_SESSION['zaehler']++; -} +unset($_SESSION['zaehler']); ?> ]]> </programlisting> </example> <example> <title> - Aufheben der Registrierung einer Variablen mit $_SESSION. + Aufheben der Registrierung einer Variablen mit aktiviertem + register_globals, nachdem sie unter Verwendung von $_SESSION + registriert wurde. </title> <programlisting role="php"> <![CDATA[ <?php session_start(); -// Verwenden Sie bei PHP 4.0.6 oder niedriger $HTTP_SESSION_VARS -unset($_SESSION['zaehler']); +// Ab PHP 4.3, können Sie auch einfach das vorige Beispiel benutzen. +session_unregister('count'); ?> ]]> </programlisting> @@ -428,24 +216,24 @@ <para> Wenn <link linkend="ini.register-globals"><literal>register_globals</literal></link> - aktiviert ist, können alle globalen Variablen als - Session-Variablen registriert werden und die Session-Variablen - werden als entsprechende globale Variablen wiederhergestellt. + aktiviert ist, kann jede globalen Variable als Session-Variable + registriert werden. Beim Neustart einer Session werden diese + Variablen als entsprechende globale Variablen wiederhergestellt. Da PHP wissen muss, welche globalen Variablen als Session-Variablen registriert sind, muss der Benutzer Variablen - mit der Funktion session_register() registrieren, während - <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname> - die Verwendung von session_register() nicht benötigt. + mit der Funktion session_register() registrieren. Sie können das + vermeiden, indem Sie einfach Einträge in + <varname>$_SESSION</varname> setzen. <caution> <para> - Wenn Sie - <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname> - verwenden und <link + Wenn Sie <varname>$_SESSION</varname> verwenden und <link linkend="ini.register-globals"><literal>register_globals</literal></link> deaktivieren, sollten Sie <function>session_register</function>, <function>session_is_registered</function> und - <function>session_unregister</function> nicht verwenden. + <function>session_unregister</function> nicht verwenden, wenn + Ihre Scripte mit PHP 4.2 und niedriger funktionieren sollen. + Sie können diese Funktionen ab 4.3 verwenden. </para> <para> Wenn Sie <link @@ -481,21 +269,25 @@ </example> </para> <para> - Wenn sowohl - <link linkend="ini.track-vars"><literal>track_vars</literal></link> - als auch - <link linkend="ini.register-globals"><literal>register_globals</literal></link> - aktiviert sind, dann referenzieren die globalen Variablen und die - Einträge von - <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname> - für bereits registrierte Variablen den selben Wert. - </para> - <para> - Wenn der Benutzer session_register() verwendet, um eine - Session-Variable zu registrieren, befindet sich diese Variable - nicht vor dem nächsten Laden aus dem Sessionspeicher (d.h. bei - der nächsten Anfrage) im Array von - <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>. + Wenn + <link + linkend="ini.register-globals"><literal>register_globals</literal></link> + aktiviert ist, dann referenzieren die globalen Variablen und die + Einträge von <varname>$_SESSION</varname> für Session-Variablen, + die in vorherigen Instanzen der Session registriert wurden, + automatisch den selben Wert. + </para> + <para> + Wenn Sie darüber hinaus eine neue Session-Variable mittels + <function>session_register()</function> registrieren, + referenzieren der Eintrag im globalen Bereich und der + <varname>$_SESSION</varname>-Eintrag bis zum nächsten + <function>session_start</function> nicht den selben Wert (gilt + nur bis einschließlich PHP 4.2). D.h. eine Änderung an der + globalen Variablen wird nicht vom + <varname>$_SESSION</varname>-Eintrag widergespiegelt. Es ist + unwahrscheinlich, dass das in der Praxis eine Rolle spielt und + wurde in PHP 4.3 korrigiert. </para> </section> @@ -524,14 +316,15 @@ URLs. </para> <para> - Wenn PHP mit - <link - linkend="install.configure.enable-trans-sid"><literal>--enable-trans-sid</literal></link> - kompiliert wurde, kann es dies transparent machen. Wenn Sie diese - Option aktivieren, werden relative URIs automatisch geändert, - sodass sie die Session-ID enthalten. Alternativ können Sie die - Konstante <literal>SID</literal> verwenden, die definiert wird, - falls vom Client keinen passendes Cookie gesendet wurde. + Falls PHP mit <link + linkend="install.configure.enable-trans-sid"> + <literal>--enable-trans-sid</literal></link> kompiliert wurde, + kann es dies transparent machen. Diese Option ist ab PHP 4.2 + immer aktiviert. Wenn Sie diese Option aktivieren, werden + relative URIs automatisch geändert, sodass sie die Session-ID + enthalten. Alternativ können Sie die Konstante + <literal>SID</literal> verwenden, die definiert wird, falls vom + Client keinen passendes Cookie gesendet wurde. <literal>SID</literal> hat entweder die Form <literal>session_name=session_id</literal> oder ist eine leere Zeichenkette.
« previous php.doc.de (#264) next »