Server Side Include
# Server Side Include

I comandi Server Side Include (SSI) sono istruzioni inserite all'interno del codice sorgente delle pagine HTML. A differenza dei normali tag, i comandi SSI non visualizzano nulla, ma eseguono delle istruzioni e ne includono l'output nella pagina contenente il codice.

## Sintassi di base

La sintassi di base del SSI è: <!--#comando parametro="valore o lista di valori"-->. I comandi sono posizionati all'interno dei commenti HTML (<!-- commento -->) così se SSI non è abilitato, gli utenti non vedranno i comandi SSI nelle pagine, a meno che non guardino il codice sorgente della pagina.

Nota: l'estensione base per le pagine contenenti codice SSI è .shtml

## Comandi

Ci sono numerosi comandi SSI; la tabella seguente riporta i più comuni:

| Comando | Parametro | Descrizione | Esempio |
| - | - | - | - |
| include | file or virtual | È probabilmente il comando più usato, e permette di includere il contenuto di un documento in un altro. Il file o il parametro virtuale specifica il file (pagina HTML, file di testo, script, ecc.) da essere incluso. | <!--#include virtual="header.html"--> |
| exec | cgi or cmd | Questo comando esegue un programma, script, o comando shell nel server. Il parametro cmd specifica un comando server-side; il parametro cgi specifica la "residenza" di uno script CGI. PATH_INFO e QUERY_STRING del corrente script SSI vengono passati allo script CGI. "include virtual" dovrebbe essere usato al posto di "exec cgi". | <!--#exec cgi="/cgi-bin/foo.cgi"--> or <!--#exec cmd="ls -l"--> |
| echo | var | Questa direttiva visualizza il contenuto di una specifica variabile HTTP. Sono incluse le variabili HTTP_USER_AGENT, LAST_MODIFIED, e HTTP_ACCEPT. | <!--#echo var="REMOTE_ADDR" --> |
| config | timefmt, sizefmt, o errmsg | Questa direttiva configura il formato da visualizzare dell'ora, data, dimensione del file, e dei messaggi d'errore. | <!--#config timefmt="%y %m %d" --> or <!--#config sizefmt="bytes" --> or <!--#config errmsg="SSI command failed!" --> |
| flastmod or fsize | file or virtual | Questo comando visualizza l'ultima volta che il documento è stato modificato, o la sua dimensione (n° byte). | <!--#flastmod virtual="index.html"--> or <!--#fsize file="script.pl"--> |
| printenv | | Questo comando visualizza la lista di tutte le variabili assieme alla loro descrizione, includendo le variabili definite dall'utente. Non ha attributi. | <!--#printenv --> |
