<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/refs.basic.session.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'book.session.php',
    1 => 'Sessions',
    2 => 'Gestion des sessions',
  ),
  'up' => 
  array (
    0 => 'refs.basic.session.php',
    1 => 'Extensions sur les Sessions',
  ),
  'prev' => 
  array (
    0 => 'refs.basic.session.php',
    1 => 'Extensions sur les Sessions',
  ),
  'next' => 
  array (
    0 => 'session.setup.php',
    1 => 'Installation/Configuration',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/session/book.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/book.session.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="book.session" class="book">
 
 <h1 class="title">Gestion des sessions</h1>
 

 
 <div id="intro.session" class="preface">
  <h1 class="title">Introduction</h1>
  <p class="para">
   Le support des sessions de PHP est un moyen de préserver
   des données entre plusieurs accès.
  </p>
  <p class="para">
   Chaque visiteur accédant à la page web se voit assigner un
   identifiant unique, appelé &quot;identifiant de session&quot;. Il peut
   être stocké soit dans un cookie, soit propagé dans l&#039;URL.
  </p>
  <p class="para">
   Le support des sessions permet de stocker des données
   entre les requêtes dans le tableau superglobal <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var>.
   Lorsqu&#039;un visiteur accède au site, PHP va vérifier automatiquement (si
   <a href="session.configuration.php#ini.session.auto-start" class="link"><strong class="option unknown">session.auto_start
    </strong></a> est activé) ou sur demande (explicitement avec
   <span class="function"><a href="function.session-start.php" class="function">session_start()</a></span>) s&#039;il existe une
   session du même nom. Si c&#039;est le cas, l&#039;environnement
   précédemment sauvé sera recréé.
  </p>
  <div class="caution"><strong class="caution">Attention</strong>
   <p class="para">
    Si l&#039;on active <a href="session.configuration.php#ini.session.auto-start" class="link">
    session.auto_start</a> alors le seul moyen de mettre des objets
    en session est de charger les définitions de classe avec
    <a href="ini.core.php#ini.auto-prepend-file" class="link">auto_prepend_file</a>
    dans lequel on charge les définitions dont on a besoin,
    ou bien il faudra utiliser <span class="function"><a href="function.serialize.php" class="function">serialize()</a></span>
    sur l&#039;objet, et <span class="function"><a href="function.unserialize.php" class="function">unserialize()</a></span>
    pour le récupérer.
   </p>
  </div>
  <p class="para">
   La variable <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> (et toutes les variables
   enregistrées) sont sérialisées en interne par PHP en utilisant le
   gestionnaire de sérialisation spécifié par l&#039;option de configuration
   <a href="session.configuration.php#ini.session.serialize-handler" class="link">session.serialize_handler</a>,
   après l&#039;exécution du script PHP. Les variables qui sont indéfinies sont marquées
   comme telles. Lors des accès ultérieurs, elles ne seront pas
   définies, jusqu&#039;à ce que l&#039;utilisateur le fasse.
  </p>
  <div class="warning"><strong class="warning">Avertissement</strong>
   <p class="para">
    En raison du fait que les données de session sont sérialisées,
    les variables de type <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> ne peuvent être stockées
    dans une session.
   </p>
   <p class="para">
    Les gestionnaires de sérialisation (<code class="literal">php</code>
    et <code class="literal">php_binary</code>) 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 (<code class="literal">|</code> et <code class="literal">!</code>) ne
    peuvent pas être utilisés. Le fait de les utiliser génèrera des
    erreurs en fin de script. <code class="literal">php_serialize</code>
    n&#039;a pas ce genre de limitations.
   </p>
  </div>
  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <p class="para">
    Il est à noter que lorsque l&#039;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
    <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var>. Cela n&#039;est vrai que si l&#039;on a débuté une
    session en appelant la fonction <span class="function"><a href="function.session-start.php" class="function">session_start()</a></span>.
   </p>
  </p></blockquote>
 </div>
 

 







 

 









 










 









 









 









 





 






 






 







