alan_dangelo Sat Nov 3 18:07:10 2001 EDT
Modified files:
/phpdoc/it/functions http.xml
Log:
Update the italian translation to EN-Revision 1.31 - Alan D'Angelo.
Index: phpdoc/it/functions/http.xml
diff -u phpdoc/it/functions/http.xml:1.10 phpdoc/it/functions/http.xml:1.11
--- phpdoc/it/functions/http.xml:1.10 Fri Nov 2 20:25:45 2001
+++ phpdoc/it/functions/http.xml Sat Nov 3 18:07:10 2001
@@ -1,13 +1,13 @@
<?xml encoding="iso-8859-1"?>
-<!-- EN-Revision: 1.29 Maintainer: alan_dangelo Status: ready -->
+<!-- EN-Revision: 1.31 Maintainer: alan_dangelo Status: ready -->
<reference id="ref.http">
<title>Funzioni HTTP</title>
<titleabbrev>HTTP</titleabbrev>
<partintro>
<simpara>
- Queste funzioni permettono di manipolare le risposte di un server remoto
- verso un client attraverso interazioni (headers) del protocollo HTTP.
+ Queste funzioni permettono di modificare l'output inviato verso un browser
+ attraverso manipolazioni a livello di protocollo HTTP.
</simpara>
</partintro>
@@ -26,35 +26,32 @@
</funcprototype>
</funcsynopsis>
<para>
- La funzione <function>header</function> si utilizzata in cima ad un
- documento <acronym>HTML</acronym> per inviare headers <acronym>HTTP</acronym>
- ad un server remoto. Per informazioni dettagliate sul protocollo
<acronym>HTTP</acronym>
- si vedano la risorsa <ulink url="&spec.http1.1;">HTTP 1.1 specification</ulink>.
+ <function>header</function> si utilizza per inviare header
+<acronym>HTTP</acronym>.
+ Per maggiorni informazioni riguardanti gli header <acronym>HTTP</acronym>
+ si veda la risorsa <ulink url="&spec.http1.1;">HTTP 1.1 specification</ulink>.
+
</para>
<para>
- L'argomento opzionale <parameter>replace</parameter> indica se l'intestazione
- inviata deve sostituirne una spedita precedentemente dello stesso tipo, o
- accodarsi alla prima intestazione. Per default la funzione invia un'intestazione
- che rimpiazza la precedente, ma se <parameter>replace</parameter> assume il
valore
- &false; vengono forzate intestazioni multiple dello stesso tipo. Per esempio:
-
+ L'argomento opzionale <parameter>replace</parameter> indica se l'header
+ inviato deve sostituirne uno simile spedito precedentemente, o accodarsi
+ al primo dello stesso tipo. Per default la funzione sostituisce
+ l'header precedente, ma se viene passato &false; come secondo argomento
+ vengono forzate intestazioni multiple. Per esempio:
<informalexample>
<programlisting role="php">
-header('www-authenticate: Negociate');
-header('www-authenticate: NTLM',false);
+header('WWW-Authenticate: Negotiate');
+header('WWW-Authenticate: NTLM',false);
</programlisting>
</informalexample>
</para>
<para>
- Ci sono due casi speciali di chiamate di headers. Il primo riguarda
- "Location". Location non trasmette solo un'intestazione al
- client browser, ma anche un codice REDIRECT ad un server Apache. Dal
- punto di vista della programmazione questa informazione non � importante,
- ma per chi conosce il funzionamento di Apache � un aspetto interessante
- da sapere.
+ Ci sono due casi speciali di chiamate di header. Il primo �
+ "Location". Location non trasmette solo un header al
+ browser, ma anche un <literal>REDIRECT</literal> con
+ codice di stato (302).
<informalexample>
<programlisting role="php">
-header ("Location: http://www.php.net/"); /* Ridireziona il browser
+header("Location: http://www.php.net/"); /* Ridireziona il browser
al sito di PHP */
exit; /* Assicura che il codice sottostante
non sia eseguito dopo il redirezionamento. */
@@ -63,13 +60,13 @@
</para>
<note>
<para>
- HTTP 1.1 richiede un URI assoluto come argomento di
+ HTTP/1.1 richiede un <acronym>URI</acronym> assoluto come argomento di
<ulink url="&spec.http1.1;-sec14.html#sec14.30">Location:</ulink>
- composto da protocollo, hostname, e path assoluto. Alcuni clients
- possono accettare anche URIs relativi, ma � bene non fare affidamento
- su questa eccezione. E' possibile usare $HTTP_SERVER_VARS['HTTP_HOST'],
- $HTTP_SERVER_VARS['PHP_SELF'] e <function>dirname</function>
- per creare URI assoluti da URI relativi in modo automatico:
+ composto da schema, hostname, e path assoluto, ma alcuni clients
+ possono accettare anche URIs relativi. E' possibile usare
+ $HTTP_SERVER_VARS['HTTP_HOST'], $HTTP_SERVER_VARS['PHP_SELF']
+ e <function>dirname</function> per creare URI assoluti da URI relativi
+ in modo automatico:
<informalexample>
<programlisting>
header ("Location: http://".$HTTP_SERVER_VARS['HTTP_HOST']
@@ -81,51 +78,120 @@
</note>
<para>
Il secondo caso speciale � esemplificato dalle intestazioni che
- iniziano con la stringa, "HTTP/" (questo non � un esempio).
- Per esempio, se si riceve la direttiva Apache ErrorDocument 404 puntando
- ad un nostro script PHP, � una buona idea assicurarsi che sia veramente
- stato lo script a generare l'errore 404. La prima cosa da fare �
- inserire nello script la seguente intestazione:
+ iniziano con la stringa, "HTTP/" (le maiuscole non sono
+ discriminanti), che � usato per inviare codici di stato HTTP.
+ Per esempio, se si � configurato Apache per usare script PHP per la
+ manipolazione di richieste fallite (usando la direttiva
+ <literal>ErrorDocument</literal>), potete desiderare di assicurarvi
+ che il vostro script generi il codice adeguato.
<informalexample>
<programlisting role="php">
header ("HTTP/1.0 404 Not Found");
</programlisting>
</informalexample>
- </para>
- <para>
- Spesso gli scrit PHP generano HTML dinamico, se volete evitare che i
- contenuti dinamici vengano mantenuti nella cache di browser o proxy,
- potete forzare il loro comportamento con questa direttiva:
+ <note>
+ <para>
+ In PHP 3, questo funziona solo se PHP � compilato come modulo
+ Apache. Potete ottenere lo stesso effetto usando l'header
+ <literal>Status</literal>.
+ <informalexample>
+ <programlisting role="php">
+header("Status: 404 Not Found");
+ </programlisting>
+ </informalexample>
+ </para>
+ </note>
+ </para>
+ <para>
+ Spesso gli scrit PHP generano contenuti dinamici, se volete evitare che i
+ contenuti vengano mantenuti nella cache di browser o proxy,
+ potete forzare il loro comportamento con questa direttiva:
+
<informalexample>
<programlisting role="php">
-header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Data passata
-header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
- // continuamente modificato
-header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
-header ("Pragma: no-cache"); // HTTP/1.0
+header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
+header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
+ // always modified
+header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
+header("Cache-Control: post-check=0, pre-check=0", false);
+header("Pragma: no-cache"); // HTTP/1.0
</programlisting>
</informalexample>
+ <note>
+ <para>
+ E' possibile che alcune pagine rimangano in chache anche dopo
+ l'uso degli header descritti sopra. Ci sono delle opzioni che
+ l'utente pu� settare dal browser, capaci di modificare i comportamenti
+ di default del caching. Per trasmettere efficacemente gli header
+ descritti, bisogna che sia inattiva ogni regolazione che pu� forzare
+ comportamenti contrari.
+ </para>
+ <para>
+ Inoltre, <function>session_cache_limiter</function> e
+ e la configurazione <literal>session.cache_limiter</literal>
+ possono essere usate per generare automaticamente i corretti
+ header relativi al caching durante l'uso delle sessioni.
+ </para>
+ </note>
</para>
<para>
Bisogna ricordare che la funzione<function>header</function> va
- chiamata prima di qualsiasi output HTML o PHP (anche righe o spazi vuoti).
- E' un errore comune leggere files con funzioni <function>include</function>,
- o <function>require</function> (o altre funzioni capaci di accedere a files),
- che possano emettere in output spazi o linee vuote prima di una chiamata della
- funzione <function>header</function>. Lo stesso problema esiste nell'utilizzare
+ chiamata prima di qualsiasi output HTML o PHP (anche righe o spazi
+ vuoti). E' un errore comune leggere files con funzioni
+ <function>include</function>, o <function>require</function>
+ (o altre funzioni capaci di accedere a files), che possano emettere
+ in output spazi o linee vuote prima di una chiamata della funzione
+ <function>header</function>. Lo stesso problema esiste nell'utilizzare
file PHP/HTML.
<informalexample>
<programlisting role="php">
-<?php require("user_logging.inc") ?>
+<?php require("user_logging.inc") ?>
-<?php header ("Content-Type: audio/x-pn-realaudio"); ?>
+<?php header ("Content-type: audio/x-pn-realaudio"); ?>
// Non funziona. Notate le linee vuote sopra
</programlisting>
</informalexample>
+ <note>
+ <para>
+ In PHP 4, potete usare il buffering dell'output per aggirare
+ questo problema, evitando ogni output al browser trattenedolo
+ al server fino a che non gli si impone l'invio. Si pu� fare questa operazione
+ chiamando <function>ob_start</function> e <function>ob_end_flush</function>
+ nello script, o settando la direttiva di configurazione
+ <literal>output_buffering</literal> nel file <filename>php.ini</filename> o
+ nel file di configurazione del server.
+ </para>
+ </note>
</para>
<para>
- Vedi anche <function>headers_sent</function>
+ Se desiderate che l'utente sia spinto a salvare i dati trasmessi
+ per esempio utilizzando un file pdf, potete usare
+ l'header <ulink url="&url.rfc2183;">Content-Disposition</ulink>, che vi
+ permette di dare un nome al file e forzare il browser a mostrare la finestra
+ di dialogo save.
+ <informalexample>
+ <programlisting role="php">
+<?php
+header("Content-type: application/pdf");
+header("Content-Disposition: attachment; filename=downloaded.pdf");
+
+/* ... manda all'output un file pdf ... */
+ </programlisting>
+ </informalexample>
+ <note>
+ <para>
+ Per un bug di Microsoft Internet Explorer 4.01 qusto sistema
+ non funziona. Non ci sono soluzioni. C'� un altro bug in Microsoft
+ Internet Explorer 5.5 che impedisce il giusto funzionamento,
+ ma � possibile risolverlo con l'upgrade del Service Pack 2 o superiore.
+ </para>
+ </note>
+ </para>
+ <para>
+ Vedi anche <function>headers_sent</function>,
+ <function>setcookie</function>, e la sezione
+ <link linkend="features.http-auth">Autenticazione HTTP usando PHP</link>.
</para>
</refsect1>
</refentry>
@@ -133,7 +199,7 @@
<refentry id="function.headers-sent">
<refnamediv>
<refname>headers_sent</refname>
- <refpurpose>Restituisce &true; se gli headers (intestazioni HTTP) sono stati
+ <refpurpose>Restituisce &true; se gli header sono stati
trasmessi.
</refpurpose>
</refnamediv>
@@ -146,8 +212,8 @@
</funcprototype>
</funcsynopsis>
<para>
- Questa funzione restituisce &true; se le intestazioni
- <acronym>HTTP</acronym> sono state spedite correttamente,
+ Questa funzione restituisce &true; se gli header
+ <acronym>HTTP</acronym> sono stati spedite correttamente,
&false; in caso contrario.
</para>
<para>
@@ -159,7 +225,7 @@
<refentry id="function.setcookie">
<refnamediv>
<refname>setcookie</refname>
- <refpurpose>Spedisce (crea) un cookie verso un client</refpurpose>
+ <refpurpose>Spedisce un cookie</refpurpose>
</refnamediv>
<refsect1>
<title>Descrizione</title>
@@ -186,7 +252,7 @@
</funcsynopsis>
<para>
<function>setcookie</function> definisce un cookie da inviare insieme
- alle altre informazioni <acronym>HTTP</acronym>. I cookie devono essere spediti
+ alle altre informazioni di header. I cookie devono essere spediti
<emphasis>prima</emphasis> di qualsiasi altra intestazione (questa �
una restrizione dei cookies, non di PHP). E' necessario perci� chiamare
la funzione <function>setcookie</function> <emphasis>prima</emphasis> di
@@ -216,8 +282,7 @@
</listitem>
<listitem>
<simpara>
- I cookie devono essere cancellati specificando gli stessi parametri con
- cui sono stati creati.
+ I cookie devono essere cancellati specificando gli stessi parametri con cui
+sono stati creati.
</simpara>
</listitem>
</itemizedlist>
@@ -227,8 +292,7 @@
nello stesso script sono eseguite in ordine inverso. Se state provando
a cancellare un cookie prima dell' inserimento di un altro cookie,
dovete creare il secondo prima della cancellazione del primo. In PHP 4,
- chiamate successive di <function>setcookie</function> invece, sono eseguite
- secondo l'ordine di chiamata.
+ chiamate successive di <function>setcookie</function> invece, sono eseguite
+secondo l'ordine di chiamata.
</simpara>
<para>
Alcuni esempi sul modo di spedire cookie:
@@ -300,11 +364,11 @@
<simpara>
Netscape Communicator 4.05 e Microsoft Internet Explorer 3.x
sembrano utilizzare in modo errato i cookie quando
- <parameter>path</parameter> ed <parameter>expire</parameter>
- non sono specificati.
+ <parameter>path</parameter> ed <parameter>expire</parameter> non sono
+specificati.
</simpara>
</refsect1>
</refentry>
+
</reference>
<!-- Keep this comment at the end of the file