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><?=SID?></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
+-->