cortesi         Mon Apr  1 11:57:40 2002 EDT

  Modified files:              
    /phpdoc/it/functions        session.xml 
  Log:
  first work of a new translator: penzo
  
Index: phpdoc/it/functions/session.xml
diff -u /dev/null phpdoc/it/functions/session.xml:1.10
--- /dev/null   Mon Apr  1 11:57:40 2002
+++ phpdoc/it/functions/session.xml     Mon Apr  1 11:57:40 2002
@@ -0,0 +1,1265 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- EN-Revision: 1.83 Maintainer: penzo Status: ready -->
+ <reference id="ref.session">
+  <title>Funzioni di gestione della sessione</title>
+  <titleabbrev>Sessioni</titleabbrev>
+       
+  <partintro>
+   <para>
+    Il supporto delle sessioni in PHP consiste nel mantenere certi dati
+    attraverso accessi successivi.Questo vi dà la capacità di costruire 
+    applicazioni più consone alle vostre esigenze e di accrescere le qualità 
+    del vostro sito web.
+   </para>
+   <para>
+    Se avete dimestichezza con la gestione delle sessioni di PHPLIB, noterete
+    che alcuni concetti sono simili al supporto dele sessioni in PHP.
+   </para>
+   <para>
+    Al visitatore che accede al vostro sito web viene assegnato un id unico,
+    il cosidetto id di sessione.Questo viene registrato in un cookie sul 
+    lato utente o è propagato tramite l'URL.
+   </para>
+   <para>
+    Il supporto delle sessioni vi permette di registrare numeri arbitrari di 
+    variabili che vengono preservate secondo richiesta.Quando un visitatore 
+    accede al vostro sito, PHP controllerà automaticamente (se session.auto_start è
+    settato a 1) o su vostra richiesta (esplicitamente tramite 
+    <function>session_start</function> o implicitamente tramite
+    <function>session_register</function>) se uno specifico id di 
+    sessione sia stato inviato con la richiesta.In questo caso , il 
+    precedente ambiente salvato viene ricreato.
+   </para>
+   <para>
+    Tutte le variabili registrate vengono serializzate dopo che la richiesta
+    è finita.Le variabili registrate che non sono definite vengono marcate
+    come indefinite. All'accesso successivo, queste non vengono definite 
+    dal modulo di sessione fino a quando l'utente non le definisce più tardi.
+   </para>
+   <para>
+    La configurazione di <link
+    linkend="ini.track-vars"><literal>track_vars</literal></link> e
+    <link
+    linkend="ini.register-globals"><literal>register_globals</literal></link>
+    influenza come le variabili di sessione vengono memorizzate una e più volte.
+   </para>
+
+   <note>
+    <para>
+     In PHP 4.0.3, <link
+     linkend="ini.track-vars"><literal>track_vars</literal></link> è sempre
+     attiva.
+    </para>
+   </note>
+   <note>
+    <para>
+     In PHP 4.1.0, <varname>$_SESSION</varname> è disponibile come variabile
+     globale proprio come <varname>$_POST</varname>,
+     <varname>$_GET</varname>, <varname>$_REQUEST</varname> e così via.
+     <varname>$_SESSION</varname> non è sempre globale come
+     <varname>$HTTP_SESSION_VARS</varname>. Per questo motivo, il termine
+     <literal>global</literal> non dovrebbe essere usato per
+     <varname>$_SESSION</varname>.
+    </para>
+   </note>
+
+   <para>
+    Se <link
+    linkend="ini.track-vars"><literal>track_vars</literal></link> è 
+    attiva e <link
+    linkend="ini.register-globals"><literal>register_globals</literal></link>
+    non è attiva, solo i membri dell'array associativo globale
+    <varname>$HTTP_SESSION_VARS</varname> possono essere registrati come 
+    variabili di sessione.
+    Le variabili di sessione ripristinate saranno disponibili
+    nell'array <varname>$HTTP_SESSION_VARS</varname>.
+  <example>
+     <title>
+      Registrare una variabile con <link
+      linkend="ini.track-vars"><literal>track_vars</literal></link>
+      attiva
+     </title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+if (isset($HTTP_SESSION_VARS['count'])) {
+   $HTTP_SESSION_VARS['count']++;
+}
+else {
+   $HTTP_SESSION_VARS['count'] = 0;
+}
+?>
+]]>
+     </programlisting>
+    </example>
+   </para>
+   <para>
+    L'uso di <varname>$_SESSION</varname> (o
+    <varname>$HTTP_SESSION_VARS</varname> con PHP 4.0.6 o precedente) è
+    raccomandato per sicurezza e leegibilità del codice.Con
+    <varname>$_SESSION</varname> o
+    <varname>$HTTP_SESSION_VARS</varname>, non c'è bisogno di usare le funzioni
+    session_register()/session_unregister()/session_is_registered().
+    Gli utenti possono accedere alla variabile di sessione come a una 
+    variabile normale.
+    <example>
+     <title>
+      Registrare una variabile con $_SESSION.
+     </title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
+if (!isset($_SESSION['count'])) {
+    $_SESSION['count'] = 0;
+} else {
+    $_SESSION['count']++;
+}
+?>
+]]>
+     </programlisting>
+    </example>
+    <example>
+     <title>
+      Resettare una variabile con $_SESSION.
+     </title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
+unset($_SESSION['count']);
+
+?>
+]]>
+     </programlisting>
+    </example>
+   </para>
+   <para>
+    Se <link
+    linkend="ini.register-globals"><literal>register_globals</literal></link>
+    è attiva, allora tutte le variabili globali possono essere registrate
+    come variabili di sessione e le variabili di sessione saranno ripristinate
+    in corrispondenza delle variabili globali. 
+    Dal momento che PHP ha bisogno di sapere quali variabili globali sono
+    registrate come variabili di sessione , gli utenti devono registrare le
+    variabili con la funzione session_register() mentre
+    <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>
+    non ha bisogno di usare session_register().
+    <caution>
+     <para>
+      Se state usando
+      <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>
+      e <link
+      linkend="ini.register-globals"><literal>register_globals</literal></link> non
+      è attiva, non usate <function>session_register</function>,
+      <function>session_is_registered</function> e
+      <function>session_unregister</function>.
+     </para>
+     <para>
+      Se attivate <link
+       linkend="ini.register-globals"><literal>register_globals</literal></link>,
+       <function>session_unregister</function> dovrebbe essere usata dal momento in 
+       cui le variabili di sessione vengono registrate come variabili globali
+       quando i dati di sessione vengono deserializzati.
+       Disattivare <link
+       linkend="ini.register-globals"><literal>register_globals</literal></link>
+       è raccomandato sia per motivi di sicurezza che di prestazione.
+     </para>
+    </caution>
+    <example>
+     <title>
+      Registrare una variabile con <link
+      linkend="ini.register-globals"><literal>register_globals</literal></link>
+      attiva
+     </title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+if (!session_is_registered('count')) {
+    session_register("count");
+    $count = 0;
+}
+else {
+    $count++;
+}
+?>
+]]>
+     </programlisting>
+    </example>
+   </para>
+   <para>
+    Se entrambe <link
+    linkend="ini.track-vars"><literal>track_vars</literal></link> e
+    <link
+    linkend="ini.register-globals"><literal>register_globals</literal></link>
+    sono attivate, allora le variabili globali e le entrate di
+    <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>
+    riporteranno lo stesso valore per variabili già registrate.
+   </para>
+   <para>
+    Se l'utente usa session_register() pre registrare una variabile di sessione,
+    <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>
+    non avranno questa variabile nell'array fino a che non sarà caricata
+    dall'archivio di sessione.(i.e. fino alla prossima richiesta)
+   </para>
+   <para>
+    Ci sono due metodi per propagare l'id di sessione:
+    <itemizedlist>
+     <listitem>
+      <simpara>
+       I Cookies
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       Un parametro dell'URL
+      </simpara>
+     </listitem>
+    </itemizedlist>
+   </para>
+   <para>
+    Il modulo di sessione supporta entrambi i metodi. I cookies sono ottimi,
+    ma dal momento che possono non essere a disposizione (i clients non sono 
+    costretti ad accettarli ), non possiamo dipendere da questi.
+    Il secondo metodo incorpora l'id di sessione direttamente negli URL.
+   </para>
+   <para>
+    PHP ha la capacità di farlo in modo trasparente quando compilato con
+    <link linkend="install.configure.enable-trans-sid">
+    <literal>--enable-trans-sid</literal></link>. Se attivate questa opzione,
+    gli URL relativi saranno modificati per contenere l'id di sessione
+    automaticamente. In alternativa, potete usare la costante
+    Alternatively, you can use the constant
+    <literal>SID</literal> che è definita, se il client non ha mandato
+    il cookie appropriato.  <literal>SID</literal> può avere la forma di
+     <literal>session_name=session_id</literal> o può essere una stringa vuota.
+   </para>
+   <para>
+    L'esempio seguente dimostra come registrare una variabile e come collegare
+    una pagina all'altra correttamente usando SID.
+    <example>
+     <title>Contare il numero di accessi di un singolo utente</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+if (!session_is_registered('count')) {
+    session_register('count');
+    $count = 1;
+}
+else {
+    $count++;
+}
+?>
+
+Salve visitatore , hai visitato questa pagina <?php echo $count; ?> times.<p>;
+
+<?php
+# il <?php echo SID?> (<?=SID?> può essere usato se short tag è attivo) 
+# è necessario per preservare l'id di sessione
+# nel caso incui l'utente abbia disattivato i cookies
+?>
+
+Per continuare, <A HREF="nextpage.php?<?php echo SID?>">clicca qui</A>
+]]>
+     </programlisting>
+    </example>
+   </para>
+   <para>
+    Il <literal>&lt;?=SID?&gt;</literal> non è necessario, se
+    <link linkend="install.configure.enable-trans-sid">
+    <literal>--enable-trans-sid</literal></link> è stato usato per compilare PHP.
+   </para>
+   <note>
+    <para>
+     Gli URL non relativi si presume che puntino a siti esterni e quindi
+     non hanno il SID , perchè sarebbe rischioso per la sicurezza propagare
+     il SID a un altro server.
+    </para>
+   </note>
+   <para>
+    Per implementare l'archiviazione in database , o qualsiasi altro metodo di 
+archiviazione,
+    avete bisogno di usare <function>session_set_save_handler</function> per
+    creare un set di funzioni di archiviazione a livello utente.
+   </para>
+   <para>
+    Il sistema di gestione delle sessioni supporta un numero di opzioni di 
+configurazione
+    che potete posizionare nel vostro file php.ini. Ne daremo una breve
+    spiegazione.
+    <itemizedlist>
+     <listitem>
+      <simpara>
+       <literal>session.save_handler</literal> definisce il nome dell'handler
+       che è usato per archiviare e rilasciare i dati associati a una sessione.
+       Di default è
+       <literal>files</literal>.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.save_path</literal> definisce l'argomento che
+       è passato all'handler di sessione. Se scegliete handler files di default ,
+       questo è il percorso dove i files vengono creati.
+       Di default è <literal>/tmp</literal>. Se la profondità del percorso
+       <literal>session.save_path</literal> è più di 2,
+       l'accumulo (gc) non sarà effettuato.
+      </simpara>
+      <warning>
+       <para>
+        Se lasciate questo settato a directory leggibile da tutti , come
+        If you leave this set to a world-readable directory, such as
+        <filename>/tmp</filename> (il default), altri utenti sul
+        potrebbero essere in grado di dirottare le sessioni prendendo la
+        lista dei files in quella directory.
+       </para>
+      </warning>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.name</literal> specifica il nome della sessione
+       che è usata come nome del cookie. Dovrebbe contenere solo caratteri
+       alfanumerici. Di default è
+       <literal>PHPSESSID</literal>.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.auto_start</literal> specifica se il modulo di sessione
+       inizia una sessione automaticamente su richiesta iniziale.
+       Di default è <literal>0</literal> (disattivata).
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.cookie_lifetime</literal> specifica il tempo di vita insecondi
+       del cookie che viene mandato al browser. Il valore 0 significa
+       "fino a che il browser viene chiuso". Di default è
+       <literal>0</literal>.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.serialize_handler</literal> definisce il nome
+       dell'handler che è usato per serializzare/deserializzare
+       i dati. Al momento, un formato interno di PHP(nome
+       <literal>php</literal>) e WDDX è supportato (nome
+       <literal>wddx</literal>). WDDX è solo disponibile, se PHP è
+       compilato con <link linkend="ref.wddx">WDDX
+       support</link>. Il defailt è <literal>php</literal>.
+       </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.gc_probability</literal> specifica la
+       probabilità , in percentuale ,che la routine gc (garbage collection) 
+       sia cominciata ad ogni richiesta in percentuale. Di default è 
+<literal>1</literal>.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.gc_maxlifetime</literal> specifica il numero
+       di secondi dopo i quali i dati saranno considerati 'spazzatura' e 
+       cancellati. 
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.referer_check</literal> contiene la sottostringa 
+       con cui volete controllare ogni HTTP referer. Se il referer è stato mandato 
+dal client
+       e la sottostringa non è stata trovata, l'id incorporato nella sessione verrà 
+       marcato come non valido. Il default è una stringa vuota.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.entropy_file</literal> dà un percorso a
+       una risorsa esterna (file) che sarà usata come una addizionale 
+       sorgente entropica nella crazione dell'id di sessione. Esempi sono
+       <literal>/dev/random</literal> o
+       <literal>/dev/urandom</literal> che sono disponibili sulla maggior parte dei
+       sistemi Unix.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.entropy_length</literal> specifica il numero
+       di bytes che saranno letti dal file specificato
+       sopra. Di default è <literal>0</literal> (disattivato).
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.use_cookies</literal> specifica se il
+       modulo userà i cookies per archiviare l'id di sessione sul lato
+       client. Di default è <literal>1</literal> (attivo).
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.cookie_path</literal> specifica il percorso da stabilire
+       in session_cookie. Di default è <literal>/</literal>.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.cookie_domain</literal> specifica il dominio 
+       settato in session_cookie. Di default è niente. 
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.cache_limiter</literal> specifica il metodo di controllo
+       della cache da usare per le pagine di sessione
+       (none/nocache/private/private_no_expire/public). Di default è
+       <literal>nocache</literal>.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.cache_expire</literal> specifica il tempo-di-vita ,
+        in minuti , delle pagine nella cache, questo non ha effetto sul
+        limitatore nocache. Di default è <literal>180</literal>.
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>session.use_trans_sid</literal> specifica se il supporto sid 
+trasparente
+        è attivato o no se attivato compilandolo con 
+        <link linkend="install.configure.enable-trans-sid">
+       <literal>--enable-trans-sid</literal></link>.
+       Di default è <literal>1</literal> (attivo).
+      </simpara>
+     </listitem>
+     <listitem>
+      <simpara>
+       <literal>url_rewriter.tags</literal> specifica quali html tags sono
+       riscritti per includere l'id di sessione se il supporto sid trasparente è 
+attivato.
+       Di default è 
+<literal>a=href,area=href,frame=src,input=src,form=fakeentry</literal>
+      </simpara>
+     </listitem>
+    </itemizedlist>
+    <note>
+     <para>
+      L'handling di sessione è stato aggiunto in PHP 4.0. 
+     </para>
+    </note>
+   </para>
+  </partintro>
+
+  <refentry id="function.session-start">
+   <refnamediv>
+    <refname>session_start</refname>
+    <refpurpose>Inizializza i dati di sessione</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>bool</type><methodname>session_start</methodname>
+      <void/>
+     </methodsynopsis>
+    <simpara>
+     <function>session_start</function> creauna sessione (o riprende
+     quella corrente basata sull'id di sessione che viene passato attraverso
+     una variabile GET o un cookie.
+    </simpara>
+    <simpara>
+     Se volete usare usare una sessione con un nome, dovete chiamare
+     <function>session_name</function> prima di
+     <function>session_start</function>.
+    </simpara>
+    <simpara>
+     Questa funzione ritorna sempre &true;.
+    </simpara>
+    <note>
+     <para>
+      Se state usando una sessione basata sui cookie, dovete chiamare
+      <function>session_start</function> prima di qualsiasi altro output al
+      browser.
+     </para>
+    </note>
+    <simpara>
+     <function>session_start</function> registrerà un handler interno di output
+     per riscrivere l'URL quando <literal>trans-sid</literal> è attivato.
+     Se l'utente usa <literal>ob_gzhandler</literal> o come 
+     con <function>ob_start</function>, l'ordine dell'handler di output
+     è importante per un giusto output. Per esempio, l'utente deve registrare
+     <literal>ob_gzhandler</literal> prima che la sessione cominci.
+    </simpara>
+    <note>
+     <simpara>
+      L'uso di <literal>zlib.output_compression</literal> è raccomandato
+      più che di <literal>ob_gzhandler</literal>
+     </simpara>
+    </note>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-destroy">
+   <refnamediv>
+    <refname>session_destroy</refname>
+    <refpurpose>Distrugge tutti i dati registrati in una sessione</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>bool</type><methodname>session_destroy</methodname>
+      <void/>
+     </methodsynopsis>
+    <simpara>
+     <function>session_destroy</function> distrugge tutti i dati
+     associati alla sessione corrente. Non desetta nessuna delle
+     variabili globali associate alla sessione o desetta il cookie di
+     sessione.
+    </simpara>
+    <simpara>
+     Questa funzione ritorna &true; in caso di successo e 
+     &false; in caso di fallimento nel distruggere
+     i dati di sessione.
+    </simpara>
+    <para>
+     <example>
+      <title>Distruggere una sessione</title>
+      <programlisting role="php">
+<![CDATA[
+<?php
+
+// Inizializza la sessione.
+// Se state usando session_name("qualcosa"), non dimenticatevelo adesso!
+session_start();
+// Desetta tutte le variabili di sessione.
+session_unset();
+// Infine , distrugge la sessione.
+session_destroy();
+
+?>
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <para>
+     <example>
+      <title>Distruggere una sessione con $_SESSION</title>
+      <programlisting role="php">
+<![CDATA[
+<?php
+
+// Inizializza la sessione.
+// Se state usando session_name("qualcosa"), non dimenticatevelo adesso!
+session_start();
+// Desetta tutte le variabili di sessione.
+$_SESSION = array();
+// Infine distrugge la sessione.
+session_destroy();
+
+?>
+]]>
+      </programlisting>
+     </example>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-name">
+   <refnamediv>
+    <refname>session_name</refname>
+    <refpurpose>Dà e/o stabilisce il nome della sessione corrente</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>string</type><methodname>session_name</methodname>
+      <methodparam 
+choice="opt"><type>string</type><parameter>name</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     <function>session_name</function> ritorna il nome della sessione 
+     corrente. Se <parameter>name</parameter> è specificato, il nome della
+     sessione corrente viene cambiato al suo valore.
+    </para>
+    <para>
+     Il nome della sessione riporta l'id nei coookies e negli URl.
+     Dovrebbe contenere solo caratteri alfanumerici; dovrebbe
+     essere corto e descrittivo (i.e. per utenti con l'avviso di cookie
+     attivo). Il nome di sessione è resettato al valore di default
+     archiviato in <literal>session.name</literal> quando avviene la richiesta 
+iniziale.
+     Tuttavia, avete bisogno di chiamare <function>session_name</function>
+     per ogni richiesta (e prima vengono chiamate <function>session_start</function>
+     o <function>session_register</function>).
+    </para>
+    <example>
+     <title><function>session_name</function> esempi</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+
+// imposta il nome di sessione a WebsiteID
+
+$previous_name = session_name("WebsiteID");
+
+echo "Il precedente nome di sessione è $previous_name<p>";
+?>
+]]>
+     </programlisting>
+    </example>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-module-name">
+   <refnamediv>
+    <refname>session_module_name</refname>
+    <refpurpose>Assume o imposta il corrente modulo di sessione</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>string</type><methodname>session_module_name</methodname>
+      <methodparam 
+choice="opt"><type>string</type><parameter>module</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     <function>session_module_name</function> restituisce il nome del corrente 
+     modulo di sessione. Se <parameter>module</parameter> è
+     specificato, sarà invece usato quel modulo.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-save-path">
+   <refnamediv>
+    <refname>session_save_path</refname>
+    <refpurpose>Assume o stabilisce il percorso di salvataggio sessione 
+corrente</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>string</type><methodname>session_save_path</methodname>
+      <methodparam 
+choice="opt"><type>string</type><parameter>path</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     <function>session_save_path</function> restituisce il percorso della directory
+     corrente usata per salvare i dati di sessione. Se <parameter>path</parameter>
+     è specificato, il percorso in quale i dati vengono salvati verrà cambiata.
+     <note>
+      <para>
+       Su alcuni sistemi operativi, potreste voler specificare un percorso su un
+       filesystem che gestisce molti piccoli files in modo efficiente. Per
+       esempio, su Linux, reiserfs potrebbe garantire una migliore prestazione
+       di ext2fs.
+      </para>
+     </note>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-id">
+   <refnamediv>
+    <refname>session_id</refname>
+    <refpurpose>Assume o imposta l'id di sessione corrente</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>string</type><methodname>session_id</methodname>
+      <methodparam 
+choice="opt"><type>string</type><parameter>id</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     <function>session_id</function> restituisce l'id di sessione per
+     la sessione corrente. Se <parameter>id</parameter> è specificato, sostituirà
+     l'id di sessione corrente.
+    </para>
+    <para>
+     La costante <systemitem>SID</systemitem> può essere usata anche per
+     fornire nome e id correnti di sessione come una stringa fatta in modo che 
+     si possa aggiungere agli Url.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-register">
+   <refnamediv>
+    <refname>session_register</refname>
+    <refpurpose>
+     Registra una o più variabili con la sessione corrente
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>bool</type><methodname>session_register</methodname>
+      <methodparam><type>mixed</type><parameter>name</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     <function>session_register</function> accetta un numero di argomenti 
+     variabile, ognuno dei quali può sia essere una stringa contenente il nome di
+     una variabile o un array che contiene i nomi delle variabili o altri arrays.
+     Per ogni nome, <function>session_register</function> registra la variabile 
+     globale con quel nome nella sessione corrente.
+    </para>
+    <caution>
+     <para>
+      Questo registra un variabile <emphasis>global</emphasis>. Se volete
+      registrare una variabile di sessione interna a una funzione, avete bisogno di 
+assicurarvi
+      di farla globale usando <function>global</function> o usate gli arrays di 
+sessione
+      come scritto sotto.
+     </para>
+    </caution>
+    <caution>
+     <para>
+      Se state usando
+      <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>,
+      non usate <function>session_register</function>,
+      <function>session_is_registered</function> e
+      <function>session_unregister</function>.
+     </para>
+    </caution>
+    <para>
+     Questa funzione restituisce &true; quando tutte le variabili sono registrate
+     con successo nella sessione.
+    </para>
+    <para>
+     Se <function>session_start</function> non è stata chiamata prima che questa 
+funzione
+     venga chiamata, avverrà una chiamata imlicita senza parametri 
+     a <function>session_start</function>.
+    </para>
+    <para>
+     Potete anche creare una variabile di sessione semplicemente impostando
+     l'appropriato membro di <varname>$HTTP_SESSION_VARS</varname>
+     o <varname>$_SESSION</varname> (PHP >= 4.1.0) array.
+     <informalexample>
+      <programlisting role="php">
+<![CDATA[
+$barney = "Una grande torta fiammeggiante.";
+session_register("barney");
+
+$HTTP_SESSION_VARS["zim"] = "Mars attack.";
+
+# the auto-global $_SESSION array was introduced in PHP 4.1.0
+$_SESSION["spongebob"] = "Ha i pantaloni a quadri.";
+]]>
+      </programlisting>
+     </informalexample>
+    </para>
+    <note>
+     <para>
+      Non è possibile registrare risorse variabili in una sessione.
+      Per esempio, non potete creare una connessione a un database e 
+      archiviare l'id della connessione come una variabile di sessione
+      e aspettarvi che la connessione sia ancora valida la prossima volta
+      che la sessione viene riastabilita. Le funzioni PHP che restituiscono
+      una risorsa sono identificate avendo un tipo di restituzione 
+<literal>resource</literal>
+      nelle loro definizioni di funzione.  Una lista di funzioni che restituisce
+      risorse è disponibile nell'appendice <link linkend="resource">resource 
+types</link>.
+     </para>
+     <para>
+      Se viene usata <varname>$_SESSION</varname> (o
+      <varname>$HTTP_SESSION_VARS</varname> per PHP 4.0.6 or inferiore),
+      assegna la variabile a
+      <varname>$_SESSION</varname>. i.e. $_SESSION['var'] = 'ABC';
+     </para>
+    </note>
+    <para>
+     Vedere anche <function>session_is_registered</function> e
+     <function>session_unregister</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-unregister">
+   <refnamediv>
+    <refname>session_unregister</refname>
+    <refpurpose>
+     Deregistra una variabile dalla sessione corrente
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>bool</type><methodname>session_unregister</methodname>
+      <methodparam><type>string</type><parameter>name</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     <function>session_unregister</function> deregistra (dimentica)
+     la variabile globale con nome <parameter>name</parameter> dalla 
+     sessione corrente.
+    </para>
+    <para>
+     Questa funzione restituisce &true; quando la variabile viene deregistrata
+     con successo dalla sessione.
+    </para>
+    <note>
+     <para>
+      Se viene usata <varname>$_SESSION</varname> (o
+      <varname>$HTTP_SESSION_VARS</varname> per PHP 4.0.6 o inferiore),
+      usate <function>unset</function> per deregistrare una variabile 
+      di sessione.
+     </para>
+    </note>
+    <caution>
+     <para>
+      Questa funzione non deimposta la corrispondente variabile globale per
+      <parameter>name</parameter>, impedisce solo che la variabile venga
+      salvata come parte della sessione. Dovete chiamare <function>unset</function>
+      per rimuovere la variabile globale corrispondente.
+     </para>
+    </caution>
+    <caution>
+     <para>
+      Se state usando
+      <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>,
+      non usate <function>session_register</function>,
+      <function>session_is_registered</function> e
+      <function>session_unregister</function>.
+     </para>
+    </caution>
+   </refsect1>
+  </refentry>
+  
+  <refentry id="function.session-unset">
+   <refnamediv>
+    <refname>session_unset</refname>
+    <refpurpose>
+     Libera tutte le variabili di sessione
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>void</type><methodname>session_unset</methodname>
+      <void/>
+     </methodsynopsis>
+    <para>
+     La funzione <function>session_unset</function> libera tutte le variabili di 
+sessione
+     correntemente registrate.
+    </para>
+    <note>
+     <para>
+      Se è usata <varname>$_SESSION</varname> (o
+      <varname>$HTTP_SESSION_VARS</varname> per PHP 4.0.6 o inferiore) è, 
+      usate <function>unset</function> per deregistrare una variabile di
+      sessione. i.e. $_SESSION = array();
+     </para>
+    </note>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-is-registered">
+   <refnamediv>
+    <refname>session_is_registered</refname>
+    <refpurpose>
+     Scopre se una variabile è registrata nella sessione
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>bool</type><methodname>session_is_registered</methodname>
+      <methodparam><type>string</type><parameter>name</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     <function>session_is_registered</function> restituisce &true; se c'è
+     una variabile con il nome <parameter>name</parameter>
+     registrato nella sessione corrente.
+    </para>
+    <note>
+     <para>
+      Se è usata <varname>$_SESSION</varname> (o
+      <varname>$HTTP_SESSION_VARS</varname> per PHP 4.0.6 o inferiore), 
+      usate <function>isset</function> per controllare che una variabile
+      sia registrata in <varname>$_SESSION</varname>.
+     </para>
+    </note>
+    <caution>
+     <para>
+      Se state usando
+      <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>,
+      non usate <function>session_register</function>,
+      <function>session_is_registered</function> e
+      <function>session_unregister</function>.
+     </para>
+    </caution>
+   </refsect1>
+  </refentry>
+  
+  <refentry id="function.session-get-cookie-params">
+   <refnamediv>
+    <refname>session_get_cookie_params</refname>
+    <refpurpose>
+     Restituisce i parametri del cookie di sessione
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>array</type><methodname>session_get_cookie_params</methodname>
+      <void/>
+     </methodsynopsis>
+    <para>
+     La funzione <function>session_get_cookie_params</function> restituisce un
+     con le informazioni sul cookie di sessione corrente, l'array contiene
+     i seguenti elementi:
+     <itemizedlist>
+      <listitem>
+       <simpara>
+        "lifetime" -  La durata del cookie.
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        "path" -  Il percorso dove l'informazione è archiviata.
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        "domain" -  Il dominio di validità del cookie.
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        "secure" -  Il cookie dovrebbe essere spedito solo attraverso connessioni 
+sicure.
+        (Questo elemento è stato aggiunto in PHP 4.0.4.)
+       </simpara>
+      </listitem>
+     </itemizedlist>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-set-cookie-params">
+   <refnamediv>
+    <refname>session_set_cookie_params</refname>
+    <refpurpose>
+     Imposta i parametri del cookie di sessione
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>void</type><methodname>session_set_cookie_params</methodname>
+      <methodparam><type>int</type><parameter>lifetime</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>string</type><parameter>path</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>string</type><parameter>domain</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     Imposta i parametri del cookie definiti nel file php.ini. L'effetto di questa
+     funzione dura solo per la durata dello script.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-decode">
+   <refnamediv>
+    <refname>session_decode</refname>
+    <refpurpose>Decodifica i dati di sessione da una stringa</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>bool</type><methodname>session_decode</methodname>
+      <methodparam><type>string</type><parameter>data</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     <function>session_decode</function> decodifica i dati di sessione in
+     <parameter>data</parameter>, impostando le varibili archiviate nella
+     sessione.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-encode">
+   <refnamediv>
+    <refname>session_encode</refname>
+    <refpurpose>
+     Codifica i dati della sessione corrente in una stringa
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>string</type><methodname>session_encode</methodname>
+      <void/>
+     </methodsynopsis>
+    <para>
+     <function>session_encode</function> restituisce una stringa con i contenuti
+     della sessione corrente codificati.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-set-save-handler">
+   <refnamediv>
+    <refname>session_set_save_handler</refname>
+    <refpurpose>
+     Imposta le funzioni di archiviazione sessioni a livello utente
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>void</type><methodname>session_set_save_handler</methodname>
+      
+<methodparam><type>string</type><parameter>open</parameter></methodparam><methodparam><type>string</type><parameter>close</parameter></methodparam><methodparam><type>string</type><parameter>read</parameter></methodparam><methodparam><type>string</type><parameter>write</parameter></methodparam><methodparam><type>string</type><parameter>destroy</parameter></methodparam><methodparam><type>string</type><parameter>gc</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     <function>session_set_save_handler</function> imposta le funzioni di 
+     archiviazione sessioni che sono usate per archiviare e riutilizzare
+     i dati associati a una sessione. Ciò non è molto utile
+     quando un altro metodo di archiviazione è preferito a quelli forniti
+     dalle sessioni PHP.  i.e. L'archiviazione dei dati di sessione in un database 
+locale.
+    </para>
+    <note>
+     <para>
+      Dovete impostare l'opzione di configurazione
+      <parameter>session.save_handler</parameter> per 
+      <parameter>user</parameter> nel vostro file php.ini perchè
+      <function>session_set_save_handler</function> abbia effetto.
+     </para>
+    </note>
+    <note>
+     <para>
+      L'handler "write" non viene eseguito fino a che l'output stream
+      non viene chiuso. In questo modo, l'output di espressioni di debugging
+      nell'hanlder "write" non si vedrà mai nel browser. Se l'output di debugging 
+      è necessario, è consigliabile che l'output del debug venga scritto 
+      in un file.
+     </para>
+    </note>
+    <para>
+     Il seguente esempio fornisce l'archiviazione di sessione 
+     basata su file simile al solito gestore di salvataggio di sessioni PHP
+     <parameter>files</parameter>.  Questo esempio potrebbe essere facilmente 
+     esteso per coprire l'archiviazione in database usando il vostro sistema
+     database favorito con supporto PHP.
+    </para>
+    <para>
+     La funzione di lettura deve restituire sempre un valore stringa
+     perchè il save handler funzioni a dovere. Restituisce una stringa vuota
+     se non ci sono dati da leggere. I valori restituiti da altri handlers sono 
+convertiti in
+     espressioni booleane. TRUE per successo, FALSE in caso di fallimento.
+    </para>
+    <para>
+     <example>
+      <title>
+       <function>session_set_save_handler</function> esempio
+      </title>
+      <programlisting role="php">
+<![CDATA[
+<?php
+function open ($save_path, $session_name) {
+  global $sess_save_path, $sess_session_name;
+       
+  $sess_save_path = $save_path;
+  $sess_session_name = $session_name;
+  return(true);
+}
+
+function close() {
+  return(true);
+}
+
+function read ($id) {
+  global $sess_save_path, $sess_session_name;
+
+  $sess_file = "$sess_save_path/sess_$id";
+  if ($fp = @fopen($sess_file, "r")) {
+    $sess_data = fread($fp, filesize($sess_file));
+    return($sess_data);
+  } else {
+    return(""); // Deve restituire "" qui.
+  }
+
+}
+
+function write ($id, $sess_data) {
+  global $sess_save_path, $sess_session_name;
+
+  $sess_file = "$sess_save_path/sess_$id";
+  if ($fp = @fopen($sess_file, "w")) {
+    return(fwrite($fp, $sess_data));
+  } else {
+    return(false);
+  }
+
+}
+
+function destroy ($id) {
+  global $sess_save_path, $sess_session_name;
+       
+  $sess_file = "$sess_save_path/sess_$id";
+  return(@unlink($sess_file));
+}
+
+/*********************************************
+ * ATTENZIONE - Qui avete bisogno di implementare qualche *
+ * sorta di routine per il cestinaggio.  *
+ *********************************************/
+function gc ($maxlifetime) {
+  return true;
+}
+
+session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");
+
+session_start();
+
+// proceed to use sessions normally
+
+?>
+]]>
+      </programlisting>
+     </example>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-cache-limiter">
+   <refnamediv>
+    <refname>session_cache_limiter</refname>
+    <refpurpose>Assume o imposta il limitatore di cache corrente</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>string</type><methodname>session_cache_limiter</methodname>
+      <methodparam 
+choice="opt"><type>string</type><parameter>cache_limiter</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     <function>session_cache_limiter</function> restituisce il nome del limitatore
+     di cache corrente. Se <parameter>cache_limiter</parameter> è
+     specificato, il nome del limitatore di cache corrente viene cambiato
+     nel nuovo valore.
+    </para>
+    <para>
+     Il limitatore di cache controlla la cache degli headers HTTP mandati
+     al client. Questi headers determinano i modi in cui il contenuto della 
+     pagina possono essere depositati. Impostando il limitatore di cache a
+     <literal>nocache</literal>, per esempio, non permetterebbe nessun caching
+     lato client. Un valore di <literal>public</literal>, invece, permetterebbe il 
+caching.  
+     Può anche essere impostato a <literal>private</literal>, che è leggermente più 
+restrittivo di
+     <literal>public</literal>.
+    </para>
+    <para>
+     Nella modalità <literal>private</literal> , l'header Expire mandato al 
+     client, potrebbe causare confusione per alcuni browser incluso Mozilla.
+     Potete evitare questo problema con la modalità
+     <literal>private_no_expire</literal> . In questo modo l'header Expire non
+     viene mai spedito al client.
+    </para>
+    <note>
+     <para>
+      <literal>private_no_expire</literal> è stato aggiunto in PHP 4.2.0dev.
+     </para>
+    </note>
+    <para>
+     Il limitatore di cache è resettato al valore di default archiviato in
+     <literal>session.cache_limiter</literal> alla richiesta iniziale. Per questo 
+motivo,
+     avete bisogno di chiamare <function>session_cache_limiter</function> per ogni
+     richiesta (e prima che <function>session_start</function> sia chiamata).
+    </para>
+    <example>
+     <title><function>session_cache_limiter</function> esempi</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+
+# set the cache limiter to 'private'
+
+session_cache_limiter('private');
+$cache_limiter = session_cache_limiter();
+
+echo "Il limitatore di cache è adesso impostato a $cache_limiter<p>";
+?>
+]]>
+     </programlisting>
+    </example>
+   </refsect1>
+  </refentry>
+
+  <refentry id='function.session-cache-expire'>
+   <refnamediv>
+    <refname>session_cache_expire</refname>
+    <refpurpose>Restituisce l'espirazione della cache corrente</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>int</type><methodname>session_cache_expire</methodname>
+      <methodparam 
+choice="opt"><type>int</type><parameter>new_cache_expire</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     <function>session_cache_expire</function> restituisce l'espirazione della cache 
+corrente.
+     Se è data <parameter>new_cache_expire</parameter> , l'espirazione della
+     cache corrente è rimpiazzata da <parameter>new_cache_expire</parameter>.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.session-write-close">
+   <refnamediv>
+    <refname>session_write_close</refname>
+    <refpurpose>Scrive i dati di sessione e termina la sessione</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>void</type><methodname>session_write_close</methodname>
+      <void/>
+     </methodsynopsis>
+    <para>
+     Termina la sessione corrente e archivia i dati di sessione.
+    </para>
+    <para>
+     I dati di sessione sono di solito archiviati dopo che il vostro script
+     è terminato senza il bisogno di chiamare 
+<function>session_write_close</function>, 
+     ma poichè i dati di sessione vengono bloccati per prevenire scritture 
+contemporanee
+     solo uno script può operare su una sessione in qualsiasi momento.
+     Quando utilizzerete i framesets assieme alla sessione vedrete che 
+     i frames vengono caricati uno per uno a causa di questo bloccaggio.
+     Potete ridurre il tempo necessario per caricare tutti i frames
+     terminando la sessione appena tutti i cambi alle variabili di sessione
+     sono stati fatti.
+    </para>
+<!-- commented out until final decision on implementation
+    <para>
+     See also: <function>session_readonly</function>.
+    </para>
+-->
+   </refsect1>
+  </refentry>
+
+<!-- commented out until final decision on implementation
+  <refentry id="function.session-readonly">
+   <refnamediv>
+    <refname>session_readonly</refname>
+    <refpurpose>Begin session - reinitializes freezed variables, but no writeback on 
+request end</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+     <methodsynopsis>
+      <type>void</type><methodname>session_readonly</methodname>
+      <void/>
+     </methodsynopsis>
+    <para>
+     Read in session data without locking the session data. Changing
+     session data is not possible, but frameset performance will be improved.
+    </para>
+   </refsect1>
+  </refentry>
+-->
+ </reference>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->


Reply via email to