Píšete-li ASP skripty, můžete často s výhodou využít tzv serverové proměnné. Jedná se o zvláštní druh proměnných, kde se ukládají informace o klientovi i serveru.
Píšete-li ASP skripty, můžete často s výhodou využít tzv serverové proměnné. Jedná se o zvláštní druh proměnných, kde se ukládají informace o klientovi i serveru. Z ASP jsou tyto proměnné přístupné prostřednictvím kolekce
Request.ServerVariables. Chcete-li například vypsat proměnnou LOGON_USER, můžete použít <%=Request.ServerVariables("LOGON_USER")%>.
Všechny proměnné můžete vypsat pomocí následujícího kódu:
<PRE>
<%
For Each Promenna In Request.ServerVariables
Response.Write Promenna & " = "
Response.Write Server.HtmlEncode(Request.ServerVariables(Promenna))
Response.Write vbCrLf
Next
%>
</PRE>
Význam řady proměnných je jasný z jejich názvu nebo obsahu, nicméně u některých se můžeme pozastavit blíže:
SCRIPT_NAME
Vrací relativní cestu k právě prováděnému skriptu, bez parametrů, od rootu serveru. Je-li URL například
http://www.kdesi.cz/cosi.asp?query=string, hodnota proměnné bude
/cosi.asp.
PATH_TRANSLATED
Vrací fyzickou cestu k právě prováděnému skriptu, typicky například
C:\InetPub\WWWroot\default.asp. K převodu relativní na absolutní cestu je lepší používat Server.MapPath.
LOCAL_ADDR
Vrací IP adresu serveru, přesněji řečeno IP adresu, kterou požadoval klient.
SERVER_NAME
Vrací název serveru tak, jak jej požadoval klient. Pokud tedy klient šel na URL
http://www.kdesi.cz/, bude obsahem této proměnné
www.kdesi.cz.
SERVER_PORT
Vrací číslo portu, na kterém běží aktuální WWW server (standardně 80).
SERVER_PROTOCOL
Vrací typ protokolu, jakým byla stránka načtena, typicky
HTTP/1.1.
HTTP_USER_AGENT
Jedna z nejzajímavějších serverových proměnných. Vrací typ prohlížeče, jeho verzi a operační systém, tedy například pro můj MSIE 5.0 beta 2 na Windows NT 4.0 vrátí
Mozilla/4.0 (compatible; MSIE 5.0b2; Windows NT).
SERVER_SOFTWARE
Vrací název a verzi WWW serveru, tedy například
Microsoft-IIS/4.0.
REQUEST_METHOD
Vrací metodu, jakou byl požadován aktuální skript, nejčastěji
GET, při předávání hodnot některých formulářů
PUT.
REMOTE_ADDR
Vrací IP adresu klientova počítače.
QUERY_STRING
Vrací část URL za otazníkem, tedy pro
http://www.kdesi.cz/cosi.asp?prom1=val1&prom2=val2 vrátí
prom1=val1&prom2=val2. Vhodná pro speciální případy (volání skriptu jako
něco.asp?parametr), jinak je lepší používat kolekci
Request.QueryString.
LOGON_USER
Pokud klient používá jinou identifikaci, než anonymní uživatel (u IIS standardně
IUSR_jménostroje), je v této proměnné uloženo jméno tohoto uživatele, jinak je proměnná prázdná. Pokud si chcete vynutit přihlášení uživatele, můžete použít následující úsek kódu:
<%If Request.ServerVariables("LOGON_USER") = "" Then Response.Status = "401 Unauthorized"%>.
Pokud přistupujete k vlastnímu počítači, zareaguje MSIE při obdržení odpovědi
401 Unauthorized zasláním identifikace uživatele, pod kterým jste přihlášeni a teprve při druhém neúspěšném pokusu zobrazí okno pro přihlášení.
Jméno uživatele je vraceno ve formátu typickém pro Windows NT, tedy DOMÉNA\Uživatel. Jste-li přihlášen do domény CPINET jako uživatel Valasek, bude obsahem proměnné CPINET\Valasek. Pokud nejste přihlášen do domény, ale jenom ke svému počítači, bude místo domény uveden název vašeho stroje. Uživatel Altair na počítači RIDER tedy obdrží hodnotu RIDER\Altair.