Dnes se podφvßme na skripty z dφlny Microsoftu. Microsoft z poΦßtku nßstup Internetu pon∞kud zaspal, ale dnes ji₧ nabφzφ ucelenou °adu produkt∙ pro vytvo°enφ aplikacφ pracujφcφch v prost°edφ Internetu.
Na stran∞ klienta dnes svßdφ boj Internet Explorer s konkurenΦnφm Netscape Communicatorem. Ve svΘ poslednφ verzi je Internet Explorer prohlφ₧eΦem s nejlepÜφ podporou HTML 4.0 a kaskßdov²ch styl∙ -- na druhou stranu se pravideln∞ objevujφ zprßvy o odhalenφ r∙zn²ch bezpeΦnostnφch d∞r.
Na poli WWW-server∙ nabφzφ Microsoft n∞kolik produkt∙. Pro komerΦnφ nasazenφ je urΦen Internet Information Server (IIS). Pro jednoduÜÜφ a mΘn∞ rozsßhlΘ aplikace je urΦen Personal Web Server (PWS).
Oba dva d°φve zmφn∞nΘ servery lze doplnit o podporu skript∙. U Microsoftu t∞mto skript∙m °φkajφ Active Server Pages (ASP). ASP fungujφ na principu serverem vklßdan²ch vsuvek -- strßnku doplnφme o p°φkazy, kterΘ se v₧dy p°ed odeslßnφm strßnky provedou na serveru. Jako skriptovacφ jazyk m∙₧eme pou₧φt VBScript nebo JScript. (JScript je implementace JavaScriptu od Microsoftu.) DalÜφ firmy nabφzejφ moduly i pro jinΘ jazyky -- nap°. pro Perl, REXX a Python.
Pokud jsme cht∞li d°φve pou₧φvat ASP, byla to celkem nßkladnß legrace. Museli jsme si po°φdit Windows NT Server a IIS, co₧ nenφ ₧ßdnß lacinß zßle₧itost. K tomu je jeÜt∞ pot°eba p°iΦφst zv²ÜenΘ nßroky na hardware. A¥ chceme nebo ne, je °eÜenφ postavenΘ nad produktech od Microsoftu vφce nßroΦnΘ na systΘmovΘ zdroje ne₧ obdobnΘ °eÜenφ zalo₧enΘ na voln∞ Üi°iteln²ch produktech pro Unix.
Cenovou nßroΦnost ΦßsteΦn∞ eliminuje Windows NT Option Pack, kter² uvolnil Microsoft na konci roku 1997. V balφku zdarma dostaneme i Personal Web Server s podporou ASP. To ji₧ dostaΦuje pro v²voj aplikacφ zalo₧en²ch na ASP. Pokud vÜak chceme, aby s v²slednou aplikacφ mohlo pracovat v∞tÜφ mno₧stvφ u₧ivatel∙, musφte ji spustit pod Windows NT Server, na kterΘm pob∞₧φ Internet Information Server.
<%
' a '%>
'. Oproti SSI nejsou pou₧ity k
ohraniΦenφ p°φkaz∙ komentß°e, tak₧e si tΘm∞° nemß cenu prohlφ₧et ASP
strßnku v prohlφ₧eΦi bez p°edchozφho zpracovßnφ vÜech p°φkaz∙ serverem.
V²hodou je, ₧e zßpis znak∙ pro odd∞lenφ ASP p°φkaz∙ je kratÜφ ne₧ zßpis
komentß°∙. I tak je vÜak volba odd∞lovacφch znak∙ p°inejmenÜφm podivnß,
proto₧e jazyk SGML (pomocφ, kterΘho je HTML definovßno) vyhrazuje pro
podobnΘ ·Φely znaky '<?
' a '>
'. Text
mezi nimi ignorujφ nap°. programy pro syntaktickou kontrolu HTML k≤du.
P°ed touto mo₧nostφ vÜak mßme s ASP dve°e uzav°eny.
Jak jsme ji₧ °ekli, m∙₧eme ASP psßt ve vφce jazycφch. V naÜich ukßzkßch budeme pou₧φvat VBScript, co₧ je skriptovacφ jazyk velmi p°φbuzn² Visual Basicu. Standardnφ skriptovacφ jazyk, kter² se na strßnkßch pou₧φvß lze nastavit v konfiguraci serveru. Pokud chceme na strßnce pou₧φt jin² skriptovacφ jazyk, pou₧ijeme na zaΦßtku strßnky nßsledujφcφ direktivu:
<% LANGUAGE=jazyk %>Jako jazyk m∙₧eme b∞₧n∞ pou₧φt VBScript nebo JScript.
Aby server mohl odliÜit b∞₧nΘ strßnky od t∞ch s ASP, uklßdajφ
se ASP do soubor∙ s p°φponou .asp
.
<%= v²raz
%>
. K zobrazenφ aktußlnφho Φasu na serveru m∙₧eme pou₧φt
funkci Now
:
<%= Now %>K p°i°azenφ hodnoty do prom∞nnΘ se pou₧φvß '='. Pokud tedy na strßnce definujeme prom∞nnou
pozdrav
<% pozdrav = "Ahoj Karle!" %>M∙₧eme ji pak dßle pou₧φvat ve v²razech nebo vypsat pomocφ p°φkazu
<%= pozdrav %>
.
K °φzenφ toku b∞hu programu m∙₧eme pou₧φt p°φkaz If
.
Nßsledujφcφ ukßzka zobrazφ na strßnce velk²mi Φerven²mi pφsmeny pozdrav.
Text pozdravu se bude m∞nit podle toho, kdy se u₧ivatel podφvß na
strßnku.
<FONT SIZE="+3" COLOR=RED> <% If Time >= #12:00:00 AM# And Time <= #12:00:00 PM# Then %> DobrΘ rßno! <% Else %> DobrΘ odpoledne! <% End If %> </FONT>Ukßzka zaslou₧φ malΘ vysv∞tlenφ. Prvnφ °ßdka zp∙sobφ pou₧itφ v∞tÜφho, ΦervenΘho pφsma. Nßsleduje podmφnka, kterß zjiÜ¥uje zda je dopoledne Φi odpoledne -- aktußlnφ Φas zjiÜ¥ujeme pomocφ funkce
Time
.
Pokud je dopoledne, prohlφ₧eΦi se poÜle text "DobrΘ rßno!", v opaΦnΘm
p°φpad∞ do prohlφ₧eΦe dorazφ "DobrΘ odpoledne!".
Dopoledne tedy bude v²sledkem skriptu nßsledujφcφ HTML k≤d, kter² bude poslßn prohlφ₧eΦi:
<FONT SIZE="+3" COLOR=RED> DobrΘ rßno! </FONT>Naopak odpoledne do prohlφ₧eΦe dorazφ:
<FONT SIZE="+3" COLOR=RED> DobrΘ odpoledne! </FONT>P°φklad jsme rozebrali podrobn∞ji, abychom si uv∞domili, ₧e p°i pou₧itφ ASP a skript∙ na stran∞ serveru v∙bec, dorazφ do prohlφ₧eΦe zcela b∞₧nΘ HTML. VeÜkerΘ p°φkazy jsou vykonßny na serveru t∞sn∞ p°ed odeslßnφm strßnky.
Nemßme zde dostatek prostoru pro rozebrßnφ vÜech mo₧nostφ, kterΘ VBScript nabφzφ, ale ve struΦnosti si jeÜt∞ ukß₧eme, jak lze vyu₧φt cykly.
Pokud chceme na strßnce zobrazit vÜech sedm velikostφ pφsma, kterΘ nßm HTML nabφzφ, m∙₧eme si zßpis uÜet°it pomocφ tohoto krßtkΘho skriptu:
<% For I = 1 to 7 %> <FONT SIZE=<%= I %>>Ukßzkov² text</FONT><BR> <% Next %>Do prohlφ₧eΦe pak ve skuteΦnosti dorazφ mnohem delÜφ text:
<FONT SIZE=1>Ukßzkov² text</FONT><BR> <FONT SIZE=2>Ukßzkov² text</FONT><BR> <FONT SIZE=3>Ukßzkov² text</FONT><BR> <FONT SIZE=4>Ukßzkov² text</FONT><BR> <FONT SIZE=5>Ukßzkov² text</FONT><BR> <FONT SIZE=6>Ukßzkov² text</FONT><BR> <FONT SIZE=7>Ukßzkov² text</FONT><BR>Vidφme, ₧e pomocφ ASP p°φkaz∙ m∙₧eme ovliv≥ovat i p°φmo hodnotu atribut∙ jednotliv²ch element∙ -- v naÜem p°φpad∞ atributu
SIZE
.
Formulß° se do HTML strßnky vklßdß pomocφ elementu FORM
.
<FORM ACTION=obsluha.asp METHOD=GET> JmΘno: <INPUT TYPE=TEXT NAME=jmeno><BR> V∞k: <INPUT TYPE=TEXT NAME=vek><BR> <INPUT TYPE=SUBMIT VALUE="Odeslßnφ formulß°e"> </FORM>Atribut
ACTION
urΦuje jmΘno skriptu, kter² bude pou₧it pro
zpracovßnφ obsahu formulß°e. Formulß° obsahuje dv∞ vstupnφ pole pro
zadßnφ jmΘna a v∞ku. Pole se jmenujφ jmeno
a
vek
. Poslednφm prvkem formulß°e je tlaΦφtko, kterΘ slou₧φ k
odeslßnφ formulß°e. Vzhled formulß°e v prohlφ₧eΦi si m∙₧eme prohlΘdnout
na obr. 1.
Formulß°i se budeme zab²vat podrobn∞ji v samostatnΘm dφle naÜeho serißlu, nynφ nßm postaΦφ nßÜ jednoduch² formulß° pro demonstraci spoluprßce ASP s formulß°i.
Ve skriptu, kter² obsluhuje formulß° (v naÜem p°φpad∞
obsluha.asp
), m∙₧eme zjistit obsah jednotliv²ch vstupnφch
polφ pomocφ kolekce Request.QueryString
. KonkrΘtn∞ jmΘno
zjistφme pomocφ Request.QueryString("jmeno")
a v∞k pomocφ
Request.QueryString("vek")
.
Ukß₧eme si, jak by mohl vypadat soubor obsluha.asp
.
Budeme chtφt, aby se jmΘno vypsalo spoleΦn∞ se slovnφm pojmenovßnφm
v∞kovΘ kategorie.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <TITLE>Obsluha formulß°e</TITLE> </HEAD> <BODY> <H1>V²sledek obsluhy formulß°e</H1> <%= Request.QueryString("jmeno") %> je <% vek = Request.QueryString("vek") If vek < 10 Then Response.Write "p∞knej mlφΦnßk" ElseIf vek < 20 Then Response.Write "teenager" ElseIf vek < 60 Then Response.Write "v nejlepÜφch letech" ElseIf vek < 100 Then Response.Write "je pravd∞podobn∞ prarodiΦ" Else Response.Write "je n∞kde mezi stovkou a smrtφ" End If %>. </BODY> </HTML>P°φkaz
Response.Write
zapφÜe zadan² text p°φmo do t∞la
generovanΘ strßnky. StejnΘho v²sledku dosßhneme i pou₧itφm pon∞kud
odliÜnΘho zßpisu bez pou₧itφ Response.Write
.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <TITLE>Obsluha formulß°e</TITLE> </HEAD> <BODY> <H1>V²sledek obsluhy formulß°e</H1> <%= Request.QueryString("jmeno") %> je <% vek = Request.QueryString("vek") If vek < 10 Then %> p∞knej mlφΦnßk. <% ElseIf vek < 20 Then %> teenager. <% ElseIf vek < 60 Then %> v nejlepÜφch letech. <% ElseIf vek < 100 Then %> je pravd∞podobn∞ prarodiΦ. <% Else %> je n∞kde mezi stovkou a smrtφ. <% End If %> </BODY> </HTML>V²sledek naÜe ASP skriptu po zadßnφ jmΘna "Karel Karafißt" a v∞ku 37 si m∙₧eme prohlΘdnout na obrßzku 2.
Pokud vßm mo₧nosti tvorby dynamick²ch strßnek pomocφ ASP p°ipadajφ p°φmo skv∞lΘ, mßte pravdu. Budeme vÜak objektivnφ a p°φÜt∞ se podφvßme na systΘm PHP3. Ten nabφzφ obdobnΘ mo₧nosti jako ASP a mß i n∞kterΘ v²hody. Jednak je zdarma a jednak je i svi₧n∞jÜφ ne₧ ASP. Navφc netrpφ znßmou nectnostφ ASP -- pokud ASP strßnky na jednom serveru vy₧aduje p°φliÜ mnoho u₧ivatel∙ najednou, server se zastavφ a je pot°eba jej restartovat Jak tΘto situaci p°edejφt a °ßdn∞ otestovat v²konnost aplikace na serveru bude samoz°ejm∞ nßplnφ n∞kterΘho z dalÜφch pokraΦovßnφ serißlu.