3.7. Variable

I virkeligheden betyder <!--echo var="LAST_MODIFIED" --> at variablen LAST_MODIFIED skal udskrives, så man spørger sig selv, hvilke andre variable findes der? Der findes en kommando der udskriver alle de variable, der er kendt:

<pre>
<!--#printenv -->
</pre>

Følgende er et udklip af hvad ovenstående eksempel udskriver:

HTTP_USER_agent=Mozilla/4.73 [en] (X11; U; Linux 2.2.16-3 i686)
REMOTE_addr=127.0.0.1
REMOTE_host=localhost
SCRIPT_filename=/www/cgibog/test.shtml
REQUEST_uri=/cgibog/test.shtml
DATE_local=Sunday, 06-Aug-2000 13:11:39 CEST
DATE_gmt=Sunday, 06-Aug-2000 11:11:39 GMT
LAST_modified=Sunday, 06-Aug-2000 13:11:38 CEST
DOCUMENT_uri=/cgibog/test.shtml
:

Mange af disse variable er de samme, som et CGI-program modtager. Normalt modtager man ikke DNS-navnet på den server der ønsker data (REMOTE_HOST), men kun dens IP-adresse, slå HostNameLookups On for et katalog definition i /etc/httpd/conf/access.conf så vil REMOTE_HOST indeholde server navnet. Miljø-variable oprettes, når Apache begynder at fortolke den .shtml-fil, som browseren beder om, og indsættes en .shtml-fil i en anden, vil den .shtml-fil der indsættes have de samme miljø-variable til rådighed.

Det er muligt selv at erklære variable, dette gøres med

<!--#set var="minvariabel" value="Dette er indholdet af min variabel" -->

Det er også muligt at anvende andre variable til at definere nye variabler f.eks.:

<!--#set var="ServerFil" value="${REMOTE_ADDR} -> ${DOCUMENT_URI}" -->

Variablen ServerFil vil så i ovenstående eksempel indeholder strengen "127.0.0.1 -> /cgibog/test.shtml".