Funzioni: protocollo HTTP

Queste funzioni, utili solamente nel caso si lavori in ambito web, permettono di inviare al browser dati a livello
di header HTTP quindi precedenti al contenuto della pagina generata.

Oltre che il semplice output a livello di codice HTML (ad esempio) è possibile inviare la browser dell'utente anche dei dati
che verranno gestiti come HTTP headers, è possibile cioè, assolutamente prima di inviare ogni altro contenuto, indicare al
browser di effettuare una redirezione oppure assegnargli dei cookie, vediamo quali sono le funzioni che possiamo utilizzare:
header($stringa)
invia al browser la direttiva contenuta in $stringa
l'utilizzo più comune di questa funzione è la redirezione, impostando correttamente $stringa è possibile indicare
al client di effettuare una nuova richiesta al server ad esempio
header("Location: http://www.google.com/");
redirigerà il browser alla home di Google, si noti come l'invocazione della funzione debba essere necessariamente la prima istruzione
della pagina e come, ovviamente, questa non abbia nessuna utilità nel caso si stia realizzando una applicazione non web.
Un altro utilizzo molto interessante è la possibilità di indicare al browser il MIME Type del flusso che si sta generando, quando
questo sia diverso da HTML, in modo che il browser predisponga il plugin necessario alla visualizzazione e si comporti in pratica come
se stesse effettuando un download di un file statico e non generato on-the-fly dalla pagina PHP:
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=documento_".$data_di_oggi.".pdf");
readfile("documento.pdf");

purtroppo questo tipo di codice sembra avere problemi con alcune versione di Internet Explorer per cui l'utilizzo su siti pubblici
va attentamente valutato.

setcookie($nome, $valore, ...)
questa funzione, come al solito richiamta come prima funzione della pagina, invia al browser un cookie di cui è possibile definire
oltre al $nome e $valore (opzionale) anche una serie di altri parametri come:
$scadenza: la data, in formato UNIX timestamp, in cui il cookie scadrà, spesso per indicare un cookie non permamente si
usa impostare questo parametro ad una data già passata.
$percorso: le directory del domino web in cui il cookie sarà valido, indicando ad esempio /shop/ il cookie in questione sarà
considerato sono quando si richiamino URL del tipo www.domino.com/shop e non ad esempio nella root
$domino: serve per fare in modo che il cookie sia valido anche in sottodomini di quello che lo ha rilasciato, indicando ad esempio .domino.com
il cookie sarà valido non solo in www.dominio.com ma anche in shop.dominio.com oppure in prodotti.dominio.com
$sicuro: se impostato a 1 indica che il cookie sarà trasmesso solo in condizioni di connessione protetta (HTTPS).

Dalla descrizione delle funzioni si può notare come molti comportamenti siano strettamente legati al tipo e alla versione del browser,
questo può spesso portare a comportamenti imprevisti dell'utilizzo non banale delle funzioni.

Privacy Policy