Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 34 additions & 15 deletions reference/session/book.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: ba6a83ca3558574695be5ef0a0e008e4e5f78ddb Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: 211645e4fc10c688b3813dbcce05965a5f95f00e Maintainer: yannick 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" ?>
Expand Down Expand Up @@ -57,24 +55,45 @@
les variables de type <type>resource</type> ne peuvent être stockées
dans une session.
</para>
<para>
Les gestionnaires de sérialisation (<literal>php</literal>
et <literal>php_binary</literal>) héritent des limitations de
register_globals. Aussi, les index numériques ou les index
sous forme de chaînes de caractères contenant des caractères
spéciaux (<literal>|</literal> et <literal>!</literal>) ne
peuvent pas être utilisés. Le fait de les utiliser génèrera des
erreurs en fin de script. <literal>php_serialize</literal>
n'a pas ce genre de limitations.
</para>
<simpara>
Les gestionnaires de sérialisation <literal>php</literal> et
<literal>php_binary</literal> imposent des restrictions sur les clés
de <emphasis>premier niveau</emphasis> de <varname>$_SESSION</varname>.
Les clés imbriquées dans les tableaux ou les objets stockés en session
ne sont pas concernées par ces restrictions.
Les clés de premier niveau suivantes ne sont pas autorisées :
</simpara>
<itemizedlist>
<listitem>
<simpara>
Les clés numériques (par exemple <literal>$_SESSION[0]</literal>).
Ces clés sont ignorées lors de l'écriture de la session, et un
avertissement est émis.
</simpara>
</listitem>
<listitem>
<simpara>
Les clés de type chaîne de caractères qui contiennent <literal>|</literal>
lorsque le gestionnaire de sérialisation <literal>php</literal> est
utilisé. L'utilisation d'une telle clé provoque un échec de l'écriture
de la session (et un avertissement à partir de PHP 8.5.0).
</simpara>
</listitem>
</itemizedlist>
<simpara>
Le gestionnaire <literal>php_serialize</literal> n'a pas ces limitations,
et peut être utilisé lorsque des clés numériques ou des clés contenant
<literal>|</literal> doivent être stockées au premier niveau de
<varname>$_SESSION</varname>.
</simpara>
</warning>
<note>
<para>
Il est à noter que lorsque l'on travaille avec les sessions, un enregistrement
dans la session ne sera pas créé tant que la variable ne sera pas
enregistrée en ajoutant une clé à la variable super-globale
<varname>$_SESSION</varname>. Cela n'est vrai que si l'on a débuté une
session en appelant la fonction <function>session_start</function>.
<varname>$_SESSION</varname>. Cela reste vrai, que la session ait été
démarrée ou non avec la fonction <function>session_start</function>.
</para>
</note>
</preface>
Expand Down
Loading