Index: phpdoc/it/functions/http.xml
diff -u phpdoc/it/functions/http.xml:1.12 phpdoc/it/functions/http.xml:1.13
--- phpdoc/it/functions/http.xml:1.12 Sat Nov 10 16:50:02 2001
+++ phpdoc/it/functions/http.xml Sun Nov 25 10:14:18 2001
@@ -1,392 +1,417 @@
-
-
-
- Funzioni HTTP
- HTTP
-
-
-
- Queste funzioni permettono di modificare l'output inviato verso un browser
- attraverso manipolazioni a livello di protocollo HTTP.
-
-
-
-
-
- header
- Spedisce un header HTTP
-
-
- Descrizione
-
-
- int header
- string string
- bool replace
-
-
-
- header si utilizza per inviare header HTTP.
- Per maggiorni informazioni riguardanti gli header HTTP
- si veda la risorsa HTTP 1.1 specification.
-
-
-
- L'argomento opzionale replace 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:
-
-
-header('WWW-Authenticate: Negotiate');
-header('WWW-Authenticate: NTLM',false);
-
-
-
-
- Ci sono due casi speciali di chiamate di header. Il primo è
- "Location". Location non trasmette solo un header al
- browser, ma anche un REDIRECT con
- codice di stato (302).
-
-
-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. */
-
-
-
-
-
- HTTP/1.1 richiede un URI assoluto come argomento di
- Location:
- 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 dirname per creare URI assoluti da URI relativi
- in modo automatico:
-
-
-header ("Location: http://".$HTTP_SERVER_VARS['HTTP_HOST']
- ."/".dirname($HTTP_SERVER_VARS['PHP_SELF'])
- ."/".$relative_url);
-
-
-
-
-
- Il secondo caso speciale è esemplificato dalle intestazioni che
- 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
- ErrorDocument), potete desiderare di assicurarvi
- che il vostro script generi il codice adeguato.
-
-
-header ("HTTP/1.0 404 Not Found");
-
-
-
-
- In PHP 3, questo funziona solo se PHP è compilato come modulo
- Apache. Potete ottenere lo stesso effetto usando l'header
- Status.
-
-
-header("Status: 404 Not Found");
-
-
-
-
-
-
- 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:
-
-
-
-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
-
-
-
-
- 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.
-
-
- Inoltre, session_cache_limiter e
- e la configurazione session.cache_limiter
- possono essere usate per generare automaticamente i corretti
- header relativi al caching durante l'uso delle sessioni.
-
-
-
-
- Bisogna ricordare che la funzioneheader va
- chiamata prima di qualsiasi output HTML o PHP (anche righe o spazi
- vuoti). E' un errore comune leggere files con funzioni
- include, o require
- (o altre funzioni capaci di accedere a files), che possano emettere
- in output spazi o linee vuote prima di una chiamata della funzione
- header. Lo stesso problema esiste nell'utilizzare
- file PHP/HTML.
-
-
-<?php require("user_logging.inc") ?>
-
-
-<?php header ("Content-type: audio/x-pn-realaudio"); ?>
-// Non funziona. Notate le linee vuote sopra
-
-
-
-
- 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 ob_start e ob_end_flush
- nello script, o settando la direttiva di configurazione
- output_buffering nel file php.ini o
- nel file di configurazione del server.
-
-
-
-
- Se desiderate che l'utente sia spinto a salvare i dati trasmessi
- per esempio utilizzando un file pdf, potete usare
- l'header Content-Disposition, che vi
- permette di dare un nome al file e forzare il browser a mostrare la finestra
- di dialogo save.
-
-
-<?php
-header("Content-type: application/pdf");
-header("Content-Disposition: attachment; filename=downloaded.pdf");
-
-/* ... manda all'output un file pdf ... */
-
-
-
-
- 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.
-
-
-
-
- Vedi anche headers_sent,
- setcookie, e la sezione
- Autenticazione HTTP usando PHP.
-
-
-
-
-
-
- headers_sent
- Restituisce &true; se gli header sono stati
- trasmessi.
-
-
-
- Descrizione
-
-
- bool headers_sent
-
-
-
-
- Questa funzione restituisce &true; se gli header
- HTTP sono stati spedite correttamente,
- &false; in caso contrario.
-
-
- Vedi anche header
-
-
-
-
-
-
- setcookie
- Spedisce un cookie
-
-
- Descrizione
-
-
- int setcookie
- string name
- string
- value
-
- int
- expire
-
- string
- path
-
- string
- domain
-
- int
- secure
-
-
-
-
- setcookie definisce un cookie da inviare insieme
- alle altre informazioni di header. I cookie devono essere spediti
- prima di qualsiasi altra intestazione (questa è
- una restrizione dei cookies, non di PHP). E' necessario perciò chiamare
- la funzione setcookieprima di
- qualsiasi tags, anche <html> o <head>.
-
-
- Tutti gli argomenti della funzione eccetto name
- sono opzionali. Se viene passato alla funzione solo l'argomento name,
- il cookie registrato con quel nome verrà cancellato dal client su cui è archiviato.
- E' possibile sostituire gli argomenti che non si intende specificare utitlizzando una
- stringa vuota (""). Gli argomenti expire
- e secure che richiedono numeri interi, non possono essere omessi
- inserendo una stringa vuota, per questo scopo si usa (0). L'argomento
- expire è un normale intero Unix Timestamp ottenibile grazie alle
- funzioni time o mktime. secure
- sta ad indicare che il cookie dovrebbe essere trasmesso soltanto attraverso un collegamento
- sicuro di tipo HTTPS.
-
-
- Sbagli comuni:
-
-
-
- I cookie diventano disponibili soltanto dalla pagina successiva a quella
- che li ha generati, o dopo il ricaricamento di questa.
-
-
-
-
- I cookie devono essere cancellati specificando gli stessi parametri con cui sono stati creati.
-
-
-
-
-
- In PHP 3, chiamate successive di setcookie
- 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 setcookie invece, sono eseguite secondo l'ordine di chiamata.
-
-
- Alcuni esempi sul modo di spedire cookie:
-
- setcookie esempi di spedizione/creazione
-
-setcookie ("TestCookie", "Test Value");
-setcookie ("TestCookie", $value,time()+3600); /* aspira in 1 ora */
-setcookie ("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);
-
-
-
-
- Gli esempi mostrano come cancellare i cookie introdotti nell'esempio precedente:
-
- setcookie esempi di cancellazione
-
-setcookie ("TestCookie");
-// set the expiration date to one hour ago
-setcookie ("TestCookie", "", time() - 3600);
-setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
-
-
- Per cancellare un cookie dovete assicurarvi che la data di scadenza del
- cookie sia già trascorsa, in questo modo il cookie verrà rimosso dal client.
-
-
- Si noti che i valori salvati nei cookies sono automaticamente codificati
- per la trasmissione via URL (urlencoded) quando il cookie viene inviato,
- e che al momento del richiamo sono automaticamente decodificati e assegnati ad
- una variabile che ha lo stesso nome del cookie. Per vedere il contenuto di
- un cookie in uno script, si usa una di queste due sintassi:
-
-
-echo $TestCookie;
-echo $HTTP_COOKIE_VARS["TestCookie"];
-
-
-
-
- Potete registrare array in un cookie usando la notazione degli array
- al posto del nome del cookie. Questo equivale alla spedizione di tanti
- cookie quanti sono gli elementi dell'array, ma si ha un vantaggio: quando
- il cookie è ricevuto, tutti i suoi valori sono ordinati in un singolo array
- che ha per nome il nome del cookie:
-
-
-setcookie ("cookie[three]", "cookiethree");
-setcookie ("cookie[two]", "cookietwo");
-setcookie ("cookie[one]", "cookieone");
-if (isset ($cookie)) {
- while (list ($name, $value) = each ($cookie)) {
- echo "$name == $value<br>\n";
- }
-}
-
-
-
-
- Per saperne di più sui cookies, Netscape's cookie
- specification è la risorsa giusta &spec.cookies;.
-
-
- Microsoft Internet Explorer 4 con Service Pack 1 non
- crea correttamente cookie che hanno il parametro
- path specificato.
-
-
- Netscape Communicator 4.05 e Microsoft Internet Explorer 3.x
- sembrano utilizzare in modo errato i cookie quando
- path ed expire non sono specificati.
-
-
-
-
-
-
-
+
+
+
+ Funzioni HTTP
+ HTTP
+
+
+
+ Queste funzioni permettono di modificare l'output inviato verso un browser
+ attraverso manipolazioni a livello di protocollo HTTP.
+
+
+
+
+
+ header
+ Spedisce un header HTTP
+
+
+ Descrizione
+
+
+ int header
+ string string
+ bool replace
+
+
+
+ header si utilizza per inviare header HTTP.
+ Per maggiorni informazioni riguardanti gli header HTTP
+ si veda la risorsa HTTP 1.1 specification.
+
+
+
+ L'argomento opzionale replace 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:
+
+
+
+
+
+
+
+ Ci sono due casi speciali di chiamate di header. Il primo è
+ "Location". Location non trasmette solo un header al
+ browser, ma anche un REDIRECT con
+ codice di stato (302).
+
+
+
+
+
+
+
+
+ HTTP/1.1 richiede un URI assoluto come argomento di
+ Location:
+ 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 dirname per creare URI assoluti da URI relativi
+ in modo automatico:
+
+
+
+
+
+
+
+
+ Il secondo caso speciale è esemplificato dalle intestazioni che
+ 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
+ ErrorDocument), potete desiderare di assicurarvi
+ che il vostro script generi il codice adeguato.
+
+
+
+
+
+
+
+ In PHP 3, questo funziona solo se PHP è compilato come modulo
+ Apache. Potete ottenere lo stesso effetto usando l'header
+ Status.
+
+
+
+
+
+
+
+
+
+ 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:
+
+
+
+
+
+
+
+
+ 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.
+
+
+ Inoltre, session_cache_limiter e
+ e la configurazione session.cache_limiter
+ possono essere usate per generare automaticamente i corretti
+ header relativi al caching durante l'uso delle sessioni.
+
+
+
+
+ Bisogna ricordare che la funzioneheader va
+ chiamata prima di qualsiasi output HTML o PHP (anche righe o spazi
+ vuoti). E' un errore comune leggere files con funzioni
+ include, o require
+ (o altre funzioni capaci di accedere a files), che possano emettere
+ in output spazi o linee vuote prima di una chiamata della funzione
+ header. Lo stesso problema esiste nell'utilizzare
+ file PHP/HTML.
+
+
+
+
+
+
+// Non funziona, notate le linee vuote sopra
+]]>
+
+
+
+
+ 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 ob_start e ob_end_flush
+ nello script, o settando la direttiva di configurazione
+ output_buffering nel file php.ini o
+ nel file di configurazione del server.
+
+
+
+
+ Se desiderate che l'utente sia spinto a salvare i dati trasmessi
+ per esempio utilizzando un file pdf, potete usare
+ l'header Content-Disposition, che vi
+ permette di dare un nome al file e forzare il browser a mostrare la finestra
+ di dialogo save.
+
+
+
+
+
+
+
+ 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.
+
+
+
+
+ Vedi anche headers_sent,
+ setcookie, e la sezione
+ Autenticazione HTTP usando PHP.
+
+
+
+
+
+
+ headers_sent
+ Restituisce &true; se gli header sono stati trasmessi.
+
+
+
+ Descrizione
+
+
+ bool headers_sent
+
+
+
+
+ Questa funzione restituisce &true; se gli header HTTP
+ sono stati spedite correttamente, &false; in caso contrario.
+
+
+ Vedi anche header
+
+
+
+
+
+
+ setcookie
+ Spedisce un cookie
+
+
+ Descrizione
+
+
+ int setcookie
+ string name
+ string
+ value
+
+ int
+ expire
+
+ string
+ path
+
+ string
+ domain
+
+ int
+ secure
+
+
+
+
+ setcookie definisce un cookie da inviare insieme
+ alle altre informazioni di header. I cookie devono essere spediti
+ prima di qualsiasi altra intestazione (questa è
+ una restrizione dei cookies, non di PHP). E' necessario perciò chiamare
+ la funzione setcookieprima di
+ qualsiasi tags, anche <html> o <head>.
+
+
+ Tutti gli argomenti della funzione eccetto name
+ sono opzionali. Se viene passato alla funzione solo l'argomento
+ name, il cookie registrato con quel nome
+ verrà cancellato dal client su cui è archiviato. E' possibile
+ sostituire gli argomenti che non si intende specificare utitlizzando
+ una stringa vuota (""). Gli argomenti
+ expire e secure che richiedono
+ numeri interi, non possono essere omessi inserendo una stringa vuota, per
+ questo scopo si usa (0). L'argomento
+ expire è un normale intero Unix Timestamp ottenibile
+ grazie alle funzioni time o mktime.
+ secure sta ad indicare che il cookie dovrebbe essere
+ trasmesso soltanto attraverso un collegamento sicuro di tipo HTTPS.
+
+
+ Sbagli comuni:
+
+
+
+ I cookie diventano disponibili soltanto dalla pagina successiva a quella
+ che li ha generati, o dopo il ricaricamento di questa.
+
+
+
+
+ I cookie devono essere cancellati specificando gli stessi parametri con cui sono stati creati.
+
+
+
+
+
+ In PHP 3, chiamate successive di setcookie
+ 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 setcookie invece, sono eseguite secondo l'ordine di chiamata.
+
+
+ Alcuni esempi sul modo di spedire cookie:
+
+ setcookie esempi di spedizione/creazione
+
+
+
+
+
+
+ Gli esempi mostrano come cancellare i cookie introdotti nell'esempio precedente:
+
+ setcookie esempi di cancellazione
+
+
+
+
+ Per cancellare un cookie dovete assicurarvi che la data di scadenza del
+ cookie sia già trascorsa, in questo modo il cookie verrà rimosso dal client.
+
+
+ Si noti che i valori salvati nei cookies sono automaticamente codificati
+ per la trasmissione via URL (urlencoded) quando il cookie viene inviato,
+ e che al momento del richiamo sono automaticamente decodificati e assegnati ad
+ una variabile che ha lo stesso nome del cookie. Per vedere il contenuto di
+ un cookie in uno script, si usa una di queste due sintassi:
+
+
+
+
+
+
+
+ Potete registrare array in un cookie usando la notazione degli array
+ al posto del nome del cookie. Questo equivale alla spedizione di tanti
+ cookie quanti sono gli elementi dell'array, ma si ha un vantaggio: quando
+ il cookie è ricevuto, tutti i suoi valori sono ordinati in un singolo array
+ che ha per nome il nome del cookie:
+
+
+\n";
+ }
+}
+]]>
+
+
+
+
+ Per saperne di più sui cookies, Netscape's cookie
+ specification è la risorsa giusta &spec.cookies;.
+
+
+ Microsoft Internet Explorer 4 con Service Pack 1 non
+ crea correttamente cookie che hanno il parametro
+ path specificato.
+
+
+ Netscape Communicator 4.05 e Microsoft Internet Explorer 3.x
+ sembrano utilizzare in modo errato i cookie quando
+ path ed expire non sono specificati.
+
+
+
+
+
+
+
+