<?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 => 'it',
  ),
  'this' => 
  array (
    0 => 'book.session.php',
    1 => 'Sessions',
    2 => 'Session Handling',
  ),
  'up' => 
  array (
    0 => 'refs.basic.session.php',
    1 => 'Estensioni di sessione',
  ),
  'prev' => 
  array (
    0 => 'refs.basic.session.php',
    1 => 'Estensioni di sessione',
  ),
  'next' => 
  array (
    0 => 'session.setup.php',
    1 => 'Installazione/Configurazione',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'en',
    '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">Session Handling</h1>
 

 
 <div id="intro.session" class="preface">
  <h1 class="title">Introduzione</h1>
  <p class="para">
   Session support in PHP consists of a way to preserve certain data
   across subsequent accesses. 
  </p>
  <p class="para">
   A visitor accessing your web site is assigned a unique id, the
   so-called session id. This is either stored in a cookie on the
   user side or is propagated in the URL.
  </p>
  <p class="para">
   The session support allows you to store data between requests in the
   <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> superglobal array. When a visitor accesses
   your site, PHP will check automatically (if <a href="session.configuration.php#ini.session.auto-start" class="link">session.auto_start</a>
   is set to 1) or on your request (explicitly through
   <span class="function"><a href="function.session-start.php" class="function">session_start()</a></span>) whether a specific session
   id has been sent with the request. If this is the case, the prior
   saved environment is recreated.
  </p>
  <div class="caution"><strong class="caution">Attenzione</strong>
   <p class="para">
    If you turn on <a href="session.configuration.php#ini.session.auto-start" class="link">
    session.auto_start</a> then the only way to put objects
    into your sessions is to load its class definition using
    <a href="ini.core.php#ini.auto-prepend-file" class="link">auto_prepend_file</a>
    in which you load the class definition else you will have to
    <span class="function"><a href="function.serialize.php" class="function">serialize()</a></span> your object
    and <span class="function"><a href="function.unserialize.php" class="function">unserialize()</a></span> it
    afterwards.
   </p>
  </div>
  <p class="para">
   <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> (and all registered variables) are serialized
   internally by PHP using the serialization handler specified by the
   <a href="session.configuration.php#ini.session.serialize-handler" class="link">session.serialize_handler</a> ini setting,
   after the request finishes.  Registered variables which are undefined are
   marked as being not defined.  On subsequent accesses, these are not defined
   by the session module unless the user defines them later. 
  </p>
  <div class="warning"><strong class="warning">Avviso</strong>
   <p class="para">
    Because session data is serialized, <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> variables cannot
    be stored in the session.
   </p>
   <p class="simpara">
     The <code class="literal">php</code> and <code class="literal">php_binary</code>
     serialize handlers place restrictions on
     <em>root-level</em> keys in
     <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var>. Nested keys inside arrays or objects
     stored in the session are not subject to these restrictions.
     The following root-level keys are not allowed:
   </p>
   <ul class="itemizedlist">
    <li class="listitem">
     <p class="simpara">
      Numeric keys (for example <code class="literal">$_SESSION[0]</code>).
      Such keys are skipped when the session is written, and a warning
      is emitted.
     </p>
    </li>
    <li class="listitem">
     <p class="simpara">
      String keys that contain <code class="literal">|</code> when using the
      <code class="literal">php</code> serialize handler. Using such a key causes
      session write failure (and a warning as of PHP 8.5.0).
     </p>
    </li>
   </ul>
   <p class="simpara">
    The <code class="literal">php_serialize</code> handler does not have these
    limitations, and may be used when numeric keys or keys containing
    <code class="literal">|</code> must be stored at the root of
    <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var>.
   </p>
  </div>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="para">
    Please note when working with sessions that a record of a session
    is not created until a variable has been registered by adding a new
    key to the <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> superglobal array. This
    holds true regardless of if a session has been started using the
    <span class="function"><a href="function.session-start.php" class="function">session_start()</a></span> function.
   </p>
  </p></blockquote>
 </div>
 

 







 






 







 







 






 







 




 




 




 





<ul class="chunklist chunklist_book"><li><a href="session.setup.php">Installazione/Configurazione</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="session.requirements.php">Requisiti</a></li><li><a href="session.installation.php">Installazione</a></li><li><a href="session.configuration.php">Configurazione di Runtime</a></li></ul></li><li><a href="session.constants.php">Costanti predefinite</a></li><li><a href="session.examples.php">Esempi</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="session.examples.basic.php">Basic usage</a></li><li><a href="session.idpassing.php">Passing the Session ID</a></li><li><a href="session.customhandler.php">Custom Session Handlers</a></li></ul></li><li><a href="session.upload-progress.php">Session Upload Progress</a></li><li><a href="session.security.php">Sessions and Security</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="features.session.security.management.php">Session Management Basics</a></li><li><a href="session.security.ini.php">Securing Session INI Settings</a></li></ul></li><li><a href="ref.session.php">Session Funzioni</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.session-abort.php">session_abort</a> — Discard session array changes and finish session</li><li><a href="function.session-cache-expire.php">session_cache_expire</a> — Ritorna il valore corrente di scadenza della cache</li><li><a href="function.session-cache-limiter.php">session_cache_limiter</a> — Assume o imposta il limitatore di cache corrente</li><li><a href="function.session-commit.php">session_commit</a> — Alias di session_write_close</li><li><a href="function.session-create-id.php">session_create_id</a> — Create new session id</li><li><a href="function.session-decode.php">session_decode</a> — Decodifica i dati di sessione da una stringa</li><li><a href="function.session-destroy.php">session_destroy</a> — Distrugge tutti i dati registrati in una sessione</li><li><a href="function.session-encode.php">session_encode</a> — Codifica i dati della sessione corrente in una stringa</li><li><a href="function.session-gc.php">session_gc</a> — Perform session data garbage collection</li><li><a href="function.session-get-cookie-params.php">session_get_cookie_params</a> — Restituisce i parametri del cookie di sessione</li><li><a href="function.session-id.php">session_id</a> — Assume o imposta l'id di sessione corrente</li><li><a href="function.session-module-name.php">session_module_name</a> — Assume o imposta il corrente modulo di sessione</li><li><a href="function.session-name.php">session_name</a> — Recupera e/o imposta il nome della sessione corrente</li><li><a href="function.session-regenerate-id.php">session_regenerate_id</a> — Update the current session id with a newly generated one</li><li><a href="function.session-register-shutdown.php">session_register_shutdown</a> — Session shutdown function</li><li><a href="function.session-reset.php">session_reset</a> — Re-initialize session array with original values</li><li><a href="function.session-save-path.php">session_save_path</a> — Assume o stabilisce il percorso di salvataggio sessione corrente</li><li><a href="function.session-set-cookie-params.php">session_set_cookie_params</a> — Imposta i parametri del cookie di sessione</li><li><a href="function.session-set-save-handler.php">session_set_save_handler</a> — Imposta le funzioni di archiviazione sessioni a livello utente</li><li><a href="function.session-start.php">session_start</a> — Inizializza i dati di sessione</li><li><a href="function.session-status.php">session_status</a> — Returns the current session status</li><li><a href="function.session-unset.php">session_unset</a> — Libera tutte le variabili di sessione</li><li><a href="function.session-write-close.php">session_write_close</a> — Scrive i dati di sessione e termina la sessione</li></ul></li><li><a href="class.sessionhandler.php">SessionHandler</a> — The SessionHandler class<ul class="chunklist chunklist_book chunklist_children"><li><a href="sessionhandler.close.php">SessionHandler::close</a> — Close the session</li><li><a href="sessionhandler.create-sid.php">SessionHandler::create_sid</a> — Return a new session ID</li><li><a href="sessionhandler.destroy.php">SessionHandler::destroy</a> — Destroy a session</li><li><a href="sessionhandler.gc.php">SessionHandler::gc</a> — Cleanup old sessions</li><li><a href="sessionhandler.open.php">SessionHandler::open</a> — Initialize session</li><li><a href="sessionhandler.read.php">SessionHandler::read</a> — Read session data</li><li><a href="sessionhandler.write.php">SessionHandler::write</a> — Write session data</li></ul></li><li><a href="class.sessionhandlerinterface.php">SessionHandlerInterface</a> — The SessionHandlerInterface class<ul class="chunklist chunklist_book chunklist_children"><li><a href="sessionhandlerinterface.close.php">SessionHandlerInterface::close</a> — Close the session</li><li><a href="sessionhandlerinterface.destroy.php">SessionHandlerInterface::destroy</a> — Destroy a session</li><li><a href="sessionhandlerinterface.gc.php">SessionHandlerInterface::gc</a> — Cleanup old sessions</li><li><a href="sessionhandlerinterface.open.php">SessionHandlerInterface::open</a> — Initialize session</li><li><a href="sessionhandlerinterface.read.php">SessionHandlerInterface::read</a> — Read session data</li><li><a href="sessionhandlerinterface.write.php">SessionHandlerInterface::write</a> — Write session data</li></ul></li><li><a href="class.sessionidinterface.php">SessionIdInterface</a> — The SessionIdInterface interface<ul class="chunklist chunklist_book chunklist_children"><li><a href="sessionidinterface.create-sid.php">SessionIdInterface::create_sid</a> — Create session ID</li></ul></li><li><a href="class.sessionupdatetimestamphandlerinterface.php">SessionUpdateTimestampHandlerInterface</a> — The SessionUpdateTimestampHandlerInterface interface<ul class="chunklist chunklist_book chunklist_children"><li><a href="sessionupdatetimestamphandlerinterface.updatetimestamp.php">SessionUpdateTimestampHandlerInterface::updateTimestamp</a> — Update timestamp</li><li><a href="sessionupdatetimestamphandlerinterface.validateid.php">SessionUpdateTimestampHandlerInterface::validateId</a> — Validate ID</li></ul></li></ul></div><?php manual_footer($setup); ?>