<ul class="chunklist chunklist_book"><li><a href="session.setup.php">Installation/Configuration</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="session.requirements.php">Pr&eacute;-requis</a></li><li><a href="session.installation.php">Installation</a></li><li><a href="session.configuration.php">Configuration &agrave; l'ex&eacute;cution</a></li></ul></li><li><a href="session.constants.php">Constantes pr&eacute;-d&eacute;finies</a></li><li><a href="session.examples.php">Exemples</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="session.examples.basic.php">Utilisation simple</a></li><li><a href="session.idpassing.php">Passer l'identifiant de session (session ID)</a></li><li><a href="session.customhandler.php">Gestion personnalis&eacute;e des sessions</a></li></ul></li><li><a href="session.upload-progress.php">Progression d'un t&eacute;l&eacute;versement (upload) en session</a></li><li><a href="session.security.php">Sessions et S&eacute;curit&eacute;</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="features.session.security.management.php">Gestion basique des sessions</a></li><li><a href="session.security.ini.php">S&eacute;curisation des configurations INI de session</a></li></ul></li><li><a href="ref.session.php">Fonctions Session</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.session-abort.php">session_abort</a> — Abandonne les changements sur le tableau de session et termine la session</li><li><a href="function.session-cache-expire.php">session_cache_expire</a> — R&eacute;cup&egrave;re et/ou d&eacute;finit le d&eacute;lai d'expiration du cache</li><li><a href="function.session-cache-limiter.php">session_cache_limiter</a> — Lit et/ou modifie le limiteur de cache de session</li><li><a href="function.session-commit.php">session_commit</a> — Alias de session_write_close</li><li><a href="function.session-create-id.php">session_create_id</a> — Cr&eacute;er un nouvel ID de session</li><li><a href="function.session-decode.php">session_decode</a> — D&eacute;code les donn&eacute;es encod&eacute;es de session</li><li><a href="function.session-destroy.php">session_destroy</a> — D&eacute;truit une session</li><li><a href="function.session-encode.php">session_encode</a> — Encode les donn&eacute;es de session</li><li><a href="function.session-gc.php">session_gc</a> — Ex&eacute;cute le ramasse miette des donn&eacute;es de session</li><li><a href="function.session-get-cookie-params.php">session_get_cookie_params</a> — Lit la configuration du cookie de session</li><li><a href="function.session-id.php">session_id</a> — Lit et/ou modifie l'identifiant courant de session</li><li><a href="function.session-module-name.php">session_module_name</a> — Lit et/ou modifie le module de session courant</li><li><a href="function.session-name.php">session_name</a> — Lit et/ou modifie le nom de la session</li><li><a href="function.session-regenerate-id.php">session_regenerate_id</a> — Remplace l'identifiant de session courant par un nouveau</li><li><a href="function.session-register-shutdown.php">session_register_shutdown</a> — Fonction de fermeture de session</li><li><a href="function.session-reset.php">session_reset</a> — R&eacute;initialise le tableau de session avec les valeurs originales</li><li><a href="function.session-save-path.php">session_save_path</a> — Lit et/ou modifie le chemin de sauvegarde des sessions</li><li><a href="function.session-set-cookie-params.php">session_set_cookie_params</a> — Modifie les param&egrave;tres du cookie de session</li><li><a href="function.session-set-save-handler.php">session_set_save_handler</a> — Configure les fonctions de stockage de sessions</li><li><a href="function.session-start.php">session_start</a> — D&eacute;marre une nouvelle session ou reprend une session existante</li><li><a href="function.session-status.php">session_status</a> — D&eacute;termine le statut de la session courante</li><li><a href="function.session-unset.php">session_unset</a> — D&eacute;truit toutes les variables d'une session</li><li><a href="function.session-write-close.php">session_write_close</a> — &Eacute;crit les donn&eacute;es de session et ferme la session</li></ul></li><li><a href="class.sessionhandler.php">SessionHandler</a> — La classe SessionHandler<ul class="chunklist chunklist_book chunklist_children"><li><a href="sessionhandler.close.php">SessionHandler::close</a> — Ferme la session</li><li><a href="sessionhandler.create-sid.php">SessionHandler::create_sid</a> — Retourne un nouvel ID de session</li><li><a href="sessionhandler.destroy.php">SessionHandler::destroy</a> — D&eacute;truit une session</li><li><a href="sessionhandler.gc.php">SessionHandler::gc</a> — Nettoie les anciennes sessions</li><li><a href="sessionhandler.open.php">SessionHandler::open</a> — Initialise une session</li><li><a href="sessionhandler.read.php">SessionHandler::read</a> — Lit les donn&eacute;es de session</li><li><a href="sessionhandler.write.php">SessionHandler::write</a> — &Eacute;crit des donn&eacute;es dans la session</li></ul></li><li><a href="class.sessionhandlerinterface.php">SessionHandlerInterface</a> — L'interface SessionHandlerInterface<ul class="chunklist chunklist_book chunklist_children"><li><a href="sessionhandlerinterface.close.php">SessionHandlerInterface::close</a> — Ferme la session</li><li><a href="sessionhandlerinterface.destroy.php">SessionHandlerInterface::destroy</a> — D&eacute;truit une session</li><li><a href="sessionhandlerinterface.gc.php">SessionHandlerInterface::gc</a> — Nettoie les vieilles sessions</li><li><a href="sessionhandlerinterface.open.php">SessionHandlerInterface::open</a> — Initialise la session</li><li><a href="sessionhandlerinterface.read.php">SessionHandlerInterface::read</a> — Lit les donn&eacute;es de session</li><li><a href="sessionhandlerinterface.write.php">SessionHandlerInterface::write</a> — &Eacute;crit les donn&eacute;es de session</li></ul></li><li><a href="class.sessionidinterface.php">SessionIdInterface</a> — L'interface SessionIdInterface<ul class="chunklist chunklist_book chunklist_children"><li><a href="sessionidinterface.create-sid.php">SessionIdInterface::create_sid</a> — Cr&eacute;er un ID de session</li></ul></li><li><a href="class.sessionupdatetimestamphandlerinterface.php">SessionUpdateTimestampHandlerInterface</a> — L'interface SessionUpdateTimestampHandlerInterface<ul class="chunklist chunklist_book chunklist_children"><li><a href="sessionupdatetimestamphandlerinterface.updatetimestamp.php">SessionUpdateTimestampHandlerInterface::updateTimestamp</a> — Mettre &agrave; jour l'horodatage</li><li><a href="sessionupdatetimestamphandlerinterface.validateid.php">SessionUpdateTimestampHandlerInterface::validateId</a> — Valider l'ID</li></ul></li></ul></div><?php manual_footer($setup); ?>