diff --git a/reference/session/book.xml b/reference/session/book.xml index 5302f27546..69c215c8d1 100644 --- a/reference/session/book.xml +++ b/reference/session/book.xml @@ -1,7 +1,5 @@ - - - + @@ -57,24 +55,45 @@ les variables de type resource ne peuvent être stockées dans une session. - - Les gestionnaires de sérialisation (php - et php_binary) 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 (| et !) ne - peuvent pas être utilisés. Le fait de les utiliser génèrera des - erreurs en fin de script. php_serialize - n'a pas ce genre de limitations. - + + Les gestionnaires de sérialisation php et + php_binary imposent des restrictions sur les clés + de premier niveau de $_SESSION. + 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 : + + + + + Les clés numériques (par exemple $_SESSION[0]). + Ces clés sont ignorées lors de l'écriture de la session, et un + avertissement est émis. + + + + + Les clés de type chaîne de caractères qui contiennent | + lorsque le gestionnaire de sérialisation php 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). + + + + + Le gestionnaire php_serialize n'a pas ces limitations, + et peut être utilisé lorsque des clés numériques ou des clés contenant + | doivent être stockées au premier niveau de + $_SESSION. + 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 - $_SESSION. Cela n'est vrai que si l'on a débuté une - session en appelant la fonction session_start. + $_SESSION. Cela reste vrai, que la session ait été + démarrée ou non avec la fonction session_start.