ASP tip: K čemu jsou dobré serverové proměnné?

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.
  

Určitě si přečtěte

Články odjinud