You are on page 1of 142

L nh Duy - H KHTN Tp.

HCM

Email: ledduy@ieee.org

Chng 1

T mt chun cho cc ti liu vn bn, HTML ngy nay c th


cha hnh nh, m thanh, video, v cho php pht trin cc ng
dng thng qua Common Gateway Interface (CGI), ASP, JSP, PHP,
Java Servlet, ....

GII THIU MNG INTERNET


1. S LC V MNG INTERNET
1.1. Lch s mng Internet
Mng Internet xut pht t mng ARPANET ca M v ngy nay
tr thnh mng ton cu kt ni hng trm triu ngi trn th
gii. Mng my tnh ton cu Internet c th c xem nh l mng
ca tt c cc mng (network of networks), trong ngi dng ti
bt c my tnh no u c th truy cp ti cc thng tin ca cc
my khc (nu c php). Mng Internet ban u c bit di
tn l ARPANET do t chc Advanced Research Projects Agency
(ARPA) ca M thit lp nm 1969.
Mc ch chnh ca mng ny l to c s cho cc my tnh
nghin cu ca cc trng i hc c th kt ni v trao i vi
nhau. Thit k ca ARPANET c o ch l mng vn c th
hot ng khi mt phn ca n b ph hy trong cc trng hp
chin tranh hoc thin tai.
Ngy nay mng Internet l mt mng cng cng kt ni hng
trm triu ngi trn th gii. V mt vt l, mng Internet s dng
mt phn ca ton b cc ti nguyn ca cc mng vin thng cng
cng ang tn ti (public telecommunication networks). V mt k
thut, mng Internet s dng tp cc giao thc gi chung l TCP/IP
(Transmission Control Protocol/Internet Protocol). Hai m phng ca
cng ngh mng Internet l intranet and extranet cng s dng cc
giao thc ny.
S ra i ca giao thc HTTP v HMTL nh du mt bc
ngoc mi trong vic s dng Internet. Cho ti nm 1990 cc dch
v c bn ca Internet vn ch l e-mail, listserv, telnet, v ftp. Nm
1992, Tim Berners-Lee, mt nh vt l hc ti CERN pht trin
cc giao thc cho World Wide Web (WWW). Trong khi tm kim
cch lin kt cc ti liu khoa hc li vi nhau, anh ta to ra
Hypertext Markup Language (HTML), mt tp con ca Standard
Generalized Markup Language (SGML).

L nh Duy - H KHTN Tp. HCM

Hnh 1.1 M hnh mng Internet

1.2. Mt s kin thc lin quan n mng Internet


1.2.1. a ch IP (IP Address)
a ch IP l mt con s 32-bit dng xc nh i tng nhn
v gi thng tin trn Internet. Khi bn yu cu mt trang HTML hay
gi e-mail, a ch IP ca bn s c gi i cng cc gi tin n a
ch IP ca ngi nhn. Mt khi ngi nhn nhn c yu cu ca
bn, h s cn c trn a ch IP m bn gi km gi kt qu tr
v.
n gin ha ngi ta phn con s ny thnh 4 con s 8 bit
vit cch nhau bi du chm .. V mi my l mt phn ca mng
nn ngi ta chia a ch IP thnh 2 phn l phn m t mng
(network) m my thuc v v phn m t my (local host). Nu
tt c cc bit ca vng m t my bng 0, th a ch IP dng m
t a ch mng (network address); Nu tt c cc bit ca vng m t
my bng 1, th a ch IP ny chnh l a ch broadcast (broadcast
4

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

address); Nu khng thuc hai trng hp trn, a ch IP ny dng


m t a ch my (host address).
a ch IP t n khng cha thng tin v phn no m t mng,
phn no m t my m thnh phn subnet mask i km vi mi a
ch s cung cp thng tin ny. Theo qui c, vng cc bit 1 xc nh
vng m t mng, v vng cc bit 0 xc nh vng m t my. Trong
subnet mask ch gm 2 dy lin tc cc bit 1 v dy lin tc cc bit 0
nm lin tip nhau tnh t tri sang.
Cc a ch IP c phn thnh 3 lp A, B, C ty theo gi tr ca
3 bytes u tin. Theo th:
Class

Available Network
Address

# of
Networks

# of Hosts

Default
Subnet

1 - 126

126

16.7 million

255.0.0.0

128.xxx 191.xxx

16.384

65.536

255.255.0.0

192.xxx.xxx
223.xxx.xxx

2.097.152

256

255.255.255.0

Vic phn chia a ch IP trn Internet do ICANN chu trch


nhim. a ch IP thng c qun l bi cc nh cung cp dch v
Internet (ISP Internet Service Provider). Cc a ch IP ny thng
c gi nm na l a ch IP thc. Nu bn mun thit lp mt
website m ngi dng Internet c th truy cp vo c, t nht
my ch cha website phi c a ch IP thc. Nu bn khng c a
ch IP thc, bn phi s dng dch v webhosting thu ch t
website trn cc my ch c a ch IP thc c kt ni vi
Internet.

Hnh 1.2 - Minh ha thit lp giao thc TCP/IP

1.2.2. Tn min (Domain name)


Tn min c th c xem nh l tn giao dch ca cng ty hay
t chc trn Internet. Tn min ca cc cng ty thng mi thng
c dng yourcompany.com. V d, cng ty Intel s ly tn l min
l intel.com; cng ty Microsoft ly tn min l microsoft.com; ...
Vic a ra khi nim tn min gip cho vic truy cp n cc ti
nguyn trn Internet d dng hn. Vic nh x qua li gia tn min
v a ch IP ca my phc v c thc hin bi DNS Server.

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

V d mt a ch www.intel.com cho ta mt s thng tin sau: y


l a ch ca mt my thuc t chc s hu tn min intel.com
(chnh l cng ty Intel). a ch IP ca my ny s l
192.102.198.160 (s dng chng trnh nslookup tra) v my
ny c tn l www (thng thng l my cung cp dch v web).
Phn "com" trong tn min m t mc ch ca t chc (trong
trng hp ny l "commercial" thng mi) v c gi l tn
min cp 1 (top-level domain name). Phn ngay trc du . trong
tn min trn thng thng l tn ca t chc (v d nh intel) c
gi l tn min cp 2 (second-level domain name). Tn min cp 3
thng thng c dng nh ngha mt my phc v c th no
v ton b chng s c nh x ti mt a ch Internet.

hng nm. Nu ht thi hn s hu m bn khng tr chi ph, tn


min ny c th b ngi khc mua li (v s rt kh khn khi bn
mun i li tn min ny t tay ngi khc). Trn Internet hin nay
c nhiu ngi thng mua trc cc tn min ca cc cng ty m
h d on s ni ting nhng cha lp trang web. Sau ny khi cc
cng ty ny cn tn min, h s bn li vi gi rt t. Tuy nhin,
bn vn c th mua trc tn min m cha cn lp website.

Tn min cp 1 bao gm cc m quc gia ca cc nc tham


gia Internet c quy nh bng hai ch ci theo tiu chun ISO 3166 nh Vit nam l VN , Anh quc l UK, Nht bn l JP, ... v 7
lnh vc dng chung, trong c 5 dng chung cho ton cu v 2
ch dng M.
Nm tn min cp 1 dng chung l:
.com: cng ty thng mi (commercial).

Hnh 1.3 Phn cp ca cc tn min

.edu: cc trng hc, t chc gio dc (education).

2. CC DCH V C BN CA MNG INTERNET

.net: cc mng (network)

2.1. World Wide Web (WWW)

.int: cc t chc quc t (international organizations)

y l dch v thng dng nht trn Internet. s dng dch v


ny, ngi dng cn c mt trnh duyt web thng c gi l
browser. Hai trnh duyt thng dng nht hin nay l Internet
Explorer ca cng ty Microsoft v Netscape Navigator ca cng ty
Netscape.

.org: cc t chc khc (other organizations).


Hai tn min cp 1 ch dng M l:
.gov: cc t chc chnh ph (government).
.mil: cc t chc qun s (military).
Mt a ch IP c th c nh x cho nhiu tn min. iu ny
cho php nhiu c nhn, cng ty v cc t chc chia s cng mt
Internet server.
Do tm quan trng ca tn min nn mt trong cc bc u
tin ca vic xy dng website l thit lp tn min bng cch mua
t cc cng ty c u quyn bn tn min (http://www.internic.net).
Cc tn min c ui l .com rt thng dng trong cc giao dch
quc t. Ngoi ra, cc cng ty Vit nam cng thng hay ly tn
min c ui l .com.vn. s hu tn min, bn phi tr chi ph
L nh Duy - H KHTN Tp. HCM

truy cp vo mt trang web, bn cn phi bit a ch (URL Uniform Resource Locator) ca trang web . V d, truy cp vo
trang
web
ca
cng
ty
Microsoft,
bn
g
vo:
http://www.microsoft.com/ms.htm. Do dch v ny s dng giao thc
HTTP (Hypertext Transfer Protocol) nn mi a ch trang web lun
c bt u l http://

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Giao thc thng dng gi/nhn e-mail l SMTP(Simple Mail


Transfer Protocol)/POP3 (Post Office Protocol 3).
s dng dch v email, bn cn phi c:
a ch email. Mt a ch email thng c dng
name@domainname. V d, trong a ch email
duyld@yahoo.com, duyld ng vai tr l tn, yahoo.com l tn
min.
a ch email c qun l bi mail server. Ti Vit Nam, cc
nh cung cp dch v email thng l cc ISP nh VDC, FPT,
SaigonNet. Do , tn min trong cc a ch email ca bn
thng l: hcm.vnn.vn, hn.vnn.vn, hcm.fpt.vn, fpt.vn,
saigonnet.vn, ... Tuy nhin, c rt nhiu website trn Internet
cung cp dch v email min ph. Thng dng nht vn l
Yahoo, Hotmail, ...
Tn ng nhp v mt khu truy cp vo hp th: iu
ny m bo rng ch c bn mi c th c v gi cc th
ca chnh mnh.
Hnh 1.4 Dng IE truy cp trang web cng ty Microsoft

2.3. Truyn, ti tp tin - FTP

Trong mi trang web m bn truy cp vo, bn c th thy c


vn bn, hnh nh, m thanh, ... c trang tr v trnh by ht sc
p mt. Ngoi ra, c th di chuyn ti cc trang web khc, bn
c th s dng cc hyperlink (siu lin kt). Do con tr chut thng
thay i hnh dng ngang qua mt i tng c cha hyperlink nn
y l cch n gin nhn din chng.
S ra i ca www thc s l mt bc ngot ln ca mng
Internet bi v n to c hi cho bn truy cp n mt kho thng tin
khng l vi hng triu triu trang web. iu ny m ra nhiu c hi
v thch thc ln cho cng vic ca bn trong hin ti v tng lai.

FTP (File Transfer Protocol) l dch v dng trao i cc tp


tin gia cc my tinh trn Internet vi nhau. FTP thng c dng
ti cc trang web t nhng ngi thit k n cc my ch. N
cng thng c dng ti cc chng trnh v cc tp tin khc
t cc my ch trn mng.
Mt s chng trnh FTP vi giao din ha thn thin hu ch
hin nay l:
WS_FTP (http://www.ipswitch.com)
CuteFTP (http://www.cuteftp.com)

2.2. Th in t - Email

FTP Explorer (http://www.winsite.com)

E-mail (electronic mail) l dch v trao i cc thng ip in t


bng mng vin thng. Cc thng ip ny thng c m ha
di dng vn bn ASCII. Tuy nhin bn cng c th gi cc tp tin
hnh nh, m thanh cng nh cc tp tin chng trnh km theo
email. E-mail l mt trong nhng dch v nguyn thy ca Internet v
c s dng rt rng ri. Chim phn ln thng lng trn mng
Internet l e-mail.
L nh Duy - H KHTN Tp. HCM

2.4. Tn gu - Chat
Dch v tn gu cho php ngi dng c th trao i trc tuyn
vi nhau qua mng Internet. Cch thng dng nht l trao i bng
vn bn. Nu ng truyn tt, bn c th tr chuyn tng t nh
ni chuyn in thoi.

10

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Cc chng trnh h tr tn gu thng dng hin nay l:

Google (http://www.google.com)

AOL Instant Messenger

Yahoo Messenger
Cc chng trnh ny khng nhng h tr tn gu qua vn bn
thng thng m cn h tr tr chuyn bng m thanh (voice chat)
v hnh nh (webcam)

3. KHAI THC CC TI NGUYN CA MNG INTERNET


3.1. Mt s website hu ch
3.1.1. Tra cu thng tin
Altavista (http://www.altavista.com)

Yahoo (http://www.yahoo.com)

L nh Duy - H KHTN Tp. HCM

11

12

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

3.1.2. Th vin phn mm


3.1.3. Nghin cu, khoa hc, gio dc

ZDNet (http://www.zdnet.com/downloads/)

Codeguru (http://www.codeguru.com)

CNet (http://download.cnet.com)

L nh Duy - H KHTN Tp. HCM

CodeProject (http://www.codeproject.com)

13

14

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

MSDN (http://msdn.microsoft.com)

ProgrammersHeaven (http://www.programmersheaven.com)

3.1.4. Mua bn trc tuyn


Expert exchange (http://www.experts-exchange.com)

L nh Duy - H KHTN Tp. HCM

Amazon (http://www.amazon.com)

15

16

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

eBay (http://www.ebay.com)

3.2. Mt s cng c khai thc ti nguyn Internet


3.2.1. Teleport Pro (http://www.tenmax.com)
Cng c rt hu ch cho php ti ton b website. iu ny gip
chng ta xem website offline ngay trn my ca mnh, tit kim thi
gian truy cp Internet.
Teleport Pro hot ng hon ton t ng, chng trnh t chia
lm nhiu nhnh hot ng ng thi (multithreaded). Ngoi ra
chng trnh ny cn c ch t ng ti theo lch (schedule)

Yahoo Shopping (http://shopping.yahoo.com)

Hnh 1.5 - Mn hnh giao din ca Teleport Pro

3.2.2. FlashGet (http://www.flashget.com)


FlashGet l cng c nhm h tr cho ti cc tp tin trn Internet
v qun l chng mt cch hiu qu. Thng thng, vic ti mt tp
tin t Internet khng thnh cng do ng truyn chm hay mt s
c no .
FlashGet c bit hiu qu hai kh nng l ti cc tp tin
ln v qun l cc tp tin ti v phc v cho nhu cu cp nht
hoc ti li sau ny. FlashGet ti cc tp tin bng cch ch nh
(split) cc tp tin thnh cc phn nh v ti cc phn ny ng thi.
L nh Duy - H KHTN Tp. HCM

17

18

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

iu ny tn dng ti a ng truyn rnh v gim thi gian ti


mt tp tin rt ng k. Trong trng hp ng truyn chm hoc
hay b t qung na chng, FlashGet duy tr c trng thi hin
hnh cc tp tin ny c th tip tc ti mt khi ng truyn hot
ng tt tr li.
FlashGet tch hp vi cc trnh duyt mt khi bn click vo
mt hyperlink c ti tp tin, chng trnh FlashGet s t ng bt
ln v t ng ti tp tin v.

nhn nt Validate loi b cc links; cc websites khng cn hot


ng v nt Refine tinh chnh kt qu tm kim hn na.
Kt qu tm thy c trnh by trong ca s bn di trong
nhng theo th t mc lin quan vi ch tm kim, c tn v
a ch cc trang web, th t, ngy tm c v h thng d tm no
tm c, v vi dng vn bn m t cc trang web . Cc font
ch v mu sc trong cc ny c th c iu chnh theo
ngi dng. Kt qu c t ng lu li sau ny xem li hoc
cp nht (update), tc l tm kim li nhng ch tm nhng thng
tin mi nn c kt qu rt nhanh.
Khi c kt qu, Copernic ngh ta xem bng trnh duyt c sn
c gi l Results Explorer, hoc khi ta nhn vo nt Results. Lc
ny kt qu tm thy c trnh by chi tit hn v p hn di
dng HTML.Trong Results Explorer, cc a ch tm c c th
c duyt, ti v mt cch d dng thun tin, v c lu li
sau ny xem li.
Nu bn s dng Internet Explorer, nt Search trn Tool Bar s
c Copernic s dng, v nh th trong khi lt trn Internet bt
c lc no bn cng c th nhn nt Search tm kim thng tin
bng Copernic.

4. MT S THUT NG THNG DNG


Internet: Mng my tnh ton cu kt ni cc mng my tnh
khp ni trn th gii. Tp cc giao thc c dng gi
chung l TCP/IP.
Intranet: Mng cc b c kin trc tng t mng Internet.
Hnh 1.6 - Mn hnh giao din ca FlashGet

Website: Tp hp cc trang web. Website ca cc t chc


hay c nhn trn mng bao gm tp hp cc trang web lin
quan n t chc ny.

3.2.3. Copernic (http://www.copernic.com)


Copernic l phn mm tm kim thng minh v a nng v n cho
php ngi dng iu khin nhiu my tm kim (search engines)
cng mt lc tm kim thng tin m mnh yu cu. Copernic c
th s dng n 1000 my tm kim ni ting v quan trng nht
trn Internet.

Webpage: L trang web. C th hin th cc thng tin di


dng vn bn, hnh nh, m thanh, ...
Web browser: Trnh duyt web, dng hin th cc trang
web. Cc web browser thng dng hin nay l Internet
Explorer ca cng ty Microsoft v Netscape Navigator ca
cng ty Netscape.

Copernic tm kim cng mt lc trn tt c cc my tm kim


trong nhm nn c kt qu rt nhanh.Trong khi tm kim n t ng
loi b cc kt qu trng lp. Khi c kt qu, ngi dng c th

L nh Duy - H KHTN Tp. HCM

19

Homepage: Trang ch hay cn gi l trang nh. Thng l


trang u tin (mc nh) khi truy cp mt website.
20

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Hyperlink: siu lin kt. Dng lin kt cc trang web v


dch v ca cc website trn Internet.
IAP (Internet Access Provider): Nh cung cp ng truyn
Internet.
ISP (Internet Service Provider): Nh cung cp dch v
Internet. Thng thng, bn phi thng qua mt ISP no
ng k dch v truy cp Internet qua mng in thoi. Cc
nh cung cp ISP hin nay ti Vit Nam l VDC, FPT,
SaigonNet, NetNam, ...
Search engines: My tm kim. Do s lng cc trang web
trn Internet rt ln nn cc my tm kim s h tr cho bn
khi cn truy tm cc trang web lin quan ti vn m bn
quan tm trong tp hp khng l cc trang web ny. Cc my
tm kim thng dng hin nay l Yahoo, Google, Altavista, ...
HTTP, FTP, SMTP, POP3, ...: y l cc giao thc c
dng cho cc dch v web, ftp, email trn Internet.

5. MT S CU HI THNG GP
5.1. Cch lu mt trang web t Internet
Cch 1: Nu bn dng trnh duyt Internet Explorer t 5.0 tr ln
hy chn chc nng Favorites/Add to Favorites sau nh du
chn vo Make available offline. Khi ton b trang Web cng cc
tp tin i km s c ti v. Ln sau, bn ch cn vo li Favorites
v chn trang ti v.

5.3. Ti tp tin bng email


Thng thng trong cc mng m kt ni khng c duy tr
lin tc, vic ti mt tp tin qua giao thc ftp hu nh rt kh khn.
Tuy nhin bn c th vn ti c tp tin lu ftp server thng qua
email vi s tr gip ca mt FTPMail Server. C th tm tt nh
sau :
5.3.1. Hot ng ca FTPMail Server:
Thay v bn phi kt ni trc tuyn ti FTP server (theo email
ca bn l host.domain) v thc hin cc lnh ti tp tin v (cch
ny thng t khi thnh cng v ng kt ni ca chng ta qu
chm), FTPMail server s nhn yu cu ca bn qua email di
dng cc lnh ca giao thc ftp, sau n s truy cp ti FTP
server m bn yu cu ti tp tin v. Cui cng n s chuyn tp
tin sau khi ti v thnh dng email ri gi v cho bn.
5.3.2. Cc bc thc hin:
Bn cn phi bit a ch ca FTPMail Server gi yu cu n
, v d bn c th s dng a ch sau ftpmail@ftp.sunet.se. Cc
a ch khc c th l: ftpmail@doc.ic.ac.uk, ftpmail@ieunet.ie,
ftpmail@ftp.uni-stuttgart.de , bitftp@vm.gmd.de.
Bn phi tm hiu cch vit cc lnh ftp yu cu FTPMail
server ti tp tin v: c th lm iu ny bng cch gi email ti
FTPMail Server, phn body g help. Cc lnh c bn l OPEN, DIR,
GET, QUIT, ...

Cch 2: Nu bn mun lu tt c cc thnh phn ca trang web


(bao gm hnh nh, ...) di dng mt tp tin th trong hp thoi
Save As, chn dng Save As Type l Web Archive, single file
(*.mht).

i vi cc tp tin c kch thc ln, FTPMail Server s t ng


"ch" (split) ra thnh cc mnh nh v kt qu l bn s nhn c
rt nhiu email kt qu. c c tp tin m bn yu cu, cn
phi "ni" (merge) cc kt qu ny li. Nu s dng Outlook
Express, chng trnh ny s t ng lm cho bn.

5.2. Lm th no sau khi check mail xong, mail vn


cn trn server

Cc FTPServer Mail thng rt bn, nn sau khi gi yu cu i


bn phi kin nhn nh kt qu tr v (nu chm c th vi ngy).

Sau khi check mail bng Outlook Express m mail vn khng b


xa trn mail server.Bn vo Outlook Express chn menu
Tools/Accounts. Chn account m bn setup nhn email t
Yahoo. Chn mc Properties/Advanced. Trong mc Delivery, check
vo Leave a copy of messages on server.

V d sau minh ha vic ti mt tp tin thng qua FTP Mail


Server bng cch gi email n a ch ftpmail@ftp.sunet.se vi ni
dung sau:

L nh Duy - H KHTN Tp. HCM

21

22

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

open ftp.ets.org
cd /pub/toefl
mode binary
uuencode
get 993007listb.pdf
quit

Lnh open u tin s yu cu FTP Mail Server kt ni vi FTP


Server ftp.ets.org. Lnh tip theo cd /pub/toefl yu cu chuyn n
th mc c tp tin cn ti. Lnh mode binary yu cu server truyn
d liu theo dng nh phn thay v dng vn bn ASCII. Lnh
uuencode yu cu server m ha d liu trc khi truyn i. Lnh
get yu cu server chuyn cho tp tin cn ly v v lnh quit chm
dt kt ni vi server ftp.ets.org. Sau khi FTP Mail Server kt ni vi
FTP Server thc hin cc lnh trn xong, tp tin ly v s c
FTP Mail Server chuyn v cho bn qua ng email.

5.4. Phng chng cc virus bng Norton AntiVirus


Hin nay, virus ly lan qua ng email rt nhanh. Do c
th bo v h thng ca bn khi b cc virus ly qua email, bn nn
ci t chng trnh phng chng virus thng dng nht hin nay l
Norton Antivirus. c im ca chng trnh ny l n c th kim
tra virus ton b cc email ti v my ca bn trc khi bn c n.
Khi gp virus, chng trnh s t ng thng bo hoc dit ngay ty
theo yu cu ca bn.

5.5. Phng chng virus ly lan qua ng email

Do virus mi xut hin ngy cng nhiu, nn bn phi thng


xuyn ti cc cp nht mi nht v cc virus mi ti website ca
cng
ty
Symantec
s
hu
phn
mm
ny.
http://www.symantec.com/avcenter/download.html hoc cho chy
chng trnh Live Update t ng cp nht cc thay i mi nht
ca phn mm ny.

u tin, m Address Book ra v chn New Contact tng t


nh thm vo mt tn mi. Trong ca s, thay v nh tn ca bn
b, g vo: !000 (du chm than v 3 s khng).

Hnh 1.7 - Mn hnh giao din ca phn mm Norton Antivirus 2001

y l mt mo vt gip trnh ly virus qua ng email khi my


ca bn b nhim virus. Lu l n khng gip cho my bn trnh b
nhim worm nhng n gip ngn chn vic s dng s a ch email
ca bn ly tip cho nhng ngi khc.

ca s bn di, ni m thay v g a ch email ca bn b,


g vo dng ch sau: WormAlert. Sau cng, hon tt cng vic
bng cch click Add, Enter v Ok
"!000" s c t u tin trong Address Book v n c
nh s 1. y s l "ngi" u tin m con Worm s bt u ly.
Nhng ngi ny li c a ch email l "WormAlert", khng ng
quy cch nn n khng th pht tn thng qua vic gi cho nhng
ngi tip theo c a ch trong Address Book ca bn.
Khi email khng c gi i, bn s nhn li mt thng bo
ngay lp tc trong Inbox. Nh vy, nu bn nhn c mt email

L nh Duy - H KHTN Tp. HCM

23

24

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

ni rng "Email addressed to WormAlert could not be delivered", bn


bit ngay l "Worm" ang nm ngay trong my bn.

5.6. S dng Internet trong hc tp

gi email bng ting Vit, trong cc ng dng nh Yahoo


Mail, Hotmail, Outlook, Outlook Express, bn phi thc hin nh
sau:
Trong Hotmail: t ch Rich Text Editor ON trong mc
chn bn tri ngay trn phn ni dung ca email

Khi s dng cc my tm kim nh Yahoo, Altavista, ... trong


vic tm cc trang web, mt trong cc nhng iu bt tin cho chng
ta l s kt qu tr v qu nhiu.
c th tm kim hiu qu hn trong lnh vc tin hc, bn c
th vo mt trong 2 site gip tra cu thut ng tin hc l:
http://www.webopedia.com v http://www.whatis.com . Ngoi vic
gii thch ngha ca mi thut ng Tin hc, cc bn s tm c
y cc lin kt ti cc site cha thng tin lin quan. V d, nu bn
mun tm cc site cha cc hng dn lp trnh, cng nh cc k
thut, ... v ASP, bn hy vo mt trong hai site trn g t cn tm
kim l ASP. Trong trang gii thch thut ng v ASP, bn s nhn
c cc lin kt ti cc site cn thit tm hiu v ASP.

5.7. Dng ting Vit Unicode trong cc email client


xem c ting Vit Unicode trong cc email gi n cc a
ch email Yahoo, Hotmail, bn phi t Encoding ca trnh duyt l
UTF-8 (Chn View/Encoding/UTF-8).

Hnh 1.9 Thit lp ch h tr ting Vit Unicode trong Hotmail

Trong Yahoo Mail: t ch Color and Graphics trong mc


Compose khi son tho email.

Hnh 1.8 Thit lp Encoding l UTF-8 trong trnh duyt IE

L nh Duy - H KHTN Tp. HCM

25

26

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

CU HI
1.

Hy cho bit cc dch v Internet thng dng v cc giao thc


c s dng cho cc dch v ny.

2.

Tm hiu cch phn lp trong a ch IP. Hy cho bit cc a ch


IP ca Vit Nam thuc lp no.

3.

Ti sao cn phi c s nh x gia tn min v a ch IP? Hy


cho bit tn ca dch v thc hin vic ny.

4.

Cho bit cc tn min c dng thng dng hin nay.

5.

Tm hiu mt s cng ty c y quyn cp tn min trn


Internet.

6.

Ch ra mt li ch ca mng Internet m bn hay cng ty ca


bn hoc c th c c.

Hnh 1.10 Thit lp ch h tr ting Vit Unicode trong


Yahoo Mail

5.8. Chat ting Vit trong Yahoo Messenger


Trn Windows NT/2000/XP, s dng UniKey 3.55
(http://unikey.sourceforge.net/bdownload.php#uk355) ta c th chat
bng ting Vit Unicode trong Yahoo Messenger. thc hin, hy
chn bng m Vietnamese Locale CP 1258 trong UniKey.
dng CP 1258 my ca bn cn ci t h tr ting Vit ca
Windows Vietnamese locale. Vi Windows XP, hy Control Panel/
Regional and Language Options/Languages/ Details. Sau , nu
trong hp thoi "Text Services and Input languages" cha thy
Vietnamese keyboard trong th chn "Add", sau chn Input
Language l Vietnamese.

L nh Duy - H KHTN Tp. HCM

27

28

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

THC HNH

Lu cc trang web li di dng cc tp tin ln sau c th


theo di trn my.
Dng chc nng Work Offline xem li cc trang web
truy cp m khng cn kt ni li Internet.

1. MT S THAO TC C BN S DNG MNG


INTERNET

Khai bo proxy server nu my kt ni Internet thng qua


proxy.

1.1. Kt ni

2. THIT LP DCH V EMAIL TRONG OUTLOOK


EXPRESS

kt ni c mng Internet, cn chun b cc bc sau:


Modem (internal hoc external).

thit lp dch v ny, bn thc hin cc bc sau:

ng in thoi.
ng k dch v vi cc nh cung cp dch v Internet bit
c s in thoi truy cp, tn ng nhp v mt khu. Ti
Vit Nam, bn c th ng k vi cc nh cung cp sau VDC,
FPT, SaiGonNet, . Sau khi ng k xong, bn s c nhn
mt s tn ng nhp, mt khu v s in thoi m bn s
quay s t my ca bn vo my ch ca nh cung cp dch
v.

Khi ng Outlook Express. Vo mc Tools/Accounts.../Add/Mail


Mn hnh sau s hin ra. Bn in vo H v tn. Tn ny s
c dng hin th trong mc From trong cc email m bn gi
i.

i vi VDC, c th s dng cc dch v VNN1260,


VNN1269, VNN-1260P. Dch v VNN1269 l dch v c
dng kh ph bin hin nay vi s in thoi quay vo l
1269, tn ng nhp l vnn1269, mt khu l vnn1269.
Sau khi ng k xong, vo mc Network Connections to mt
kt ni vi nh cung cp dch v. Tham kho thm ti:
http://support.vnn.vn/tailieu/#dichvu

1.2. S dng Internet Explorer truy cp web


Sau khi kt ni Internet thnh cng, hy s dng Internet
Explorer thc hin cc thao tc sau:
Truy cp cc website c cp trn;
Ln theo cc hyperlink truy cp n cc trang lin kt.
Lu cc trang trn li trong Favorites. Ln sau, s dng
Favorites c th chuyn n nhanh chng cc trang web
ny.
Refresh (yu cu li) cc trang web mi khi truy cp trang web
gp li do ng truyn.
L nh Duy - H KHTN Tp. HCM

29

Sau khi in xong, bn nhn nt Next. Mn hnh sau s hin ra.


Bn hy in vo a ch email ca mnh.
30

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Sau khi in xong, bn nhn nt Next. Mn hnh sau s hin ra.


Bn hy in vo a ch SMTP v POP3 mail server.

L nh Duy - H KHTN Tp. HCM

31

Sau khi in xong, bn nhn nt Next. Mn hnh sau s hin ra.


Bn hy in tn ng nhp v mt khu dng truy xut n mail
server.

32

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Sau khi in xong, bn nhn nt Next. Mn hnh sau s hin ra.


Bn hy nhn nt Finish kt thc vic thit lp.

3. NG K DCH V EMAIL MIN PH


http://mail.yahoo.com
http://www.hotmail.com
http://www.vol.vnn.vn
http://mail.fptnet.com.vn/
http://www.netsoft.vnn.vn/webmail/

4. THAM KHO CC TRANG WEB SAU


4.1. Cc site bn hng
http://shopping.yahoo.com
http://www.amazon.com
http://www.ebay.com
http://www.barnesandnoble.com/
L nh Duy - H KHTN Tp. HCM

33

34

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

4.2. Cc site gii tr

5. CHIA S NG KT NI INTERNET

http://greetings.yahoo.com

Mt n v (v d nh mt cng ty nh, mt qun cafe Internet,


...) mun kt ni vi Internet. tit kim, n v ny ch mun s
dng mt ng kt ni bng in thoi cho tt c cc thnh vin
mun truy cp Internet. Gii php ngh nh sau:

http://www.geraldstevens.com/
http://www.1800flowers.com/
http://www.123greetings.com/

Thit lp mt mng my tnh ni cc cc my ca n v. Cc


my trm ci t h iu hnh Windows 9x, hoc Windows 2000, s
dng giao thc TCP/IP.

http://www.vnn.vn/ecards/
http://www.fpt.vn/Postcard/main.asp

Ci t mt phn mm h tr v d nh WinGate
(http://www.wingate.com) ngay ti my c gn modem, kt ni vi
Internet.

http://www.confidantvcd.com

4.3. Cc site thng tin v bo in t ca Vit Nam

Thit lp cc thng s trong WinGate. Phn mm ny cung cp


cc kh nng nh sau:

http://vnexpress.net/
http://www.vnn.vn/

Cho php chia s kt ni Internet. H thng s t ng quay


s mi khi c yu cu kt ni Internet v s t ng ngt khi
khng cn yu cu no na.

http://www.vdc.com.vn/
http://media.vdc.com.vn/

Cho php kim sot cc website truy cp. Bn c th cm cc


thnh vin truy cp cc website m bn khng cho php.

http://www.nhandan.org.vn/
http://www.sggp.org.vn/
http://www.laodong.com.vn/
http://www.nld.com.vn/
http://www.tuoitre.com.vn
http://website.fptnet.com.vn/

4.4. Tham kho cc site v lao ng vic lm ti VN


http://www.vietnamworks.com/
http://203.162.5.43/ld2000/
http://www.vietname-business.com/jobnld/
http://www.jobsonline.saigonnet.vn/
http://www.jobviet.com

L nh Duy - H KHTN Tp. HCM

35

36

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Chng 2

THIT LP WEBSITE
1. CI T WEBSERVER
WebServer l chng trnh cung cp dch v www. Mt
webserver c th phc v cho nhiu website. Port mc nh cho dch
v web l 80.
C nhiu phn mm h tr webserver. Trn mi trng ca
Microsoft, thng dng nht vn l IIS (Internet Information Server)
vi cc phin bn chy trn h iu hnh WindowsNT 4.0 v
Windows 2000. Ngoi ra cc my s dng h iu hnh Win9x,
Microsoft cng h tr ci t webserver thng qua phn mm PWS
(Personal Web Server).

1.1. Ci t IIS trn Windows/XP 2000 Server v


Windows 2000/XP Professional
ci t IIS trn h iu hnh Windows 2000 Server hay
Windows 2000 Professional, bn vo mc Start/Settings/Control
Panel/Add Remove Programs. Chn mc Add/Remove Windows
Components.

L nh Duy - H KHTN Tp. HCM

37

Hnh 2.1 - Mn hnh Control Panel/Add Remove Programs

Trong ca s Windows Components Wizard, chn checkbox


Internet Information Services.

38

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Hnh 2.3 - Mn hnh qun tr v cu hnh IIS

1.2. Ci t Personal Web Server (PWS) trn Win 98

Hnh 2.2 - Mn hnh ci t cc Windows Components

Cc dch v mc nh c ci l Web Server, FTP Server,


Virtual SMTP Server.
Sau khi ci t xong, cc th mc mc nh sau s c to ra:
\Inetpub\
\Inetpub\wwwroot
\systemroot\Help\iisHelp
\systemroot\system32\inetsrv

ci t Personal Web Server trn h iu hnh Windows 98,


bn vo th mc \Add-ons\pws trn a CD dng ci t h iu
hnh ny hoc a CD c phn NT Option Pack. Tm v chy tp tin
setup.exe.

systemroot l th mc system32 trong th mc ci t Windows


qun tr v cu hnh cc dch v ny, bn hy chy chng
trnh Internet Services Manager trong mc
Start/Programs/Administrative Tools.
IIS ci t trn Windows 2000 Professional c mt s gii hn so
ci t trn vi Windows 2000 Server nh ch c to mt website,
s kt ni b gii hn,...

L nh Duy - H KHTN Tp. HCM

39

40

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Hnh 2.4 - Mn hnh ci t Personal Web Server

Hnh 2.5 - Cc la chn cc thnh phn khi ci PWS

Chn cc thnh phn chnh ca Personal Web Server t mn


hnh nh hnh 2.5.
Sau khi ci t thnh cng xong, hy chy ci thm phin bn
mi nht ca ADO c th h tr tt nht cho cc thao tc trn c
s d liu (v d MDAC 2.6). qun l v cu hnh webserver ny,
hy chy chng trnh Personal Web Manager.

Hnh 2.6 Mn hnh qun tr v cu hnh PWS


L nh Duy - H KHTN Tp. HCM

41

42

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

1.3. Cc cch thc truy cp n website


Sau khi ci xong webserver, truy cp n website ta dng
cc cch sau:
http://localhost/
http://127.0.0.1/
http://<a ch IP> v d: http://172.29.22.1
http://<tn my> v d: http://vm-98se/
http://<tn DNS> v d: http://www.hcmuns.edu.vn

2. CU HNH WEBSERVER
2.1. Cc thng s chnh
Cc thng s mc nh chnh cho webserver l tn m t website
(description), a ch IP v port gn cho website. Port mc nh cho
website l 80. Nu bn s dng mt port khc, v d nh port 81 cho
website, bn phi ghi r trong ng dn URL. V d:
http://www.visc-network.com:81/ . Ngoi ra, cn c cc thng s lin
quan n s lng cc kt ni ng thi (connections), n nh
dng v ni lu tr tp tin nht k (log file) ghi li qu trnh truy cp
website.
IIS mc nh thit lp th mc C:\InetPub\wwwroot l home
directory cho website c tn l Default WebSite.
Hnh 2.7 - Mn hnh thit lp cc thng s cho website

2.2. Th mc Home Directory


Mi website phi c mt home directory. N c th c xem
nh l th mc gc ca cy th mc web bi v n c nh x vi
tn ca my ch cha website. Gi s, nu mt my c tn l
www.microsoft.com v home directory l C:\Website\Microsoft, khi
truy cp ti mt tp tin, v d nh Search.htm t trong th
mc C:\Website\Microsoft, bn phi g vo ng dn sau:
http://www.microsoft.com/search.htm.
Nu trong th mc C:\Website\Microsoft, bn to mt th mc
con c tn l C:\Website\Microsoft\Products, th truy cp ti tp
tin windowsnt.htm trong th mc ny, bn phi g vo ng dn
nh sau: http://www.microsoft.com/Products/windowsnt.htm
L nh Duy - H KHTN Tp. HCM

43

44

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

IIS mc nh thit lp th mc C:\InetPub\wwwroot l home


directory cho website c tn l Default WebSite.
xem, hiu chnh th mc home directory cho mt website bn
click phi chut vo website ri chn Properties. Sau chn mc
Home Directory

Mt th mc o c mt tn i din (alias). y l tn m ngi


dng s g vo trong ng dn khi mun truy cp n th mc
ny. Do , khi to mt th mc o, bn cn phi cung cp 2 thng
tin, l tn i din ca th mc o v ng dn vt l ca th
mc ny.
Trong v d sau, gi s bn thit lp c mt website c tn
l www.is-edu.hcmuns.edu.vn, bng sau s minh ha vic nh x
gia cc th mc vt l v ng dn tng ng khi mun truy cp
n chng
Physical Location
C:\InetPub\wwwroot

Alias
(Home
Directory)
Scripts

URL Path
http://www.isedu.hcmuns.edu.vn
C:\InetPub\wwwroot\
http://www.isScripts
edu.hcmuns.edu.vn/Scripts/
D:\WebForum
Forum
http://www.isedu.hcmuns.edu.vn/Forum/
Trong Internet Services Manager, cc biu tng tng trng
cho th mc o s khc vi cc biu tng tng trng cho th
mc thc trong hin th cy th mc ca mt website.

2.4. Tp tin truy cp mc nh (Default document)


truy cp ti mt trang web trn webserver, bn phi ch nh
tn
tp
tin
trong
ng
dn
URL,
v
d
nh:
http://www.microsoft.com/ms.htm. Tuy nhin trong mt s trng
hp, bn khng cn phi ch nh tn tp tin trong ng dn URL
m vn nhn c trang web. iu ny thc hin c do c ch
tp tin mc nh c thit lp trn webserver.

Hnh 2.8 - Mn hnh thit lp thng s cho Home Directory

2.3. Th mc o (Virtual Directory)


truy cp ti cc th mc khng nm trong th mc home
directory, bn phi to mt th mc o. Mt th mc o l mt th
mc m v mt vt l n khng cn phi nm trong th mc home
directory nhng li c dng nh th mc tht trn ng dn truy
cp.
L nh Duy - H KHTN Tp. HCM

45

Tp tin truy nhp mc nh l tp tin s c webserver tr v


khi ngi dng khng ch nh tn tp tin c th trong ng dn
URL. V d, nu bn ch g ng dn http://www.microsoft.com/
trong Address ca trnh duyt, bn vn truy cp c vo trang
ch ca Mircrosoft d khng ch nh tp tin cha trang web ny.
iu ny c c l do webserver tr v tp tin mc nh (trong
trng hp ny l trang ch ca Microsoft ) cho tt c cc yu cu
khng ch nh tn tp tin.
Cc tp tin truy nhp mc nh thng c tn l default.htm,
default.asp, index.htm, index.asp, ... Tuy nhin IIS cho php bn
nh ngha bt k tn tp tin no l tp tin mc nh, ng thi cho
php ngi dng khai bo nhiu tp tin mc nh cng lc. Khi mt
46

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

yu cu gi n webserver m khng ch nh tn tp tin, IIS s tm


kim trong danh mc cc tp tin mc nh c khai bo, tp tin
tn ti u tin s c tr v cho trnh duyt my client. V d nu
bn nh ngha default.htm, default.asp l cc tp tin mc nh, th
khi trn th mc hin hnh khng c tp tin default.htm m ch c
tp tin default.asp, tp tin default.asp s c gi tr v cho trnh
duyt.
xem v hiu chnh cc tp tin mc nh, hy chn mc
Properties ca website. Sau chn mc Documents.

2.5. t nhiu website trn mt web server (multiple


hosting)
Trong IIS, bn c th thit lp cu hnh cho nhiu website cng
hot ng. Phn ny s cp n vn l lm th no nhiu
website c th s dng cng mt port (gi s port 80).
thc hin iu ny, bn ch cn nh r tn min ca website
v tn port. Hai thng tin ny s giup IIS xc nh duy nht mt
website. Bn vo mc Advance trong mc xc nh cc thng s
chnh Web site (xem 2.1). Xem v d sau:

Hnh 2.10 - Mn hnh thit lp nhiu website cng hot ng


Hnh 2.9 - Mn hnh thit lp danh sch cc tp tin mc nh

L nh Duy - H KHTN Tp. HCM

47

48

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

3. MT S VN LIN QUAN N AN TON


3.1. Thit lp quyn truy cp
thit lp quyn truy cp vo website cng nh cc th mc
v tp tin trn website, bn vo mc Properties ca website ri chn
Directory Security,

Hnh 2.12 - Mn hnh thit lp hn ch theo tn min, a ch IP

3.2. Nht k s dng (website logging)


Bn c th lu li du vt ca cc truy cp ti website ca bn
trong tp tin nht k. yu cu cc thng tin no ca vt truy cp
s c lu li, bn chn mc Properties ca Log File.

Hnh 2.11 - Mn hnh thit lp quyn truy cp

thit lp hn ch hay m rng quyn truy cp vo website


theo vng tn min, a ch IP, ... bn chn mc IP address and
domain name restrictions

Hnh 2.13 - Mn hnh ch nh cc thng s c lu trong logfile


L nh Duy - H KHTN Tp. HCM

49

50

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

4. MT S CU HI THNG GP
4.1. Khng truy cp c trang web
Sau khi ci t xong IIS/PWS nhng th a ch http://localhost/
vn khng chy c. Trong trng hp ny hy kim tra
webserver c khi ng (Start) hay cha hoc kim tra trong
Internet Explorer mc Tools/Internet Options/Connections/LAN
settings xem li cc thit lp ca Proxy server.

Cc a ch c sp xp theo chc nng h tr, rt tin cho


vic nh gi u, nhc im ca tng nh cung cp dch v. Vi
chc nng Tm kim nng cao, bn s d dng tm c nh cung
cp dch v tha cc yu cu ca bn. Ngoi ra bn cn c th ng
k nhn bn tin qua e-mail gii thiu v cc dch v webhosting mi
nht.
Sau y l mt s a ch cho php t cc trang web vit bng
cc ngn ng ASP, PHP, JSP:

4.2. Li The page cannot be found

ASP: http://www.1asphost.com/, http://www.brinkster.com,


http://www.domaindlx.com/ , http://www.7host.com/

Khi truy cp mt trang web m gp thng bo li nh sau:

JSP: http://www.mycgiserver.com/
PHP: http://www.0php.com/free_PHP_hosting.php,
http://www.free-php-hosting.com/,

The page cannot be found


The page you are looking for might have been removed, had its name
changed, or is temporarily unavailable

iu ny c ngha rng trang web m bn yu cu truy cp


khng tn ti trn my ch. Hy kim tra li a ch trang web.

Sau khi ng k xong, bn s c cung cp mt a ch truy


cp vo website ca mnh. Thng thng cc freeserver ch cung
cp dch v gii hn v chn qung co vo cc trang web ca
website ca bn.

4.3. Li You are not unauthorized to view this page

4.5. Lm th no ti mt website ln my ch

Khi truy cp mt trang web m gp thng bo li nh sau:

Vic a trang web ln mng thng thng bng mt trong hai


cch sau:

You are not authorized to view this


page

Dng dch v FTP. Ngha l nh cung cp s cung cp cho


bn mt ti khon ng nhp vo FTP server cha trang
web. Lc , bn s dng kt ni vo FTP server ny thng
qua cc phn mm FTP Client nh Windows Commander,
WS-FTP. Cch ny th rt thun tin v n gin, do c
s dng rt ph bin. Tuy nhin dch v ny li hu nh
khng c h tr khi bn ng k min ph.

You might not have permission to view this directory or page using the
credentials you supplied.

iu ny c ngha rng bn khng c php truy cp trang


web m bn ang yu cu truy cp. Hy kim tra li a ch trang
web v quyn truy cp m bn ang s dng.

Ti cc website hosting cho php ngi dng s dng giao


din web ca h upload tp tin ln. Tuy nhin cch ny b
hn ch ch kch thc tp tin bn upload trong 1 ln v s
lng tp tin c upload ng thi. Nu bn c khong 100
tp tin th vic upload s rt vt v.

4.4. Cc a ch cho php t trang web (web hosting)


min ph
Hy truy cp vo website http://www.freewebspace.net khi bn
cn tm kim mt my ch t trang web ca mnh. Website ny
lin kt n hng trm a ch cung cp dch v lu tr trang web
min ph.

L nh Duy - H KHTN Tp. HCM

51

4.6. Dng c s d liu trn cc my ch min ph


Thng thng cc my ch min ph (freeserver) khng bao gi
h tr c s d liu (CSDL) nh SQL Server, Oracle c, n gin l

52

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

phi tr chi ph v phn mm. Thm ch khi bn tr tin cho thu ch


(web hosting), cng phi tr thm tin mi c h tr SQL Server,
Oracle, . Do , hu ht cc freeserver ch h tr ti a cho bn l
Access nh Brinkster m thi, hoc l cc CSDL min ph khc nh
MySQL, ...

CU HI
1. Hy cho bit vai tr ca cc phn mm nh IIS v PWS.

Thng thng do ngi dng khng c quyn thao tc trn


my ch thu (server hosting) nn cc ng dng web khng th s
dng cc system DSN m phi kt ni CSDL di dng DSN-less.
Cch khai bo ny cng kh n gin, bn c th tham kho bt c
ti liu hng dn lp trnh kt ni web vi CSDL no.

2. Phn bit th mc vt l v th mc o. ngha ca th mc o.

Nu bn dng Access th trong phn ng dn n tp tin .mdb


phi dng Server.MapPath nh x th mc gc ca webroot,
khng c dng ng dn tuyt i dng: C:\mywebsite\db.

5. Lm th no hn ch cc my tnh c php truy xut n


website.

L nh Duy - H KHTN Tp. HCM

53

3. Cho bit cc tp tin mc nh thng dng i vi cc website.


4. Lm th no hn ch cc i tng c truy cp n mt
tp tin hay mt th mc no .

6. Lm th no c th pht hin cc s xm nhp tri php ca


cc tin tc vo my ch ca bn.

54

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

THC HNH

2. NG K WEBSITE MIN PH TI FREESERVERS


Freeservers cho php bn t website ca bn ln server ca h
min ph. Tuy nhin dch v ny ch cho php trang web tnh, do
cc trang web cha cc m ASP, PHP, khng thc hin c

1. CI T V CU HNH WEBSERVER
Ci t IIS hay PWS ln my ca bn. Sau thc hin tun t
cc bc cu hnh sau:
Thay i th mc Home Directory: To trn my mt th
mc cha website, v d: C:\MyWebSite v cu hnh sao
cho th mc HomeDirectory ca Website tr v th mc ny
thay cho th mc mc nh l C:\InetPub\wwwroot

Vo a ch http://www.freeservers.com
min
ph
vi
a
ch
truy
http://yourname.freeservers.com

ng k website
cp
c
dng

Truy cp theo ng dn n th mc vt l: To th mc
BookStore trong th mc C:\MyWebSite. Sau unzip tp tin
BookStore.zip nm trong AppSamples\BookStore ca a CD
vo th mc ny. Truy cp ng dng BookStore t a ch:
http://localhost/BookStore/
To th mc o: To mt th mc RealEstate ngoi th
mc C:\MyWebSite, v d nh D:\RealEstate. Tip theo unzip
tp
tin
RealEstate.zip
nm
trong
th
mc
AppSamples\RealEstate ca a CD vo th mc ny. Sau
to mt th mc o, ly tn l RealEstate sao cho tr n th
mc D:\RealEstate. Truy cp ng dng RealEstate t a ch:
http://localhost/RealEstate/
Kim tra web server c h tr ASP hay khng: To th
mc D:\MyApp, sau to mt th mc o c tn l MyApp
tr n th mc ny. To mt tp tin default.asp vi ni dung
<% Response.Write Date() %> trong D:\MyApp ri chy th
bng cch g vo a ch: http://localhost/MyApp/default.asp
Cu hnh tp tin mc nh: Kim tra xem cc tp tin mc
nh ca website l g. Sau cu hnh cho website truy
cp cc tp tinh mc nh theo th t sau: default.asp,
index.asp, default.htm, index.htm.
Nu l IIS ci t trn webserver, cu hnh FTP server sao cho
cc user khi kt ni vi server s c chuyn n th mc
C:\MyWebSite.
Cu hnh IIS sao cho c th hosting ng thi nhiu website.

L nh Duy - H KHTN Tp. HCM

55

56

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

G vo a ch m bn d nh ng k ti yourname. Sau
click Go. Mn hnh tip theo s hin ra, bn chn mc cui cng
100% Free Hosting Option v click vo SignUp

Nu ng k thnh cng, mn hnh sau s hin ra cung cp


cho bn mt s la chn khi xy dng website ca mnh.
Sau bn hy in vo cc thng tin lin quan cn thit nh
H tn, mt khu, email, Cui cng g vo chui k t theo yu
cu ging bn tri chc rng bn ng vi cc qui nh ca
FreeServers khi cung cp dch v min ph ny.

L nh Duy - H KHTN Tp. HCM

57

58

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

3. CI T WEBSERVER IIS H TR PHP


Vo trang http://www.php.net/downloads.php, chn trong mc
Windows Binaries/PHP 4.3.1 installer ti phn mm mi nht v.
Thc hin chng trnh php-4.3.1-installer.exe chng trnh t
ci t v cu hnh webserver IIS h tr PHP.
Ch rng phi ci IIS trc khi ci PHP v trong mn hnh
setup ca PHP, chn webserver tng ng vi webserver ang ci
trn my ca bn (mc nh l Microsoft IIS 4 or higher)

4. NG K DCH V T TRANG WEB MIN PH


Hy vo cc a ch web h tr t trang web min ph c
cp trong phn 4.4 ng k. Thng thng cc bc tun t nh
sau:
kim tra vic ci t c thnh cng hy khng, hy vo trnh
qun l webserver IIS l Internet Information Services, chn phn
Web Sites. Trong mc Home Directory, chn Configuration, kim tra
xem trong Application Mappings c khai bo trnh x l trang php hay
khng nh hnh sau:

in vo cc thng tin ng k, tn ng nhp, mt khu, a


ch email chng trnh gi thng tin yu cu xc nhn
ng k.
Sau khi ng k thnh cng, bn s c cung cp mt ni
lu tr trn my ch v a ch trang web truy cp n ni
ny.
a website mnh thit k ln, bn s dng cc dch v
ti tp tin ca ni h tr, c th l theo cch dng FTP hoc
dng trnh duyt.

L nh Duy - H KHTN Tp. HCM

59

60

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Chng 3

Mc d lc son tho bn c th ngt dng, hay thm nhiu


khong trng vo nhng khi hin th, ba on trn u cho kt qu
nh nhau l:

THIT K TRANG WEB

The browser will ignore new lines and extra spaces in the text

1. GII THIU V HTML


HTML l ngn ng dng xy dng trang web. N m t cch
thc m d liu c hin th thng qua tp cc k hiu nh du
thng c gi l tag. Cc tag ny c bao quanh bi cc du
< >. V d: <HTML>, </BODY>, <IMG> l cc tag HTML.
Mt trang web thng thng gm c hai thnh phn chnh l:
d liu ca trang web (v d nh vn bn, hnh nh, m thanh, ...) v
cc tag HTML dng m t cch thc m cc d liu ny c
hin th. Khi mt trang web c ti v trnh duyt, trnh duyt s
cn c vo cc tag HTML nh dng d liu c hin th. V d
sau cho thy, cng mt d liu l dng vn bn This is webpage.
Tuy nhin nu c thm nh dng ca tag <b> dng th hai, hnh
thc hin th d liu s khc.
M HTML

Khi bt u son tho mt trang web, cc tag c bn sau s


ng vai tr l khung cho vic nh ngha mt trang HTML. Xt v d
ca mt trang HTML n gin sau:
<HTML>
<HEAD>
<TITLE>Title of the web page </TITLE>
</HEAD>
<BODY>
An example of a simple web page.
</BODY>
</HTML>

<HTML> </HTML>: nh ngha phm vi ca vn bn HTML.


<HEAD> </HEAD>: nh ngha cc m t v trang HTML.
Cc thng tin ny s khng hin th di dng ni dung ca
trang web.

Hin th trn trnh duyt

This is webpage
<b>This is webpage</b>

This is webpage
This is webpage

<TITLE> </TITLE>: M t tiu ca trang. Tiu ca trang


web thng c hin th nh l tiu ca ca s hin th
trang web. Thng tin ny cng c th c dng bi mt s
my tm kim xy dng ch mc cc trang web.

Hu ht cc tag ca HTML u c tag bt u v tag kt thc


tng ng. Tag kt thc tng ng vi mt tag ch khc ch c
thm k t /. V d: tag <HTML> c tag kt thc tng ng l
</HTML>.
Cc tag khng phn bit ch thng v ch hoa. Ngha l cc
tag <html>, <Html> v <HTML> l nh nhau.
Trong qu trnh c trang web hin th, trnh duyt s b qua
cc khong trng tha v cc du ngt dng gia vn bn d liu
v cc tag. chnh l l do m ba on sau s cng c hin th
nh nhau.
on 1

on 2

The browser will


ignore new lines
and extra spaces in
the text

The browser
will ignore new lines
and extra spaces in
the text

L nh Duy - H KHTN Tp. HCM

on 3

<BODY> </BODY>: Xc nh vng thn ca trang web. y


l phn m cc d liu cng vi cc tag HTML s c dng
nh dng ni dung ca trang web.
Mt tag thng thng bao gm hai thnh phn: tn ca tag
(dng cho bit tag ny nh ngha ci g) v thuc tnh ca tag
(dng cho bit d liu c hin th nh th no). V d sau minh
ha vic thay i cc thuc tnh FACE v SIZE ca tag <FONT>
M HTML
<FONT FACE="Arial" SIZE="2">This is
a web page</FONT>
<FONT FACE="Times New Roman"
SIZE="4">This is a web page</FONT>

The browser
will
ignore
new lines
and
extra
spaces in the text

61

62

Hin th trn trnh duyt


This is webpage

This is webpage
Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

2. MT S TAG C BN CA HTML

2.2. nh dng vn bn

2.1. nh dng trang

2.2.1. nh dng phn on

nh dng trang thng thng bao gm cc thng tin v tiu


trang, bng m k t c dng, mu nn, nh nn, t kha.

Tag <P> c dng nh dng phn on (paragraph).


Thuc tnh thng gp l ALIGN dng canh chnh d liu trong
phn on l LEFT (tri), RIGHT (phi) CENTER (canh gia) hoc
JUSTIFY (canh u hai bn). V d sau minh ha vic hin th khi
t cc thuc tnh canh chnh cho tag <P> bng cch ln lt gn
thuc tnh ALIGN trong tag ny cc gi tr LEFT, CENTER,
RIGHT:

t tiu cho trang web, ta dng tag <TITLE>, v d mun


c tiu ca trang web thit k l Cho mng cc bn n vi
trang web ny, ta dng: <TITLE> Cho mng cc bn n vi
trang web ny</TITLE>
t bng m m trang web dng, ta s dng thit lp cc
thng s cho tag <META>. V d thit lp sau: <META HTTPEQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
cho bit trang web s dng bng m Unicode-UTF-8.

<P ALIGN="LEFT">This is webpage</P>


<P ALIGN="CENTER">This is webpage</P>
<P ALIGN="RIGHT">This is webpage</P>

Ta c th t mu nn, nh nn cng nh mu ch cho ton b


trang web bng cch t cc thuc tnh BGCOLOR, BACKGROUND
v TEXT tng ng trong tag <BODY>. V d sau t mu nn cho
trang web l mu , mu ch l mu trng: <BODY
BGCOLOR="#FF0000" TEXT="#FFFFFF">.
V d sau minh ha mt trang web c cc nh dng trang
trnh by trn:
<HTML>

Hnh 3.1 Cc thuc tnh canh chnh ca tag <P>

<HEAD>
<META HTTP-EQUIV="Content-Language" CONTENT="en-us">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
charset=utf-8">
<TITLE>Cho mng cc bn n vi trang web ny</TITLE>
</HEAD>

Trong mt phn on, vic ngt dng trong lc son tho khng
nh hng g n vic hin th. Trnh duyt ch hiu ngt dng trong
mt phn on thng qua tag <BR>. V d:
<P>
H tn: L nh Duy
Ngh nghip: Ging vin
a ch: Khoa CNTT H Khoa Hc T Nhin </P>

<BODY BGCOLOR="#FF0000" TEXT="#FFFFFF">


</BODY>
</HTML>

Hnh 3.2 Khng th xung dng nh thit k


L nh Duy - H KHTN Tp. HCM

63

64

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

hin th mi mc trn mi dng, ta phi chnh li on m


HTML trn bng cch thm vo cui mi mc tag <BR> nh sau:
<P>
H tn: L nh Duy <BR>
Ngh nghip: Ging vin <BR>
a ch: Khoa CNTT H Khoa Hc T Nhin <BR>
</P>

2.2.2. nh dng ch
Tag <FONT> nh dng font ch, mu sc, kch thc, ...
ca vn bn. Cc thuc tnh ca tag ny thng l: FACE: loi font
ch, SIZE: kch thc, COLOR: mu ch. Ngoi ra, nh dng
ch in m ta dng tag <B>, in nghing dng tag <I>, gch di
dng tag <U>.
Thuc tnh COLOR dng trong cc tag thng c nh ngha
bng tn qui c (v d nh RED: mu , BLUE: mu xanh da tri,
...) hoc m RGB di dng 3 ch s h 16 bt u bng du # (v
d nh #FF0000).
V d sau nh dng on vn bn vi font Tahoma, in m, kch
thc +2 (10pt)
<B><FONT FACE="Tahoma" SIZE="2">Thut x th ca ngi
xa</FONT></B>

c kt qu hin th l: Thut x th ca ngi xa

2.3. nh dng hnh nh


Hnh 3.3 Dng tag <BR> khi mun xung dng

Ngoi ra, ta cng c th dng ng k ngang vi tag <HR>


to s phn cch gia cc thnh phn trong trang web. Thuc tnh
thng gp l ALIGN (dng canh chnh v tr ca ng ny) v
COLOR (mu sc).
Ni dung ca trang web
<HR COLOR="#0000FF">
Cp nht nm 2003. Mi kin, gp xin lin h Webmaster.

Tag <IMG> c dng chn mt nh hoc mt video clip vo


trong mt trang web. Cc nh dng tp tin nh v video sau c
h tr trn Internet Explorer: *.avi, *.bmp, *.emf, *.gif, *.jpg, *.jpeg,
*.mov, *.mpg, *.mpeg, *.png, *.wmf, ...
i vi trang web khng cha hnh nh, th ni dung vn bn s
c hin th sau ny nm ton b trong trang web. Tuy nhin vi
trang web c cha hnh nh, hnh nh s l mt tp tin c lp vi
tp tin cha trang web. Tag <IMG> dng trong trang web thng
bo cho trnh duyt c tp tin nh v hin th ti v tr t tag ny. V
d, mt trang web mun hin th hnh nh linh vt biu tng
Seagames 22 sau on vn bn Linh vt Seagames 22, phi bao
gm hai tp tin; Mt tp tin hnh nh v linh vt, v d linhvat.gif. Tp
tin cn li cha on vn bn Linh vt Seagames 22 v tag <IMG
SRC=linhvat.gif> nh sau:
<P><B><FONT FACE="Tahoma" SIZE="2"> Linh vt Seagames
22</FONT></B></P>
<IMG BORDER="0" SRC="linhvat.gif" WIDTH="512" HEIGHT="18">

Hnh 3.4 Phn cch bng tag <HR>

Cc thuc tnh chnh bao gm: SRC (tn tp tin hnh nh),
WIDTH, HEIGHT (kch thc nh), BORDER (ng vin khung
quanh nh), ALT (vn bn thay th dng khi khng hin th), ALIGN
L nh Duy - H KHTN Tp. HCM

65

66

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

(canh chnh), ... Thuc tnh ALT cng c dng khi ta mun a
chut n hnh nh v c dng ch nh tooltip hin th bn di.

2.4. nh dng hyperlink (siu lin kt)


Tag <A> c dng t mt hyperlink. on vn bn (hay
hnh nh, ...) nm gia cc tag <A> v </A> s ng vai tr nh l
du hiu (anchor) hyperlink. Thng thng, con tr chut s thay
i hnh dng (thng l hnh bn tay) khi di chuyn ngang qua
on vn bn ny.
Mt hyperlink cho php lin kt ti mt v tr khc ngay bn trong
trang web cha hyperlink (lin kt ni) hoc ti mt trang web khc
(lin kt ngoi).
to mt lin kt ni, ta cn thc hin hai bc. Bc 1 l
nh du v tr (bookmark) ca ni cn lin kt bng thuc tnh
NAME. Bc 2 l to hyperlink n v tr va c nh du. V d
sau minh ha vic to lin kt ni khi ngi dng nhn vo
hyperlink Go to Chapter 1 th trnh duyt s chuyn n v tr ca
Chapter 1 trong cng trang web
M HTML

Hin th trn trnh duyt

<A HREF="#Chapter1"> Go to Chaper


2</A>
...
...
<A NAME="Chapter1"> Chapter
1</A>

Go to chapter 1

L nh Duy - H KHTN Tp. HCM

Gi email
M tp tin trong ca s nh
ngha bi TARGET

Mt s gi tr c th c dng gn cho thuc tnh TARGET


ca tag <A> l:
Gi tr ca TARGET
Name
_blank
_parent
_self
_top

ngha
Np trang web trong ca s hoc FRAME c
tn l name
Np trang web vo mt ca s trng mi.
Ca s mi ny khng c tn.
Np trang web vo ca s cha gn nht
ca trang web hin hnh.
Np trang web vo cng ca s vi trang
web hin hnh. y l gi tr mc nh ca
hyperlink.
Np trang web vo ca s cao nht
(topmost).

HTML s dng cc k t c bit (v d nh < v > nh


du cc tag, ...), do hin th cc k t c bit ny, ta phi
dng cc nhm k t thay th sau:

Chapter 1

lin kt ti cc trang web khc, in a ch URL ca trang


web vo mc HREF. Xem cc v d sau:
M HTML

ngha
Hin th ca s ti tp tin theo
giao thc FTP.

2.5. nh dng mt s k t c bit

Du # trong mc HREF l du hiu ca lin kt ni.

<A
HREF=http://www.intel.com>
Intel Home Page</A>
<A HREF="home.htm">
Home</A>
<A
HREF="javascript:window.open()"
> Click here</A>
<A HREF="FlashGet.zip">
Download</A>

M HTML
<A
HREF="ftp://ftp.microsoft.com/mo
use.zip"> Download</A>
<A
HREF="mailto:duyld@yahoo.com"
> Email me</A>
<A HREF="Forum.htm"
TARGET=_blank> Forum</A>

ngha
Lin kt n trang my ch
khc
Lin kt n trang khc trong
cng th mc
Gi mt hm JavaScript

K t cn hin th
<
>
&

khong trng
, #,
1/2 , 1/3, 3 /4
,
,

M thay th
&lt;
&gt;
&amp;
&quot;
&nbsp;
&cent, &pound, &yen
&frac14, &frac12, &frac34
&divide, &deg
&reg, &copy

Hin th ca s ti tp tin v.

67

68

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

2.6. Chuyn hng trang t ng (Automatic redirect)


nh ngha mt trang s t ng chuyn sang mt a ch
khc sau mt khong thi gian nh trc, ta chn ngay sau tag
<HTML> mt tag nh sau: <META HTTP-EQUIV="Refresh"
CONTENT="3;url=http://domain/directory/file.html">
Trang web cha tag trn s t ng chuyn sang trang mi
http://domain/directory/file.html sau khong thi gian l 3 giy.

3. NH DNG BNG BIU


Tag <TABLE> c dng nh dng bng cng vi cc tag
<TR>, <TD> nh dng cc dng, ct. Cc dng, ct trong bng
thng c gi l cell.
Cc thuc tnh thng dng l: BORDER (nh ngha ng
vin, nu t gi tr l 0 th s khng c ng vin), BGCOLOR
(mu nn), ALIGN (canh chnh), WIDTH (chiu rng, c th theo %
ca kch thc ca s hoc pixel), CELLPADDING (khong cch
gia ni dung v ng bin ca cell), CELLSPACING (khong
cch gia cc cell). on m HTML sau minh ha mt bng d liu
gm c 2 dng, 2 ct, kch thc l 300 pixel, khong cch gia ni
dung v ng bin ca cell l 5:
<TABLE BORDER="1" CELLPADDING="5" CELLSPACING="0"
WIDTH="300">
<TR>
<TD WIDTH="74" ALIGN="center">MSSV</TD>
<TD WIDTH="203" ALIGN="center">H v tn</TD>
</TR>
<TR>
<TD WIDTH="74">9901234</TD>
<TD WIDTH="203">Trn c V</TD>
</TR>
</TABLE>

L nh Duy - H KHTN Tp. HCM

69

Hnh 3. 6 Minh ha mt bng n gin

trn (merge)/tch (split) cc dng hoc ct li vi nhau ta


dng cc thuc tnh tng ng l ROWSPAN hoc COLSPAN. V
d sau minh ha trong mt bng va c s trn/tch trn dng v
ct:
<TABLE BORDER="1" CELLPADDING="5" CELLSPACING="0"
WIDTH="310">
<TR>
<TD WIDTH="94" ALIGN="center">M nhm</TD>
<TD WIDTH="70" ALIGN="center">
MSSV</TD>
<TD WIDTH="197" ALIGN="center" COLSPAN="2">
H v tn</TD>
</TR>
<TR>
<TD WIDTH="94" ROWSPAN="2">Nhm 01</TD>
<TD WIDTH="70">9901234</TD>
<TD WIDTH="123">Trn c </TD>
<TD WIDTH="74">Vn</TD>
</TR>
<TR>
<TD WIDTH="70">9901235</TD>
<TD WIDTH="123">Hong Minh </TD>
<TD WIDTH="74">V</TD>
</TR>
</TABLE>

70

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

no s x l d liu nhp t form), METHOD (phng thc chuyn


d liu), NAME (tn ca form dng cho cc x l sau ny).
Ngi dng nhp d liu cho form thng qua cc nhp liu
(thng gi l cc controls) nh textbox, checkbox, radio button,
push button, dropdown listbox, ... Cc nhp liu ny c t
trong phn bao quanh bi cp tag <FORM> v </FORM>. Khi form
c submit, d liu m ngi dng nhp vo trong cc nhp liu
ny s c chuyn n chng trnh x l form theo dng <tn
nhp liu>=<gi tr>. Chnh v vy m thuc tnh NAME l thuc tnh
rt quan trng khi khai bo cc nhp liu ny.
Hnh 3. 7 Minh ha mt bng c trn/tch cc ct

C hai cch thit lp b rng (WIDTH) ca mt cell hoc mt


bng, l tnh theo % v tnh theo pixel. Trong nhiu trng hp,
vic t theo % s lm cho kch thc bng thay i ty theo d liu
v phn gii ca mn hnh my ngi dng, do m bo
tnh nht qun trong hin th d liu ca bng, nn chn cch tnh
theo pixel.
Trong thit k trang web, cc bng biu ng vai tr rt quan
trng v n l cng c chnh dng th hin cc trnh by phc tp
ca trang web. Hin nay, cc phn mm h tr son tho trang web
h tr vn cha tt cc thao tc phc tp trn bng biu. Do ,
cch tt nht l kt hp c hai. Ngha l, ngoi vic s dng cc
phn mm ny pht sinh bng biu mt cch trc quan, ta phi
s dng m HTML can thip khi cc phn mm ny khng p
ng ni cc trnh by phc tp nht l khi c cc bng va lng vo
nhau, cc dng ct trn/tch nhiu ln, ...

Mt khi form c submit, cc d liu s c chuyn n cho


chng trnh x l form theo dng <tn control>=<gi tr d liu nhp
vo>. Ngi ta dng du & ngn cch d liu ca 2 control
khc nhau. V d sau minh ha mt form v d liu khi submit c
dng:
http://localhost/Update.asp?USERID=ledduy&FULLNAME=Le+Dinh
+Duy&EMAIL=ledduy@yahoo.com&btnSubmit=Update
<FORM ACTION="Update.asp" METHOD="GET">
<INPUT TYPE="HIDDEN" NAME="USERID" VALUE="ledduy">
<P>Full Name:<INPUT TYPE="TEXT" NAME="FULLNAME"
SIZE="25" VALUE="Le Dinh Duy"><BR>
Email: <INPUT TYPE="TEXT" NAME="EMAIL" SIZE="25"
VALUE="ledduy@yahoo.com"> <BR>
<INPUT TYPE="SUBMIT" NAME="btnSubmit" VALUE="Update">
</P>
</FORM>

4. FORM V CC THNH PHN CA FORM


Form thng c dng nh l cng c h tr nhp liu cho
cc ng dng trn Web, tng t nh cc hp thoi (dialog) trong
cc ng dng trn Windows. Hot ng ca form thng thng l:
ng dng hin th form yu cu nhn thng tin t ngi dng,
ngi dng in cc thng tin v kt thc vic nhp liu bng cch
submit form. Sau d liu s c chuyn n cc chng trnh
x l tng ng.

Hnh 3. 8 Cch d liu c chuyn n trnh x l form

Mt s k t c bit s c chuyn i trc khi d liu c


chuyn i:

Tag <FORM> c dng thit lp mt form nhp liu. Cc


thuc tnh chnh l: ACTION (c dng ch nh chng trnh
L nh Duy - H KHTN Tp. HCM

71

72

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

K t nhp vo

K t thay th c chuyn i
+
%3D
%0A
%0D
%25
%38
to cc nhp liu dng hp vn bn, nt nhn, checkbox,
radio button, ta dng tag <INPUT> v t gi tr tng ng vi
cc loi nhp liu cho thuc tnh TYPE.
khong trng
=
du xung dng (line feed)
v u dng (carriage return)
%
&

Gi tr gn cho thuc tnh VALUE chnh l nhn ca nt nhn.


V d sau minh ha vic to ra hai nt nht Submit v Reset:
<INPUT TYPE="SUBM IT" NAME="BTNSUBMIT"
VALUE="Submit">&nbsp; &nbsp;
<INPUT TYPE="RESET" NAME="BTNRESET" VALUE="Reset">

4.3. Radio button

4.1. Hp vn bn (TextBox)
Dng nhp d liu trn mt dng. to nhp liu dng
ny, ta ch nh thuc tnh TYPE=TEXT trong tag <INPUT>. V d
sau minh ha m HTML dng to ra mt nhp liu dng hp
vn bn, c tn l USRNAME, kch thc l 25 k t, gi tr mc nh
l ledduy:
Username: <INPUT TYPE="TEXT" NAME="USRNAME"
VALUE="ledduy" SIZE="20" MAXLENGTH="128">

Thuc tnh SIZE dng ch s k t hin th trong nhp liu


(y cng chnh l chiu rng ca nhp liu). Thuc tnh
MAXLENGTH dng ch s k t ti a c th c nhp.
Khi mun ch nh d liu nhp vo control di dng mt khu
(ngha l cc k t nhp vo s khng c hin th m thay vo
l cc du *), ta ch nh thuc tnh TYPE=PASSWORD.V d:
Password: <INPUT TYPE="PASSW O RD " NAME="USRPASSWORD"
VALUE="123456" SIZE="20">

Dng chn duy nht mt trong tp cc la chn c lit k.


to ra mt nhm cc radio button, ta phi ch nh thuc tnh
TYPE=RADIO trong tag <INPUT> ca cc radio button v cc
radio buttuon ny phi c cng gi tr ca thuc tnh NAME.
Khi form c submit, d liu ca radio button c chn (gi tr
gn cho thuc tnh VALUE) s c chuyn i cng vi tn ca
radio button ny.
t mt radio button l mc nh, ta thm vo thuc tnh
CHECKED. V d:
V d sau minh ha la chn gii tnh (Sex) thng qua hai radio
button Nam (Male) v N (Female):
Sex:<INPUT TYPE="RADIO" NAME="USRSEX" CHECKED
VALUE="M">Male
<INPUT TYPE="RADIO" NAME="USRSEX" VALUE="W">Female

4.4. Checkbox

4.2. Nt nhn (Button)


Khi ch nh thuc tnh TYPE=BUTTON trong tag <INPUT> ta
s to c mt nt nhn ni chung.
Trong form thng thng c hai loi nt nhn c bit l nt
nhn SUBMIT v nt nhn RESET. Nt nhn RESET l nt nhn m
khi ngi dng nhn chut vo, cc d liu ca cc nhp liu khc
khc u c t v gi tr mc nh lc khi to. to ta s ch
L nh Duy - H KHTN Tp. HCM

nh thuc tnh TYPE=RESET trong tag <INPUT>. Trong khi nt


nhn SUBMIT l nt nhn dng kt thc vic nhp liu ca form.
to nt nhn dng ny, ta ch nh thuc tnh TYPE=SUBMIT
trong tag <INPUT>.

73

Dng chn mt hoc nhiu trong tp cc la chn c


ngh.
Khi ta ch nh thuc tnh TYPE=CHECKBOX trong tag
<INPUT>, ta s to ra c mt nhp liu kiu checkbox. Tng
t nh radio button, khi mt checkbox c check, gi tr tr v ca
n tng ng vi gi tr ca thuc tnh VALUE.
t mt check box l ON, ta thm vo thuc tnh CHECKED.

74

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

V d sau minh ha mt nhm cc checkbox dng ly thng


tin v cc ngn ng c chn:
Language: <INPUT TYPE="CHECKBOX" NAME="USRLANG"
VALUE="ENG" CHECKED> English
<INPUT TYPE="CHECKBOX" NAME="USRLANG"
VALUE="FR">French
<INPUT TYPE="CHECKBOX" NAME="USRLANG" VALUE="JP"
CHECKED>Japanese

to mt nhp liu c kiu l HIDDEN, ta ch nh thuc tnh


TYPE=HIDDEN trong tag <INPUT> nh v d sau:
<INPUT TYPE="HIDDEN" NAME="USRID" VALUE="ledduy">

Mi khi form c submit, ngoi cc nhp liu c hin th


trn mn hnh, ta cng s c thm mt nhp liu c tn l USRID
v gi tr l ledduy c chuyn n cho trnh x l

4.5. Dropdown listbox


Dng la chn Ta s dng tag <SELECT> to. Mi mc
ca dropdown listbox s c nh ngha bng tag <OPTION>. V
d sau minh ha vic chn mt ngh nghip c lit k sn:
Occupation: <SELECT SIZE="1" NAME="Occupation">
<OPTION SELECTED VALUE="0">Other</OPTION>
<OPTION VALUE="1">Engineer</OPTION>
<OPTION VALUE="2">Teacher</OPTION>
<OPTION VALUE="3">Doctor</OPTION>
<OPTION VALUE="4">Worker</OPTION>
</SELECT>

4.7. Vng vn bn (TextArea)


Dng nhp d liu trn nhiu dng. to nhp liu dng
ny ta dng tag <TEXTAREA>. D liu nm gia cp tag
<TEXTAREA> v </TEXTAREA> chnh l gi tr tr v ca control
dng ny. V d:
Other information: <TEXTAREA ROWS="3" NAME="OtherInfo"
COLS="20"></TEXTAREA>

Thuc tnh ROWS v COLS dng ch s dng v ct ca


vng d liu nhp.

t mt mc chn trong dropdown listbox l mc nh, ta


thm vo thuc tnh SELECTED.
to mt multi-select listbox ta t thm thuc tnh SIZE v
MULTIPLE vo trong tag <SELECT>.
Khi form c submit, d liu ca tng ng vi mc chn (gi
tr gn cho thuc tnh VALUE ca tag <OPTION>) trong dropdown
listbox s c chuyn i cng vi tn ca dropdown listbox ny. V
d trong trng hp v d trn, khi ngi dng chn Worker, gi tr
tr v ca nhp liu ny s l 4.

4.6. d liu n (Hidden field)


Dng lu tr cc thng tin ca form cn thit cho chng
trnh x l sau ny nhng li khng hin th di dng mt control
no. Ta ly v d form cp nht thng tin mt sinh vin. Cc thng tin
m ngi dng c th cp nht thng l H tn, Ngy thng nm
sinh, ... s c hin th trn cc nhp liu ca form. Tuy nhin
chng trnh x l form cp nht ny c th bit cn cp nht sinh
vin no, cn phi c thm thng tin v M s sinh vin (gi s ng
vai tr l kha chnh trong c s d liu). Thng tin v M s sinh
L nh Duy - H KHTN Tp. HCM

vin s c lu tr trong mt nhp liu ca form c kiu l


HIDDEN. Thng tin ny s khng c hin th trn mn hnh ca
ngi dng nhng s c chuyn i mi khi form submit.

75

V d sau minh ha mt form nhp liu gm c y cc


nhp liu k trn:
<FORM ACTION="URL">
Username: <INPUT TYPE="TEXT" NAME="USRNAME"
VALUE="ledduy" SIZE="20" MAXLENGTH="128"> <BR>
Password: <INPUT TYPE="PASSWORD" NAME="USRPASSWORD"
VALUE="123456" SIZE="20"><BR>
Sex:<INPUT TYPE="RADIO" NAME="USRSEX" CHECKED
VALUE="M">Male
<INPUT TYPE="RADIO" NAME="USRSEX" VALUE="W">Female
<BR>
Language: <INPUT TYPE="CHECKBOX" NAME="USRLANG"
VALUE="ENG" CHECKED> English
<INPUT TYPE="CHECKBOX" NAME="USRLANG"
VALUE="FR">French
<INPUT TYPE="CHECKBOX" NAME="USRLANG" VALUE="JP"
CHECKED>Japanese<BR>
Occupation: <SELECT SIZE="1" NAME="Occupation">
<OPTION SELECTED VALUE="0">Other</OPTION>
<OPTION VALUE="1">Engineer</OPTION>
<OPTION VALUE="2">Teacher</OPTION>
<OPTION VALUE="3">Doctor</OPTION>

76

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

<OPTION VALUE="4">Worker</OPTION>
</SELECT>&nbsp; <BR>
Other information: <TEXTAREA ROWS="3" NAME="OtherInfo"
COLS="20"></TEXTAREA><P><INPUT TYPE="SUBMIT"
NAME="BTNSUBMIT" VALUE="Submit">&nbsp;&nbsp;&nbsp;
<INPUT TYPE="RESET" NAME="BTNRESET" VALUE=" Reset
"></P>
</FORM>

Hnh 3.10 - Minh ha frame

Tag <FRAMESET> nh ngha cch t chc ca cc frame. Tag


<FRAME> nh ngha chi tit tng frame.
Cc thuc tnh ca tag <FRAMESET> l: ROWS (nh ngha s
frame c phn theo chiu dc), COLS (nh ngha s frame c
phn theo chiu ngang), FRAMEBORDER (nh ngha ng vin
khung ca cc frame con, gi tr l YES hoc NO)

Hnh 3. 9 Minh ha mt form nhp liu

5. FRAME
Ni dung hin th trn trnh duyt c th c tch hp t nhiu
ca s khc nhau, mi ca s cha mt URL tng ng vi mt
trang web. V d sau cho ta thy c ba ca s, mt ca s cha
thc n nm ngang, mt ca s cha thc n bn tri v mt
ca s cha ni dung bn phi. Trong trng hp ny chng ta
dng tag <FRAMESET> v <FRAME> nh ngha.

Cc thuc tnh c bn ca tag <FRAME> l: SRC (a ch URL


ca trang web s hin th trong frame), NAME (tn ca frame, c th
dng trong thnh phn TARGET ca hyperlink), BORDER (ng
vin khung, nu khng mun c ng vin th t gi tr ny v 0),
MARGINHEIGHT, MARGINWIDTH (canh chnh l), SCROLLING (c
hin th scrollbar hay khng, cc gi tr thng dng l YES, NO,
AUTO), NORESIZE (khng cho php ngi dng hiu chnh kch
thc ca frame window)
nh ngha cc frame lng nhau ta dng cc tag
<FRAMESET> lng nhau
V d sau minh ha nh ngha ca trang web trn:

L nh Duy - H KHTN Tp. HCM

77

78

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

<HTML>
<HEAD>
<TITLE>Welcome to IS-EDU Site</TITLE>
</HEAD>
<FRAMSET BORDER="0" ROWS="80,*" FRAMEBORDER="0">
<FRAME NAME="Banner" SCROLLING="NO" NORESIZE
TARGET="Contents" SRC="GlobalMenu.asp" MARGINWIDTH="0"
MARGINHEIGHT="0">
<FRAMESET COLS="175,*">
<FRAME NAME="Contents" TARGET="Main" SRC="MainMenu.asp"
SCROLLING="AUTO">
<FRAME NAME="Main" SCROLLING="AUTO"
SRC="WebNews/LastNewsAll.asp">
</FRAMESET>
</FRAMESET>
</HTML>

6.2. Cc cch s dng style sheets


C 3 cch s dng style sheets ty vo nhu cu thit k:
Bng cch lin kt (linking) n mt tp tin cha cc style
sheet. Cch ny cho php bn thay i cch trnh by ca
nhiu trang web mt cch d dng thng qua vic sa i mt
tp tin cha cc style sheet ny m thi.
Bng cch nhng (embedding) style sheet vo trong tp tin
HTML. Cch ny cho php bn thay i cch trnh by ca
tng trang web mt thng qua vic sa nh ngha style sheet
ban u.
Bng cch thm cc inline styles vo trang HTML. Cch ny
cho php bn thay i mt cch nhanh chng cch th hn
ca tng tag, hoc nhm cc tag hoc mt khi thng tin trn
trang web.

6. CASCADING STYLE SHEET (CSS)


S dng style sheet gip cho ngi son tho trang web d
dng hn trong thit k v hiu chnh cc trang web ng thi m
bo tnh nht qun trong trnh by ca website.
Mt style sheet l mt mu nh dng (template) ca cc HTML
tag. Khi nim style sheet trong cc trang Web rt tng t vi khi
nim templates trong MS Word. Bn c th thay i s trnh by ca
mt vn bn Word thng qua vic thay i cc style trong vn bn
ny. Mt cch tng t, bn c th thay i s trnh by ca cc
trang Web bng cch thay i cc style sheet c gn cho cc
HTML tag.

6.1. Cc li ch ca style sheet:


S dng c cc thuc tnh nh leading, margins, indents,
point sizes, and text background colors trong trang web. y l cc
thuc tnh m cc tag HTML khng h tr trc tip.
Thay i thuc tnh ca tng trang web hoc ton b cc trang
web trong website m khng cn phi hiu chnh cc dng lin quan
n nh dng trong cc tpt in HTML. V d, nu ta dng tag
<FONT> vi thuc tnh FACE=Arial ch nh font ch cho cc vn
bn ca mi trang web trong website, ta s phi hiu chnh tng tag
<FONT> mt trong ton b cc trang web nu ta mun i tt c cc
vn bn ny sang font ch khc, v d nh Tahom a.
L nh Duy - H KHTN Tp. HCM

79

6.3. C php c bn:


C hai kiu linked and embedded style sheets u cha mt
hoc nhiu nh ngha style. Mt nh ngha style (style definition)
gm c mt HTML tag, sau l danh sch cc thuc tnh ca tag
c t bn trong cc du { v }. Mi thuc tnh c xc
nh bng tn thuc tnh, theo sau l du : v gi tr ca thuc tnh.
Cc thuc tnh c phn cch vi nhau bi du ; . V d sau minh
ha mt style definition gn cho tag <FONT> : FONT{font-size:
15pt; font-weight: bold}
Sau nh ngha mt style mi, dng n trong cc tag, ta gn
tn style cho thuc tnh class trong tag . V d sau minh ha mt
style c tn l txtInputText, sau c dng ch nh font ch
cho dropdown listbox:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf8">
<TITLE>Test</TITLE>
<STYLE>
<!-.txtInputText { font-family: Arial; font-size: 10pt; color: #0000FF }
-->
</STYLE>
</HEAD>

80

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

<BODY>

<HTML>
<STYLE TYPE="text/css">
<!-BODY {font: 10pt "Arial"}
H1 {font: 15pt/17pt "Arial";
font-weight: bold;
color: maroon}

<P>
<SELECT NAME="NEWS" CLASS="txtInputText">
<OPTION VALUE="TT">Tui Tr</OPTION>
<OPTION VALUE="LD">Lao ng</OPTION>
<OPTION VALUE="TN">Thanh Nin</OPTION>
</SELECT>
</P>
</BODY>
</HTML>

6.4. Lin kt n mt Style Sheet


c th s dng cng mt style sheet cho bt k trang web no
ca site, trc tin bn phi to mt tp tin .css lu tr cc nh
ngha style, sau trong bt k cc trang web no mun s dng
cc style sheet ny, bn phi tin hnh th tc lin kt. V d, nu
bn c mt tp tin style sheet c tn l MYSTYLES.CSS t ti a
ch http://internet-name/mystyles.css, lin kt vo trang web ca
mnh, bn thm cc dng sau nm gia tag <HEAD>
<HEAD>
<TITLE>Title of article</TITLE>
<LINK REL=STYLESHEET
HREF="http://internet-name/mystyles.css"
TYPE="text/css">
</HEAD>

H2 {font: 13pt/15pt "Arial";


font-weight: bold;
color: blue}
P {font: 10pt/12pt "Arial";
color: black}
-->
</STYLE>
<BODY>
...
</BODY>
</HTML>

6.6. S dng Inline Styles


Cc nh ngha Inline style nh hng trc tip n tag hin
hnh. Chng c nhng vo bn trong tag bng cch s dng
tham s STYLE . V d:
<SELECT STYLE="font-family:Arial;font-size:10pt; color=#0000FF"
NAME="NEWS">
<OPTION VALUE="TT">Tui Tr</OPTION>
<OPTION VALUE="LD">Lao ng</OPTION>
<OPTION VALUE="TN">Thanh Nin</OPTION>
</SELECT>

6.5. Nhng mt STYLE Block vo trang HTML


nhng a style sheet, bn thm <STYLE> </STYLE> block
vo u trang web gia tag <HTML> v <BODY>. Cch ny cho
php bn thay i trnh by ca ch trang web hin ti m thi. Theo
sau tag <STYLE> l bt k nh dng no v kt thc bi tag
</STYLE>. V d sau nh ngha cc style cho cc tag <BODY>,
<H1>, <H2>, v <P>:

L nh Duy - H KHTN Tp. HCM

81

82

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

THC HNH
1. S DNG PHN MM SWISH TO CC HIU
NG HA N GIN
Phn mm Swish cho php to cc hiu ng ng t n gin
n phc tp. Kt qu cui cng ca ng dng ny l tp tin .swf c
th chy c trn cc trnh duyt c ci t sn Macromedia Flash
Player.
i tng chnh khi son tho mt hiu ng ng trn Swish
c gi l Movie (on phim). Mt movie l tp hp ca nhiu
Scene (phn cnh) khc nhau, mi scence bao gm tp hp cc
Objects (i tng). Hai i tng chnh c h tr trong phin
bn Swish 1.51 l Text Objects (tp cc k t) v Image Objects
(hnh nh). Cc i tng ca scence c th hot hnh (animate)
thng qua vic thit lp cc Effects (hiu ng). Cc hiu ng
c lp trnh sn c th sinh ra cc Frames (khung hnh) tng
ng.

Hnh 3. 12 Ca s View Window

Sau khi ci t xong, phi ng k s dng. Mt ng k s dng


hp l s lm m i mc Purchase trong mn hnh lm vic ca
Swish.

1.2. Thit lp cc thng s c bn cho movie


Trong tab General, hiu chnh cc thng s lin quan n chiu
rng, chiu cao, mu nn, tc hin th ca cc khung hnh ca
movie. Lu rng, ta cng c th hiu chnh chiu rng v chiu cao
bng cch dng chut hiu chnh View Window.

1.1. Ci t Swish
Ci t Swish t a CD. Khi ng ng dng Swish. Mn hnh
lm vic chnh xut hin cng vi View Window

Hnh 3. 13 Hiu chnh cc thng s c bn ca movie

1.3. To lp mt movie n gin


Ngay khi khi ng, ng dng t ng to ra mt scence mi c
tn l Scene1. Nu mun chn thm scene khc, hy nhn nt bn
tri nt hnh ch T trn thanh cng c hoc chn trn thc n
Modify/Insert Scene.
Ta chn mt i tng vn bn vo scene bng cch nhn nt
hnh ch T trn thanh cng c hoc chn trn thc n
Modify/Insert Text. Trong trng hp c nhiu i tng vn bn

Hnh 3. 11 Mn hnh lm vic chnh ca Swish


L nh Duy - H KHTN Tp. HCM

83

84

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

trong cng mt scene, thit lp th t, ta chn i tng ri nhn


cc nt mi tn ln hoc mi tn xung cho n khi t c v tr
mong mun.
thay i v tr mc nh ca vn bn va hin ra, click vo n
trong ca s View Window v ko n v tr mong mun. V d ta
ko on vn bn v pha phi ca View Window:

Hnh 3. 14 Thay i v tr ca vn bn va chn vo

thay i ni dung on vn bn, chn tab Text trong mn


hnh lm vic chnh v thay th n. Chng ta cng c th thay i
font ch, kch thc, mu sc, kiu ch (bold, italic, ...).

Hnh 3. 16 Thit lp cc hiu ng cho cc i tng

i vi mt s hiu ng, s c hp thoi yu cu bn nhp cc


thuc tnh ca hiu ng. Nu mun gi cc thuc tnh mc nh, hy
chn OK khi mn hnh thit lp hiu ng hin ra. V d:

Hnh 3. 15 Hiu chnh ni dung v cc thuc tnh ca vn bn

thm vo cc hiu ng cho i tng no trong scene, chn


Timeline Tab v click trn i tng cn t hiu ng, sau nhn
nt Add Effect

L nh Duy - H KHTN Tp. HCM

85

Hnh 3. 17 Thit lp cc thng s cho mt hiu ng

86

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

xem th s trnh din ca cc hiu ng, ta nhn nt Play


Movie trn Toolbar. Mun dng tip tc hiu chnh, nhn nt
Stop.
Sau khi lm xong, ta nhn nt Save Movie trn thanh cng c
hoc chn trn thc n File/Save. Tp tin s c lu vi phn
m rng l .swi. Sau ny, mun hiu chnh, ta c th m li tp tin
ny.
kim tra movie sau ny s thc hin nh th no trn trnh
duyt, nhn vo nt Test In Browser nm ngoi cng trn thanh
cng c.

1.4. a cc movie vo trang web


a movie va to vo trang web, trc tin phi kt xut
movie ra dng .swf bng cch nhn nt SWF trn thanh cng c
hoc chn trn thc n File/Export to SWF.

Hnh 3. 19 Mn hnh Export

Thao tc ny s a vo clipboard mt on m HTML dng


m t movie va ri nh sau:
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://active.macromedia.com/flash2/cabs/swflas
h.cab#version=4,0,0,0"
ID=Intro WIDTH=400 HEIGHT=50>
<PARAM NAME=movie VALUE="Intro.swf">
<PARAM NAME=quality VALUE=high>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<EMBED src="Intro.swf" quality=high bgcolor=#FFFFFF
WIDTH=400 HEIGHT=50 TYPE="application/xshockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/shockwave/do
wnload/index.cgi?P1_Prod_Version=ShockwaveFlash">
</EMBED>
</OBJECT>

Hnh 3. 18 Kt xut ra tp tin .swf

Sau , nhn vo tab Export, click vo copy HTML to Clipboard

L nh Duy - H KHTN Tp. HCM

87

Sau , dn on code HTML ny vo v tr cn chn movie trn


trang web m ang son tho (ch s dng View HTML).

88

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Thuc tnh quan trng nht l Movie URL. Nu ta t movie


th mc khc vi th mc ca trang web hin hnh, ta phi ch nh
ng dn n movie trong nhp liu ny

Hnh 3. 20 Dn on m HTML m t movie vo trang web

1.5. t li cc thng s ca movie trong FrontPage


Chuyn qua View Normal, click phi chut ln i tng ri chn
ActiveX Control Properties
Hnh 3. 22 Cc thuc tnh ca movie

2. S DNG PHN MM BUTTON STUDIO TO CC


NT NHN DNG HA N GIN
Button Studio l phn mm h tr thit k v to cc button mt
cch nhanh chng v d dng. Cc button c to ra c th c
dng cho cc trang web, presentations, hay cc ng dng cn dng
chng.
Bc u tin nn chn hnh dng ca nt nhn bng cch chn
vo tab Shape.
Sau ta chn kch thc v nh v ca vn bn trong nt nhn
bng cch chn vo nt Size+Positioning. Khng nn chn Auto
Size v lc kch thc ca nt nhn s ph thuc vo ni dung
vn bn hin th trn .
Hnh 3. 21 t li thng s cho movie trn trang web
L nh Duy - H KHTN Tp. HCM

89

90

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Hnh 3. 23 Mn hnh lm vic ca phn mm Button Studio

Hnh 3. 25 Thit lp kch thc v nh v

Hnh 3. 24 Cc dng nt nhn c h tr sn

Hnh 3. 26 Vn bn hin th trn nt nhn

L nh Duy - H KHTN Tp. HCM

91

92

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Sau sang tab Text g ni dung vn bn s hin th trn nt


nhn. ng thi thit lp cc thuc tnh ca vn bn nh l font ch,
kch thc, mu sc.

Gi s mun to mt i tng ha Headings, ta click vo


biu tng Headings. Mn hnh h tr to cc Heading xut hin.

Sau khi lm xong, ta c th lu thit k li di dng tp tin .bs


bng cch chn thc n File/Save As. Sau ny mun sa li, ta c
th m tp tin v tip tc chnh sa.
c th dng c trn trang web, ta phi chn chc nng
Export trn thc n ra cc dng tp tin hnh nh .gif, .jpg.

3. S DNG PHN MM XARA WEBSTYLE TO CC


HIU NG HA
Xara WebStyle l phn mm h tr to cc hiu ng ha t
n gin n phc tp c th a vo trang web mt cch nhanh
nht. Xara WebStyle c th c dng to cc Headings,
banners, nt nhn, nh nn,

Hnh 3. 28 Mn hnh h tr to cc Headings

Nhn vo nt Style bn tay tri, cc mu Headings c xy


dng sn s hin ra. Chn mt mu, v d nh Web Style.
thay i vn bn ca Heading, ta nhn vo nt Text v g
vo on vn bn v d nh: Welcome to Ho Chi Minh City. Ta c
th thay i font ch, t ch in m, in nghing ty thch y.
Cc nt tip theo l Color v Texture cho php hiu chnh mu
v mu t ca vn bn.
Sau , ta c th thit lp bng bng cch nhn vo nt
Shadow.
Mc Themes cho php lu li cc thit lp v kiu, mu sc, to
bng, ... k trn c th dng li cho thit k tng t sau ny.

Hnh 3. 27 Mn hnh lm vic ca Xara WebStyle

to i tng no, hy click vo i tng . V d nh


Heading, Buttons, Bullets, Background. Trong mn hnh to tng i
tng nu mun tr v mn hnh chnh th chn nt Graphic Type.
L nh Duy - H KHTN Tp. HCM

93

Mc Save kt xut i tng ra tp tin nh .GIF hoc .JPG


dng trong trang web

94

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Hnh 3. 29 Hiu chnh vn bn ca Heading

Hnh 3. 31 Thit lp shadow

Hnh 3. 30 Thit lp texture

Hnh 3. 32 Kt xut ra tp tin nh dng trong trang web

L nh Duy - H KHTN Tp. HCM

95

96

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

4. S DNG PHN MM BANNERSHOP


ANIMATIOR TO CC NH NG

Email: ledduy@ieee.org

GIF

Bannershop GIF Animator l phn mm h tr to cc nh web


ng. Cc nh web ng c lu di nh dng .GIF c th c
dng trong cc trang web v cc chng trnh khc.

Hnh 3. 34 To ra cc frame v chn nh vo cc frame

Hnh 3. 33 Mn hnh lm vic ca BannerShop Gif Animator

to mt nh web ng, trc tin hy thit lp cc thng s


ca frame nh kch thc, mu nn, bng cch chn trn thc
n Animation/Frame Size, Frame/Set Background Color ph hp
vi cc kch thc cc nh s c chn vo tng frame.
Hnh 3. 35 Cc hiu ng ca frame

Sau , chn trn thc n chc nng Image/Import Image


chn cc nh vo tng frame mt. Sau khi lm xong mt frame, hy
chn trn thc n chc nng Frame/Insert New Frame chn
thm mt frame mi ri li tip tc chn nh vo tng frame ny.

Sau khi thc hin xong vic t hiu ng cho cc frame, nhn
nt F9 hoc chn trn thc n chc nng Animation/Play
Animation xem kt qu.

Tip theo ta thit lp cc hiu ng Animation cho cc frame.


Intro Animation ch hiu ng lc bt u hin th frame. Outro
Animation ch hiu ng kt thc frame trc khi chuyn sang
frame mi

Cui cng, ta chn trn thc n chc nng File/Save


Document lu thit k trn li di dng tp tin .bsd. Tp tin ny
sau c th m li hiu chnh. Chn chc nng File/Save Gif
Animation kt xut ra tp tin .gif dng trong cc ng dng web.

L nh Duy - H KHTN Tp. HCM

97

98

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

5. MT S THAO TC C BN KHI THIT K TRANG


WEB BNG MICROSOFT FRONTPAGE
5.1. Gii thiu v FrontPage
MS FrontPage cng vi Macromedia Dreamweaver MX hin
ang l cc phn mm h tr thit k web thng dng nht hin nay.
Chc nng chnh ca cc phn mm ny l h tr ngi dng to
cc trang web mt cch d dng m khng cn thit phi bit nhiu
kin thc v HTML.

mc, v d nh C:\MyWebSite. Trong th mc ny, t chc mt s


th mc con nh images dng lu cc hnh nh, db dng lu
cc tp tin c s d liu,
Sau khi to xong th mc c cu trc nh trn, trong FrontPage
ta to mi mt website tr n th mc C:\MyWebSite bng cch
chn trn thc n chc nng File/New/Page or Web/Empty Web,
sau g vo ng dn C:\MyWebSite trong ca mc
Options/Specify the location of the new web

Khi khi ng, mn hnh lm vic ca MS FrontPage nh sau:

Hnh 3. 37 To mi mt website
Hnh 3. 36 Mn hnh lm vic ca MS FrontPage

bn tay tri l ca s Views. xem cu trc ca cc website


di dng cc tp tin v cy th mc, ta click vo biu tng
Folders. lm vic vi mt trang web, ta click vo biu tng
Page. Click vo biu tng Hyperlinks s cho ta hnh dung ra s lin
kt gia tp tin hin hnh vi cc tp tin khc.

Vi vic to website ny, mi khi ta son tho mi bt k tp tin


no, mc nh n s c lu trong th mc ny. Ngoi ra, ta c th
ch nh bng m UTF-8 l bng m c dng mc nh khi to
mi cc tp tin bng cch chn trn thc n chc nng Tools/Web
Settings/Language.

5.2. T chc website


thun tin cho vic xut bn (publish) website sau ny, trc
tin nn tp trung tt c cc thnh phn ca website vo mt th
L nh Duy - H KHTN Tp. HCM

99

100

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

S dng frames, bng biu, ... xp t (layout) cc thnh


phn ca trang web
To v thm vo cc thnh phn ca trang web nh vn bn
(text), ha (graphics), bng biu, hyperlink, form, banner, ...
nh dng vn bn bng cch dng cc style hoc style
sheets
FrontPage t ng to ra cc tag khi ta thc hin cc thao tc
trn trong tab Normal. Tuy nhin t hiu qu cao trong
vic thit k trang web, cn kt hp vi cc kin thc v
HTML v chnh sa trong tab HTML
Th nghim trang web bng cch chn tab Preview, hoc nt
Preview in Browser
Mt s lu khc:
Khng nn dng font mc nh (default font) khi thit k trang
web v n s b ph thuc v thit lp cu hnh ca trnh duyt
pha ngi dng
Trang ch ca website nn t l default.htm hoc
default.asp.
Hnh 3. 38 Thit lp bng m mc nh cho ton b cc trang ca
website l UTF-8

5.3. Cc thao tc chnh khi son tho mt trang web


to mi mt trang web, chn chc nng File/New/Page or
Web/Blank Page. bn di trang web, ta thy 3 tab l Normal,
HTML v Preview cho ta nhn trang web ang thit k 3 gc
khc nhau. Tab Normal cho thy trang web gc thit k, tab
HTML cho thy m HTML ca thit k tab Normal v tab Preview
cho xem trc kt xut thc s ca trang web trn trnh duyt.
thit k cc trang web nht qun v hiu qu nn thc hin
tun t cc bc bt u thit k mt trang web trong MS
FrontPage
t cc thuc tnh chung cho ton b trang web nh bng m
dng l UTF-8, tiu trang, mu nn,

L nh Duy - H KHTN Tp. HCM

101

102

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Thc hnh:
G vo mt on vn bn, sau thc hin nh dng theo cc
bc sau:
Dng chut nh du chn mt nhm cc t, sau thc
hin nh dng font ch, kch thc ch, mu ch, hiu ng
ch (nh in m, in nghing, gch di).
Dng chut nh du chn ton b phn on, sau thc
hin nh dng font, border and shading, canh chnh
(alignment).
Chuyn sang tab HTML xem cc tag v cc thuc tnh
tng ng c FrontPage pht sinh.
G vo cc on vn bn, sau s dng nt Bullets hoc
nt Numbering t cc on vn bn ny v nh dng
Bullets hoc Numbering. Thay i thuc tnh ca Bullets v
Numbering va to ra

5.5. Dng style v style sheet nh dng


5.5.1. S dng inline style
chn cc inline style vo cc i tng ca trang web, ta
click phi chut ln i tng , chn mc Properties, sau chn
Style. V d:

Hnh 3. 39 Cc thuc tnh chung cho mt trang web

5.4. nh dng vn bn (text) v phn on (paragraph)


Mt phn on l mt khi vn bn c phn nh vi cc
phn on khc bng phm Enter khi son tho. Nu ch mun
xung dng m khng mun chuyn sang phn on khc th dng
phm Shift+Enter.
Mt phn on s c bao quanh bi cp tag <P> </P>, xung
dng tng ng vi tag <BR>, khong trng tng ng vi 6 k t:
&nbsp;
Ta c th nh dng theo nhm cc t c nh du chn hoc
nh dng cho ton b vn bn. Cc nh dng c bn bao gm: font
ch, kch thc, mu sc, in m/nghing, gch di, canh chnh
tri/phi/gia/u hai bn.

L nh Duy - H KHTN Tp. HCM

103

104

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Hnh 3. 41 To cc style cho trang web


Hnh 3. 40 S dng Inline Style

5.5.2. S dng embeded style


s dng embeded style, ta thc hin tun t cc bc sau:
To ra cc style cho trang web hin hnh bng cch chn trn
thc n chc nng Format/Style.
Chn mc New to mi mt style, sau in vo cc
thng tin cho style. V d: g vo Name (selector) l txtTitle,
sau chn mc Format nh dng cho style c tn txtTitle
vi Font l Tahoma, kch thc 18pt, mu , in m,
p dng style va to vo mt i tng trong trang web,
nh du i tng ri chn mc Normal, tm mc c tn
txtTitle

Hnh 3. 42 To mi mt style
L nh Duy - H KHTN Tp. HCM

105

106

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Hnh 3. 44 Lin kt mt tp tin .css vo trang web

5.6. Chn hnh nh v nh ng Flash vo trang web

Hnh 3. 43 p dng style vo mt i tng trong trang web

5.5.3. S dng Linking style


s dng linking style, ta thc hin tun t cc bc sau:
To mi tp tin dng CSS bng cch chn trn thc n chc
nng File/New/Page or Web/Normal Style Sheet. Gi s lu
tp tin ny li vi tn mystyle.css
To mi cc style nh trong bc embeded style trn ri lu
li.
Trong tp tin mypage.htm, dng cc style c nh ngha
trong tp tin mystyle.css, ta chn trn thc n chc nng
Format/Style Sheet Links, ri ch nh tp tin mystyle.css.

nh dng nh thng dng cho thit k cc trang web l GIF v


JPEG. nh GIF tuy b gii hn 256 mu nhng cho php to cc
hot hnh (gif animation), nh JPEG cho php nh dng hn 256
mu v kch thc kh nh. Cc phn mm Button Studio, Banner
Gif Animation, Paint Shop Pro, Adobe Photoshop l cc phn mm
thng dng to v x l cc nh dng cho thit k web.
nh ng Flash l cc tp tin dng .swf, c u im l kch
thc nh trong khi c th m t c nhiu hot hnh, c dng
kh thng dng trong thit k web hin nay. Phn mm Macromedia
Flash MX, Swish l cc phn mm thng dng to cc nh ng
ny.
chn mt tp tin nh vo trang web, chn chc nng
Insert/Picture/From File ... FrontPage s to ra tag dng <IMG
SRC="mypicture.gif" WIDTH="200" HEIGHT="100" ALT="My
picture">.
hin th vn bn dng tooltip khi a chut n hnh nh, hy
t gi tr cho thuc tnh ALT ca tag IMG hoc chnh trong Picture
Properties/General/Alternative presentations

L nh Duy - H KHTN Tp. HCM

107

108

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

to mt hyperlink, nh du on vn bn hoc hnh nh


c dng m t s lin kt, ri chn trn thc n chc nng
Insert/Hyperlink (hoc nhn Ctrl+K). Hp thoi m t hyperlink xut
hin:

Hnh 3. 46 Thit lp hyperlink

Ta c th t hyperlink sao cho lin kt n cc thnh phn


trong cng mt trang, hoc n trang khc trong cng mt website,
hoc n trang ca website khc. Ngoi ra, ta cng c th dng
hyperlink to ra cc hp thoi ti d liu v, hoc khi ng trnh
gi email,
Thc hnh:
Hyperlink lin kt n mt trang web khc trong cng website.
V d hy to trong tp tin default.htm mt button Gii thiu,
sao cho khi ngi dng nhn vo n, trang web Intro.htm s
hin th ra gii thiu v nhm hoc cng ty no .

Hnh 3. 45 Dng thuc tnh ALT

chn mt nh ng Flash, ta phi chn mt on m m t


nm trong cp tag <OBJECT>, </OBJECT> nh hng dn
trong phn s dng phn mm Swish.

Hyperlink lin kt n mt trang web ca website khc. V d


hy to trong tp tin default.htm mt button Lin kt, sao cho
khi ngi dng nhn vo n, trang web v mn hc ny
http://www.is-edu.hcmuns.edu.vn/~ldduy/WebCourse/ s hin
th.

Lu rng, cn chp nh vo th mc ch nh, v d l images,


trong th mc ca website trc khi tin hnh thao tc chn nh.

5.7. Chn hyperlink vo trang web


Hyperlink c dng kt ni cc trang web t trang ny sang
trang khc. Khi ngi dng click vo hyperlink, trang web lin kt s
c hin th trn trnh duyt.

L nh Duy - H KHTN Tp. HCM

109

Trong trng hp s dng frame, phi ch nh tn frame m


trang web lin kt s c hin th.

110

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Hyperlink cho php gi trnh gi email to email. V d hy


to trong tp tin default.htm mt button Gp , sao cho khi
ngi dng nhn vo n, chng trnh gi email s xut hin
gi email v a ch ldduy@fit.hcmuns.edu.vn
Hyperlink cho php hin th ca s Save mt tp tin v
my ngi dng. V d hy to trong tp tin default.htm mt
button Font ting Vit, sao cho khi ngi dng nhn vo n,
mt hp thoi lu tp tin s hin ln yu cu ti tp tin
FontViet.zip v

5.8. S dng bng biu


Ngoi chc nng thng thng l hin th d liu di dng
bng, bng biu cn thng c dng cho vic sp t (layout)
cc thnh phn trong trang web.
chn mt bng biu vo trang web, chn trn thc n chc
nng Table/Insert. Cc thng s cn lu :
Border: khng hin th ng vin chn Border size l 0.
Width: m bo table khng b resize khi phn gii mn
hnh ca my ngi dng thay i, t kch thc ca table
di dng pixel bng cch chn radio button In pixels
Cell padding dng chnh khong cch t ng vin n
vn bn trong mt cell
Cell spacing dng chnh khong cch gia cc cell
Background dng chnh mu nn ca table
Canh chnh trong mi Cell Properties: Horizontal alignment
dng chnh cc canh chnh theo chiu ngang. V d nh
Left, Right, Center, Justify. Vertical alignment dng chnh
cc canh chnh theo chiu dc. V d nh Top, Middle, Bottom
Chnh border ca tng cell: vo Cell Properties/Style/Border
Lu : FrontPage khng h tr tt khi thao tc trn cc bng
phc tp dng nh nhiu bng lng nhau, c nhiu cell merge v
split. Do , cn kt hp vi s hiu bit ca cc tag HTML v
TABLE x l sao cho t c hiu qu ti u.

L nh Duy - H KHTN Tp. HCM

111

Hnh 3. 47 Cc thuc tnh ca mt bng

5.9. Chn cc web components


5.9.1. Thi gian cp nht (Time stamp)
Chn Insert/Date and Time. Sau chn nh dng ngy thng
v thi gian ph hp vi nhu cu.

112

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Hnh 3. 48 Thit lp thng s cho Date, Time

5.9.2. ng k ngang (Horizontal line)


Chn Insert/Horizotal line. t cc thuc tnh cho ng k
ngang bng cch double click chut ln n. Sau chn cc thng
s v Width, Height, Color, Alignment.
Hnh 3. 50 Cc thnh phn khc c h tr sn

5.10. Mt s hiu ng c bit


Chuyn trang
Transition

(Page

transition):

Chn

Format/Page

Hiu ng ch chuyn ng theo chiu ngang (Marquees):


Chn Insert/Component/Marquee. Sau khi hp thoi hin ra,
bn g vo dng ch cn chuyn ng v t cc thuc tnh
khc nh mu sc, font ch,
Thm hiu ng font ch cho cc hyperlink: Chn
Format/Background, check vo Enable hyperlink rollover
effects. Sau bn c th chn cc mu theo mun.

5.11. To form nhp liu


Dng table layout trc cc thnh phn chnh ca form.
To cc vn bn v cc control (textbox, dropdown listbox,
button, radio, checkbox, text area, ...). Cc control c to bng
cch g trc tip cc tag vo (dng tab HMTL).

Hnh 3. 49 Cc thng s cho Horizontal line

5.9.3. Cc thnh phn khc


Chn trong thc n Insert/Web component.

L nh Duy - H KHTN Tp. HCM

113

114

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

chnh cc thuc tnh ca control, c th chuyn sang tab


Normal, click vo tng control, chn Form Field Properties chnh
cc thuc tnh.

6. THIT K CC WEBSITE THEO MU


6.1. Yahoo Greetings (http://greetings.yahoo.com)

Trong mi control ca form, cn lu cc thuc tnh nh Type


(dng ch loi control no), Name (dng nh danh control v
tham chiu n d liu m control lu gi sau ny), Value (dng
ch gi tr d liu m control hin th), Size (kch thc control), ...
Gn tag <FORM> </FORM> bao trm ln cc control ca form
(k c table)
Trong tag FORM, cn lu cc thuc tnh nh Name (dng
nh danh form v tham chiu n cc control trong form), Action
(dng tr n tp tin x l d liu t form), Method (dng ch
phng thc gi d liu cho server).
Mi form thng thng c 2 button control, mt button kiu
submit v mt button kiu reset. Button reset dng reset d liu
nhp, button submit dng submit d liu ca form sau khi
ngi dng nhp xong.
Sau khi to xong cc thnh phn ca form, thit lp phn trnh
by cho form.

6.2. Flowers (http://www.flowers.com)

Thc hnh:
Thc hin tun t cc bc trn to mt form nh hnh sau:

Hnh 3. 51 Mt mu form
L nh Duy - H KHTN Tp. HCM

115

116

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

6.3. Yahoo Shopping (http://shopping.yahoo.com)

6.5. VN Express(http://vnexpress.net)

6.4. IS EDU (http://www.is-edu.hcmuns.edu.vn)

6.6. Code Project (http://www.codeproject.com)

L nh Duy - H KHTN Tp. HCM

117

118

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

tham kho cch thit k cc trang web trn, hy:

thuc tnh style cho nhp liu, v d sau thit lp font ch cho mt
dropdown list box:

Ti v my bng cch chn chc nng Save ca IE.


Dng MS Front Page m tp tin lu ln
Chuyn qua li gia cc mn hnh Normal View v HMTL
View bit cch thit k
Vi mi trang web xem hy ch cc vn sau:
Cch b tr cc bng (table)
Cch s dng font ch

<SELECT SIZE="1" NAME="Occupation" STYLE="font-family:


Arial; font-size: 10pt; color: #0000FF">
<OPTION SELECTED VALUE="0">Other</OPTION>
<OPTION VALUE="1">Engineer</OPTION>
<OPTION VALUE="2">Teacher</OPTION>
<OPTION VALUE="3">Doctor</OPTION>
<OPTION VALUE="4">Worker</OPTION>
</SELECT>

7.3. Ti sao khi chn Encoding ca mt trang web l


UTF-8 th cc k t Unicode ting Vit khng hin th
ng trong tab HTML ca FrontPage 2000

Cch chn vo cc hnh nh trang tr


Cch nh ngha cc thuc tnh nh mu ch, mu nn, ...
Phn tnh (khng thay i) mi khi click vo cc hyperlink
chuyn qua mt ni dung mi
T cc trang web trn, hy t thit k cc trang cho website ca
chnh mnh.

FrontPage 2000 ca b Office 2000 khng h tr tnh nng ny,


hy dng FrontPage trong b Office XP. Vi FrontPage ca Office
XP, ta c th xem c ting Vit trong tab HTML ca trang web c
Encoding l UTF-8.

7.4. Chui k t &nbsp; dng lm g

7. Nhng cu hi thng gp
7.1. S dng ting Vit Unicode trong cc trang web
c th to ra cc trang web ting Vit s dng bng m
Unicode, trc tin phi t thuc tnh ca trang s dng bng m
Unicode.
Trong
FrontPage,
chn
File/Page
Properties/Language/HTML Encoding/Save the document as/UTF-8
hoc xem meta tag trong phn u ca trang web c thuc tnh
charset l UTF-8 hay cha. V d: <META HTTP-EQUIV="ContentType" CONTENT="text/html; charset=utf-8">.
g c ting Vit, hy s dng mt trong cc phn mm h
tr nh UniKey, VietKey v chn bng m s dng l Unicode.
Khi dng bng m Unicode, chng ta ch c th dng cc font h
tr Unicode nh Arial, Tahoma, Times New Roman, Verdana,

7.2. nh dng font trong cc nhp liu dropdown


listbox, text area

y l chui k t dng ch khong trng. Lu rng trnh


duyt s t ng b qua cc khong trng d trong qu trnh son
tho do nu mun gia 2 on vn bn A v B c 3 khong
trng, ta son: A&nbsp;&nbsp;&nbsp;B.

7.5. Trong trang web c dng frame, lm th no bit


c khi click vo mt hyperlink trong ca s bn
ny, trang tng ng s c hin th ca s no?
Mi frame u c tn nh ngha trong tp tin chung c tag
<FRAMESET>, do trong mi tp tin c s ca frame, nu mun
ch nh ca s s hin th ni dung tp tin khi ngi dng click vo
hyperlink ta t thuc tnh TARGET trong tag <BASE>. V d:
<BASE TARGET=frContent>. iu ny c ngha l khi click vo bt
k hyperlink trong tp tin ny, ni dung ca tp tin do hyperlink ch ti
s c hin th trong frame c tn l frContent

thit lp nh dng font mong mun cho tng nhp liu


dng ny, click vo nhp liu, chn Form Field
Properties/Style/Format/Font. Thit lp bng cch ny s to ra
L nh Duy - H KHTN Tp. HCM

119

120

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

7.6. Ting Vit trong cc phn mm Swish, Button


Studio, Xara WebStyle
Do trong cc phin bn ca cc phn mm ny cha h tr
Unicode nn ta khng th dng font Arial hin th c cc k t
ting Vit c. hin th ting Vit, phi dng cc font VNI (dng
VNI-xxx) hoc TCVN3 (dng .vnxxx).

7.8. Lm th no rt ngn thi gian ti nh


Khi a cc i tng hnh nh, video, vo trang web, cn
cn nhc k v n s lm tng kch thc ca website, ng thi s
lm tng thi gian ti trang web v. Cc th thut sau s gip cho
vic a hnh nh vo trang web hiu qu hn, tit kim c thi
gian ti v:

7.7. Cc cu hi thng gp khi dng phn mm MS


FrontPage

Hiu chnh kch thc ca hnh nh: Vi cc nh qu ln, cn


chnh li kch thc (chiu rng, chiu cao) ca nh lm
kch thc nh nh li. Lu l nu ta chnh thng s kch
thc chiu rng, chiu cao ca nh bng cch t gi tr cho
thuc tnh WIDTH v HEIGHT trong tag <IMG> th thi gian ti
v khng i, ch khc l kch thc ca nh hin th trn mn
hnh trnh duyt m thi.

Hi: Ti sao khi hin th trang web, font ch khng hin th ging
nh trong lc thit k ca FrontPage
Tr li: C th font hin th lc thit k ca FrontPage l Default
font, do lc hin th trn trnh duyt, trnh duyt s ly font mc
nh c thit lp (v d VNI-Times) tri vi font m FrontPage
dng cho default font (v d Arial). trnh trng hp ny, bn nn
t font cho cc vn bn lc thit k, trnh dng default font.

Chn phn gii thp hn, mu t hn khi qut cc nh vo


t my qut.
Chuyn sang lu tr di dng JPEG v gim cht lng ca
nh n mc cho php. Vi cch ny, d liu c nn tt
hn lm kch thc tp tin nh nh hn.

Hi: Lm th no va xem danh sch cc th mc khi ang


Page View
Tr li: Nhn vo nt Toggle Pane.

To thumbnail: Mt thumbnail l mt phin bn ca hnh nh


nhng cho php ti nhanh hn. Nhn vo phin bn ny,
ngi dng s quyt nh c cn thit phi ti phin bn hnh
nh vi kch thc tht hay khng. Cch ny thng dng khi
hin th cc trang web nhiu hnh nh.
S dng thuc tnh ALT trong tag <IMG>: thuc tnh ny s
hin th vn bn m t v hnh nh, gip ngi xem c th
hnh dung ra ngha ca hnh nh trong khi n ang c ti
v.

7.9. Cc cu hi thng gp khi dng phn mm Swish


Hi: Ti sao movie hin ra khi chn chc nng Test in Browser
ra on vn bn khng ging nh on vn bn g trong lc thit
k m ton l m
Tr li: Bn cha ng k s dng phn mm. Hy ng k v
export li.
Hi: C hai on vn bn cng hin th trn movie, lm th no
hai on vn bn ny khng b hin th chng ln nhau

Hnh 3. 52 Va xem cu trc website trong Page View

L nh Duy - H KHTN Tp. HCM

121

122

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Tr li: Chn Effect/Hide hoc Effect/Show iu khin on


vn bn tng ng l hin th hoc du i

Bi tham kho

BY BC THIT K TRANG WEB


N TNG V HIU QU

Hi: Ti sao khng chy c movie to bng Swish trn


Internet Explorer?
Tr li: C th my cha ci t Flash Player. C th ci t
Flash Player t phn mm Macromedia Flash MX t a CD
WebCourse.
Hi: Ti sao trang web c s dng movie to t Swish hin th
rt lu?
Tr li: Trong trng hp rt lu th c l tp tin .swf cha tn
ti hoc ng dn n tp tin .swf khai bo trong on m HTML
(gia cp tag <OBJECT>) cha chnh xc. Hy kim tra li tp tin
.swf tng ng tn ti hay cha v ng dn n tp tin ny
c khai bo ng hay cha.

Mc d vic thit k trang web i hi phi c nhiu kh nng v


m thut, tuy nhin vn c th a ra mt qu trnh thit k c
th gip bn tng kh nng to ra cc trang web hiu qu v n
tng. C th nhiu ngi s cho rng vic a ra cc bc trong
qu trnh thit k s lm mt i qu trnh sng to, iu ny c l
ng i vi nhng nh thit k gii, nhng ngi c qu trnh thit
k v sng to ca ring h. Nhng vi nhng ngi khng c
o to bi bn v thc hnh nhiu th vic nghin cu xem ngi
khc thit k v ng dng cc bc nh th no c th s gip
ch rt nhiu cho h.

1. Phn tch ngi dng v t nh gi chnh mnh


Nu bn khng bit ngi dng d nh l ai, th tt c vic thit
k, cho d c c thc hin k lng n u cng ch dn n
tht bi. Bn cn phi bit cc thng tin v ngi dng nh trnh ,
s thch, cc lnh vc quan tm, cu hnh trang thit b, phn mm,
trnh a ra mt trang web v tch s.
Bn cng cn phi phn tch cc mi quan tm v kh nng ca
chnh bn. Bn c kh nng thit k cc trang web c hiu qu v
n tng khng? Bn c trnh chuyn mn to ra c cc
trang c lng thng tin phong ph da trn cc ti nguyn sn c
khng?
Sau y l mt s k thut gip cho bc ny :
M t mc tiu: Hy xc nh chnh xc mc tiu ca trang
ny mt cch ngn gn. Mc tiu cn c m t mt cch
sc tch, r rng, khng qu rm r, chi tit.
Xc nh vn gii quyt: T m t mc tiu bc trn,
nu ra cc vn cn gii quyt t c mc tiu, tm
tt phng php gii quyt, ...

L nh Duy - H KHTN Tp. HCM

123

124

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Xc nh ngi dng: Lit k cc c im ca khch hng


nh tui tc, ngh nghip, gii tnh, thu nhp, trnh , vng
c tr, cu hnh trang thit b, phn mm, vo mt danh
sch phn tch v x l sau ny.

a ra cng nhiu cch trnh by t kh nng ca chnh bn.


Lun quan st v su tp cc trnh by tt ot gii,
c nhiu ngi cng nhn, hay cc trnh by m bn thch,
...

Lit k cc ngun ti nguyn: Bn c sn nhng g hon


thnh cng vic c v mt trang thit b, cng c phn mm,
v c v trnh chuyn mn ? Bn c th lm c
nhng g, v bn s nh gip nhng g ?

Lun cp nht cc thay i v cng ngh web. Bn nn lun


c cc ti liu mi nht v HTML, cng nh cc thng tin v
cc dng tp tin v cc thit b mi c h tr bi cc nh
sn xut.

Xy dng bng tin thc hin: Xc nh thi gian cn


hon thnh sn phm vi cc ti nguyn sn c, thi gian cn
thc hin tng bc ca qu trnh,

Lun ghi nh: i tng nh gi cch trnh by l ngi


dng ch khng phi bn.
Th cng nhiu gii php cng tt v hy ghi nhn cc nhn
xt, phn hi ca nhng ngi cng tc hon chnh thit
k.

2. Thit k cc chc nng v cu trc trang


C th lc ny bn rt mun ngi ngay vo my v bt tay vo
vic xy dng trang web nhng ng vi! Hy dnh thi gian cho
vic thit k cc chc nng v cu trc ca cc trang chnh, v y l
bc quan trng nht trong qu trnh thit k. Sau y l mt s
hng dn thc hin bc ny :
Chn cch lm vic sao cho c th phc tho thit k mt
cch thoi mi: Bn c th dng bt v s trn giy, hay
c th dng cc chng trnh my tnh phc tho. Tuy
nhin vic s dng cc chng trnh my tnh c th s lm
hn ch nng sut lm vic v cc cng c c sn thng b
gii hn.

4. Xy dng ni dung
L mt ngi thit k trang web, bn c th c hoc khng chu
trch nhim to ni dung (nh vn bn, hnh nh, m thanh, video,
..). V vic to ni dung thng khng th i n lc thit k hnh
thnh, bn c th tin hnh cc bc sau m bo rng ni dung
v thit k ca bn l tng thch vi nhau:
Sa i, hiu chnh cc ni dung c hoc cc ni dung m
bn c quyn sa.
Xin h tr v c vn ca nhng chuyn gia i vi cc ch
ngoi lnh vc chuyn mn ca bn.

Vic thit k nn i t tru tng n c th: Vic a ra cc


chi tit ngay t u c th s lm mt i tng quan ca vn
. Phi xc nh khung ca chc nng trc ri sau mi
la chn ni dung in vo.

Thit lp ng dy lin lc gia bn (ngi thit k) v


nhng ngi to ni dung. a ra cc qui c, cc c t
cho ni dung nh mi trng h tr, nh dng tp tin, cch
nn, qui c t tn tp tin,

3. Tm cch trnh by n tng v hiu qu

m bo cng nhiu thng tin cng tt. Cn phi c s kt


hp cht ch gia vn bn v ha, hnh nh, m thanh
trong ni dung.

Ngay c mt cu trc tt nht cng s tht bi nu vic trnh by


thng tin khng trc quan v n tng. Mt cch trnh by c n
tng v hiu qu c nh gi khng ch bng cch trng n nh
th no m cn xem n ng gp nh th no vo qu trnh t mc
tiu ban u.

To mt cu trc cy th mc hp l cho ni dung v thng


xuyn sao lu m bo an ton.

Sau y l mt s cch tm ra ngun cung cp cho cc trnh


by tt:

L nh Duy - H KHTN Tp. HCM

125

126

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

5. Thit k v kim tra khung trang web


Trong khi ang tin hnh xy dng ni dung, y l lc kim tra
cc chc nng v cu trc c xy dng trong bc 2 xem n
hot ng nh th no. y l bc m bn chuyn cc m t v
chc nng, v thit k ban u sang mt th hin l cc trang web
c th. Sau y l mt s hng dn thc hin bc ny :
Lin lc vi ngi qun tr server xem vic t chc cc tp
tin nh th no v cc c t no c sn. Cho ngi qun tr
bit cc loi tp tin no m bn ang s dng cha c h
tr.

ng ngi thay i mt quyt nh thit k trc . C th


bn gi nh sai, hoc l cng ngh thay i vo lc
a ni dung vo,

7. Kim tra v nh gi
Cc trang hiu qu nht l kt qu ca vic thit k v nh gi
cn thn. Mt web site tr gi na triu la c th c n 70% tng
chi ph dnh cho vic thit k v nh gi. Sau y l mt s bc
thc hin vic ny:
Kim tra hot ng ca cc lin kt ni b v cc ngun ti
nguyn.

S dng cc lin kt trong cc trang ti cc cu trc th mc


tng t nh cu trc th mc trn server.

Kim tra chnh xc ca cc lin kt ngoi. Khng c g t


hn l cc lin kt vi cc trang bn ngoi khng cn tn ti
na, hoc l c chuyn n ni khc, hoc l khng cn
ph hp na.

Ghi nhn cc nh thng c dng trong vic truy xut cc


trang thng thng a vo cache. Bng cch ny bn c
th tng tc truy xut cc trang.

Th cc trang vi nhiu trnh duyt khc nhau. Thc hin iu


ny kim tra tnh tng thch ca trang vi cc trnh duyt,
xem th thit k trang tn dng ht cc h tr ca trnh
duyt cha,

Th nghim trn server kim tra xem n hot ng ng


nh thit k hay khng.

6. a ni dung vo

Th cc trang bng nhiu cch kt ni khc nhau. Th xem


vic hin th cc trang c nh hng nh th no nu kt ni
bng mng cc b, ng kt ni tc cao, ng in
thoi,

Trong trng hp tt nht, cc khung dnh cho vn bn v


ha s c in vo bng ni dung thc s ca n mt cch d
dng v n khp. Tuy nhin iu ny him khi xy ra v mt l, hnh
nh v vn bn a vo c th khng va vi khung thit k dnh
cho n nh d nh ban u. Cn phi thm mt s thao tc na
mi c th thc hin xong chuyn ny.

Th cc trang tnh trng mc truy cp cao. Nu server


ca bn chy tt trong cc gi cao im th nhng gi khc c
th chp nhn c.

vic a ni dung vo tht s n gin, n khp, cn phi


gi mi lin lc tt gia cc thnh vin lin quan nh ngi thit k,
ngi minh ha, ngi vit ni dung, ngi bin tp, v ngi qun
tr server, Sau y l mt s hng dn cho vic thc hin tt
bc ny :

Th cc trang vi nhiu dng ngi dng khc nhau. Nu


trang ca bn cp v cc mi quan tm chung th hy tranh
th th trang web vi nhng ng s, bn b, Hy ghi ch
v quan st. C th bn s khng cn thay i phin bn ca
trang web nhng bn s cn cc thng tin v trang lin tc
c cp nht ha.

Trc tin hy cho cc trang hot ng cc b, ring l d


kim tra, hiu chnh, nh gi, ...
Lm vic theo module, ngha l cho nhm cc trang lin quan
nhau hot ng tri chy trc khi m rng ra.

L nh Duy - H KHTN Tp. HCM

127

128

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Chng 4

CC NGN NG SCRIPT
H TR LP TRNH WEB

Cch s dng cc hm th vin sn c v cch t xy


dng cc hm/th tc. Cc hm th vin sn c thng gp
l: x l cc kiu d liu (x l chui, x l s, x l ngy,
thng, ...), tng tc vi cc thit b nhp xut chun (xut d
liu ra mn hnh, nhp d liu t bn phm, ...), ...

1. GII THIU V VBSCRIPT V JAVASCRIPT

Phn trnh by v s dng VBScript v JavaScript ch l phn


tm tt (Ngm nh rng ngi c bit n cch lp trnh mt
ngn ng lp trnh khc nh Pascal, C, ...)

VBScript v JavaScript l cc ngn ng lp trnh kiu thng dch


dng cho Web. Cc on chng trnh vit bng cc ngn ng ny
nhng trong cc trang HTML s c cc trnh duyt thng dch
thc hin. Cc ngn ng script cho php pht trin nhanh v d
dng cc chng trnh n gin hn l cc ngn ng lp trnh dng
bin dch nh C, C++.
VBScript do Microsoft pht trin trong khi JavaScript do
Netscapte pht trin. C php ca VBScript gn ging vi
VisualBasic trong khi c php ca JavaScript li gn ging vi C++.
VBScript v JavaScript l hai ngn ng script dng vit cc
on chng trnh pha client rt thng dng hin nay. JavaScript
c h tr tt trn hu ht cc trnh duyt trong khi VBScript ch
c h tr tt nht trn trnh duyt Internet Explorer ca Microsoft
m thi.
Cc lnh, hm, bin ... trong VBScript khng phn bit ch
thng v ch hoa, trong khi JavaScript th ngc li.
Cc vn chnh s c trnh by khi gii thiu cc ngn ng
lp trnh VBScript v JavaScript:
Cc nh ngha ca cc kiu d liu v cch khai bo cc
bin. Hu ht cc ngn ng lp trnh u nh ngha cc kiu
d liu thng dng nh kiu s, kiu chui, ... im khc
nhau gia chng ch l cch t tn kiu d liu m thi. V
d: lu tr s nguyn trong Pascal, ta dng kiu d liu c
tn l integer, cn trong C l kiu d liu c tn l int.
C php ca cc lnh, cc cu trc iu khin trong
chng trnh. V d: lnh gn trong Pascal, chng ta dng k
hiu :=, trong khi C l =. C 4 loi cu trc iu khin
chnh: lnh gn, lnh iu kin, lnh lp, li gi hm/th tc.

2. S DNG VBSCRIPT
2.1. Cc kiu d liu c bn
VBScript ch c mt kiu d liu duy nht l Variant. Variant l
kiu d liu c bit c th cha cc loi d liu khc nhau t
nhng kiu d liu n gin nh kiu s cho n cc kiu d liu
phc tp nh kiu bn ghi (record). V Variant l kiu d liu duy
nht ca VBScript nn y l cng l kiu d liu c tr v t cc
hm/th tc vit bng VBScript.
Ni mt cch d hiu hn l: nu trong Pascal bn phi lu tr
d liu s trong kiu d liu interger, d liu chui trong kiu d
liu string, th trong VBScript bn c th va lu tr d liu s, va
lu tr d liu chui (hay bt k d liu kiu no khc) trong kiu d
liu Variant. Vic xem mt bin Variant l s hay chui ty vo ng
cnh s dng. V d: trong biu thc b=a+1234 th a, b c xem
nh l kiu s cn trong biu thc b=a+1234, th a, b c xem
nh l kiu chui.
Variant Subtypes: l cc dng thng tin khc nhau m kiu d
liu Variant c th lu tr.
Subtypes
Empty
Null
Boolean
Byte
Integer
Currency
Long
Single

L nh Duy - H KHTN Tp. HCM

129

130

M t
D liu cha c khi to.
Null
D liu lun l True hoc False
S nguyn c gi tr t 0 n 255
S nguyn c gi tr t -32768 n 32767
T -922,337,203,685,477.5808 n
922,337,203,685,477.5807.
S nguyn c gi tr t -2,147,483,648 n
2,147,483,647.
S thc, c gi tr t 3.402823E38 n 1.401298EEmail: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Subtypes

Double

Date (Time)
String
Object
Error

Email: ledduy@ieee.org

M t
45 cho cc gi tr m; t 1.401298E-45 n
3.402823E38 cho cc gi tr dng.
S thc, c gi tr t 1.79769313486232E308 n
4.94065645841247E-324 cho cc gi tr m; t
4.94065645841247E-324 n
1.79769313486232E308 cho cc gi tr dng.
Cha gi tr s biu din ngy trong khong
01.01.100 n 31.12.9999.
Chui k t c di thay i. S k t ti a c th
lu tr l 2 t
Cha i tng
Cha m li

chiu. V d sau khai bo mt mng 2 chiu gm 6 dng, 11 ct:


Dim MyTable(5, 10).
truy xut ti mt phn t ca mng 2 chiu, v d nh phn
t dng i, ct j, ta dng: MyTable(i, j).
i vi cc mng khng khai bo kch thc trc, ngi ta gi
mng ng (dynamic). Ngha l kch thc ca mng c th thay i
c trong qu trnh chy chng trnh. Ngi ta dng t kha
ReDim thay i kch thc mng.

2.3. Lnh iu kin

chuyn d liu t mt subtype ny sang subtype khc ta


dng cc hm chuyn nh CByte, CDate, CInt, CStr, .... Trong khi
, bit mt bin Variant ang lu tr d liu kiu subtype no,
ta dng hm VarType.

C hai dng lnh iu kin l If...Then...Else v SelectCase


Cc c php ca lnh If...Then...Else
If <biu thc iu kin> Then <Lnh>

2.2. Khai bo bin

V d:
Sub FixDate()
Dim myDate
myDate = #2/13/95#
If myDate < Now Then myDate = Now
End Sub

Ngi ta s dng t kha Dim khai bo bin. khai bo


nhiu bin, ngi ta dng du , phn cch gia cc bin. V d:
Dim Left, Top, Right, Bottom
Trong VBScript, khng nht thit phi khai bo cc bin trc
khi s dng. yu cu cc bin cn phi c khai bo trc khi
s dng, ta dng lnh Option Explicit t ngay trc lnh u tin
ca on m chng trnh.

Ch : Lnh c vit trn cng mt hng vi If. Then


If <biu thc iu kin> Then
...
<Lnh i>
...
End If

Qui tc t tn bin:
Phi bt u bng 1 k t ch ci.

V d:

Khng cha du .

Sub AlertUser(value)
If value = 0 Then
AlertLabel.ForeColor = vbRed
AlertLabel.Font.Bold = True
AlertLabel.Font.Italic = True
End If
End Sub

Khng vt qu 255 k t.
khai bo mng, ta dng cp du ( v ) nh ngha cc
s chiu v kch thc mi chiu ca m. V d sau dng khai
bo mt mng mt chiu c 11 phn t: Dim A(10).
Phn t bt u ca mng mt chiu l phn t c ch s l 0.
truy xut ti phn t th i ca mng mt chiu A, ta dng nh
sau: A(i).

If <biu thc iu kin> Then


...
<Lnh i>

VBScript c th h tr mng ln n 60 chiu. Tuy nhin,


thng dng nht trong mng nhiu chiu l mng 2 chiu hoc 3
L nh Duy - H KHTN Tp. HCM

131

132

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Else

End If

Email: ledduy@ieee.org

...

C php ca lnh SelectCase

...
<Lnh i>
...

Select Case <tn bin>


Case <gi tr1>
...
<Lnh i>
...
Case <gi tr i>
...
<Lnh i>
...
Case Else
...
<Lnh i>
...
End Select

V d:
Sub AlertUser(value)
If value = 0 Then
AlertLabel.ForeColor = vbRed
AlertLabel.Font.Bold = True
AlertLabel.Font.Italic = True
Else
AlertLabel.Forecolor = vbBlack
AlertLabel.Font.Bold = False
AlertLabel.Font.Italic = False
End If
End Sub

V d:
Select Case
Document.Form1.CardType.Options(SelectedIndex).Text
Case "MasterCard"
DisplayMCLogo
ValidateMCAccount
Case "Visa"
DisplayVisaLogo
ValidateVisaAccount
Case "American Express"
DisplayAMEXCOLogo
ValidateAMEXCOAccount
Case Else
DisplayUnknownImage
PromptAgain
End Select

If <biu thc iu kin 1> Then


...
ElseIf <biu thc iu kin 2> Then
...
ElseIf <biu thc iu kin i> Then
...
Else
...
End If

V d:
Sub ReportValue(value)
If value = 0 Then
MsgBox value
ElseIf value = 1 Then
MsgBox value
ElseIf value = 2 then
Msgbox value
Else
Msgbox "Value out of range!"
End If

L nh Duy - H KHTN Tp. HCM

2.4. Lnh lp
C bn dng lnh lp l Do...Loop, While...Wend, For...Next,
For Each...Next.

133

134

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Cc c php ca lnh Do...Loop


Do While <biu thc iu kin>
...
<Lnh i>
...
Loop

Do Until <biu thc iu kin>


...
<Lnh i>
...
Loop

Do

Do

...
<Lnh i>
...
Loop While <biu thc iu kin>

...
<Lnh i>
...
Loop Until <biu thc iu kin>

V d:

V d:

Sub ChkFirstWhile()
Dim counter, myNum
counter = 0
myNum = 20
Do While myNum > 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub

Sub ChkFirstUntil()
Dim counter, myNum
counter = 0
myNum = 20
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub

Sub ChkLastWhile()
Dim counter, myNum
counter = 0
myNum = 9
Do
myNum = myNum - 1
counter = counter + 1
Loop While myNum > 10
MsgBox "The loop made " & counter & " repetitions."
End Sub

Sub ChkLastUntil()
Dim counter, myNum
counter = 0
myNum = 1
Do
myNum = myNum + 1
counter = counter + 1
Loop Until myNum = 10
MsgBox "The loop made " & counter & " repetitions."
End Sub

C php ca lnh While...Wend


While <biu thc iu kin>
...
<Lnh i>
...
Wend

Nn dng Do...Loop thay cho While...Wend

L nh Duy - H KHTN Tp. HCM

135

136

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Cc c php ca lnh For...Next


V d:

For <bin m>=<ch s u> To <ch s cui>


...
<Lnh i>
...
Next

<HTML>
<HEAD><TITLE>Forms and Elements</TITLE></HEAD>
<SCRIPT LANGUAGE="VBScript">
<!-Sub cmdChange_OnClick
Dim d 'Create a variable
Set d = CreateObject("Scripting.Dictionary")
d.Add "0", "Athens" 'Add some keys and items
d.Add "1", "Belgrade"
d.Add "2", "Cairo"

V d:
Sub DoMyProc50Times()
Dim x
For x = 1 To 50
MyProc
Next
End Sub

For Each I in d
Document.frmForm.Elements(I).Value = D.Item(I)
Next
End Sub
-->
</SCRIPT>
<BODY>
<CENTER>
<FORM NAME="frmForm"

For <bin m>=<ch s u> To <cs cui> Step <bc


nhy>
...
<Lnh i>
...
Next

V d:
Sub TwosTotal()
Dim j, total
For j = 2 To 10 Step 2
total = total + j
Next
MsgBox "The total is " & total
End Sub

<Input Type
<Input Type
<Input Type
<Input Type
<Input Type
Here"><p>
</FORM>
</CENTER>
</BODY>
</HTML>

Sub NewTotal()
Dim myNum, total
For myNum = 16 To 2 Step -2
total = total + myNum
Next
MsgBox "The total is " & total
End Sub

"Text"><p>
"Text"><p>
"Text"><p>
"Text"><p>
"Button" NAME="cmdChange" VALUE="Click

2.5. Hm v th tc
Khai bo th tc
Sub <tn th tc>(<danh sch cc tham s>)
...
End Sub

Cc c php ca lnh For Each...Next


Tng t For ...Next nhng thay v lp theo mt s ln nh
trc, lnh For Each...Next c dng lp tng ng vi mi
thnh phn ca cc bin dng collection hoc mi thnh phn ca
mng.

L nh Duy - H KHTN Tp. HCM

=
=
=
=
=

137

138

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

V d:
Sub ConvertTemp()
temp = InputBox("Please enter the temperature in deg F.", 1)
MsgBox "The temperature is " & Celsius(temp) & " deg C."
End Sub

Khai bo hm

var count; // a single declaration.


var count, amount, level; // multiple declarations with a single var
keyword.
var count=0, amount=100; //variable declaration and initialization
in 1 statement.

Nu mt bin khng c khi to trong lc khai bo, n s ly


gi tr l undefined.

Function <tn hm>(<danh sch cc tham s>)


...
End Function

Qui tc t tn bin:

V d:

Phi bt u bng 1 k t ch hoc du gch di _.

Function Celsius(fDegrees)
Celsius = (fDegrees - 32) * 5 / 9
End Function
Minh ha cch gi hm, th tc bn trong chng trnh

Theo sau ch l hoc k t ch, hoc l k t s, hoc l du


gch di.
Khng c trng vi cc t dnh ring v d nh t kha, ...

Temp = Celsius(fDegrees)

To d liu kiu mng

MsgBox "The Celsius temp. is " & Celsius(fDegrees) & " deg."

V d sau dng khai bo mt mng mt chiu c 10 phn


t: var A = new Array(10). Ta dng ton t new v Array()
constructor.

Call MyProc(firstarg, secondarg)

Phn t bt u ca mng mt chiu l phn t c ch s l 0.


truy xut ti phn t th i ca mng mt chiu A, ta dng
nh sau: A[i].

MyProc firstarg, secondarg

3. S DNG JAVASCRIPT

3.3. Lnh iu kin

3.1. Cc kiu d liu c bn

C hai dng lnh iu kin l if/else v switch

JavaScript nh ngha cc kiu d liu c bn bao gm: kiu s,


kiu chui, kiu lun l, kiu object, kiu mng, null, undefined.

Cc c php ca lnh if/else


if (<biu thc iu kin>)
{
...
<Lnh i>;
...
}
else
{
...
<Lnh i>;
...
}

Trnh thng dch JavaScript ch c th tnh ton gi tr ca mt


biu thc mt khi kiu d liu ca cc ton hng l nh nhau. Do
, i lc bn cn phi p kiu cho cc ton hng trong cc biu
thc trnh cc hiu ng l.
Ch rng trong Javascript, c phn bit ch thng v ch
hoa.

3.2. Khai bo bin


S dng t kha var khai bo bin. JavaScript i hi cc
bin phi c khai bo trc khi s dng. V d:

L nh Duy - H KHTN Tp. HCM

139

140

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

V d
// The smash() function is defined elsewhere in the code.
// Boolean test of whether newShip is true.
if (newShip)
smash(champagneBottle,bow);
// In this example, the test fails unless both conditions are true.
if (rind.color == "deep yellow " && rind.texture == "large and
small wrinkles")
{
theResponse = ("Is it a Crenshaw melon?");
}

3.4. Lnh lp
C bn dng lnh lp l while, do/while, for, for/in.
Cc c php ca lnh while

// In this example, the test succeeds if either condition is true.


var theReaction = "";
if ((dayOfWeek == "Saturday") || (dayOfWeek == "Sunday"))
{
theReaction = ("I'm off to the beach!");
}
else
{
theReaction = ("Hi ho, hi ho, it's off to work I go!");
}

while (<biu thc iu kin>) {


...
<Lnh i>;
...
}

V d
var x = 0;
while ((x != 42) && (x != null))
{
x = window.prompt("What is my favourite number?", x);
}

C php ca lnh switch


switch (<tn bin>) {
case <gi tr1>:
...
break;
case <gi tr i>:
...
break;
default:
...
break;
}

if (x == null)
window.alert("You gave up!");
else
window.alert("Yep - it's the Ultimate Answer!");

Cc c php ca lnh do/while


do {
...
<Lnh i>;
...
while (<biu thc iu kin>)

V d
function MyObject() {
...
}

V d
var x = 0;
do
{
x = window.prompt("What is my favourite number?", x);
} while ((x != 42) && (x != null));

switch (object.constructor){
case Date:
...
case Number:
L nh Duy - H KHTN Tp. HCM

...
case String:
...
case MyObject:
...
default:
...

141

142

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

if (x == null)
window.alert("You gave up!");
else
window.alert("Yep - it's the Ultimate Answer!");

4. S DNG VBSCRIPT V JAVASCRIPT TRONG CC


TRANG WEB

Cc c php ca lnh for

for ( <biu thc khi to>;<biu thc iu kin>; <biu thc


thay i>){
...
}

V d
var howFar = 10; // Sets a limit of 10 on the loop.
// Creates an array called sum with 10 members, 0 through 9.
var sum = new Array(howFar);
var theSum = 0;
sum[0] = 0;
// Counts from 0 through 9 in this case.
for(var icount = 0; icount < howFar; icount++) { theSum +=
icount;
sum[icount] = theSum;
}
// This isn't executed at all, since icount is not greater than
howFar
var newSum = 0;
for(var icount = 0; icount > howFar; icount++) { newSum +=
icount;
}
var sum = 0;
// This is an infinite loop.
for(var icount = 0; icount >= 0; icount++) { sum += icount;
}

3.5. Hm
Khai bo hm
function <tn hm>(<danh sch cc tham s>){
...
}

4.1. Cch
chn
cc
on
chng
VBScript/JavaScript vo trang HTML

trnh

S dng tag <SCRIPT>, trong ghi r ngn ng lp trnh dng


vit m chng trnh. Cc tag <!--v --> dng nhc cc trnh
duyt khng hin th cc on m bn trong nu n khng hiu tag
<SCRIPT>. V d:
<SCRIPT LANGUAGE="JavaScript">
<!-document.writeln(Hello World!)
-->
</SCRIPT>

<HTML>
<HEAD>
<TITLE>Place Your Order</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--

//Perform addition and return results.

L nh Duy - H KHTN Tp. HCM

Cc on chng trnh thc hin client thng thc hin cc


cng vic khng qu phc tp nh: thc hin mt s thao tc n
gin trn cc i tng ca trang web, kim tra tnh hp l ca form
nhp liu, thc hin vic trnh by ng ca cc i tng trn trang
web (thay i mu sc, kch thc, ...) ...

Cc on m script c th t gia cp tag <HEAD> v


</HEAD>. hay gia cp tag <BODY> v </BODY>. Tuy nhin nn
t tt c cc on m script trong tag <HEAD> v </HEAD> d
kim sot v chc chn rng cc on m ny c c v
thng dch trc cc thnh phn trong <BODY>. V d:

V d
function add(x, y)
{
return(x + y);
}

Thu ban u, cc trang web thng l tnh. Ngha l ni dung


ca trang web ti v mi my l nh nhau v bt bin. Mt trong cc
cch tng tnh ng cho cc trang web tnh l chn vo cc
on chng trnh vit bng cc ngn ng lp trnh script nh
VBScript v JavaScript. Cc on chng trnh nh vy thng
c gi on m thc hin pha client (client-side script). Ngha
l cc on chng trnh ny s c ti v client v trnh duyt s
ng vai tr nh l trnh thng dch cc on m ny mi khi thc
hin chng.

143

144

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Function CanDeliver(Dt)
CanDeliver = (CDate(Dt) - Now()) > 2
End Function
-->
</SCRIPT>
</HEAD>
...

hin th cc hp thng bo, ta dng cc hm alert, confirm


v prompt ca i tng window. V d:

4.2. Tng tc vi cc i tng trn trang web


Mi thnh phn trong trang web u c xem l i tng lp
trnh: ton b trang web c xem l mt i tng, cc form,
nhp liu, nt nhn, u l i tng. Chnh v vy m ta c th
tham chiu n cc thuc tnh cng nh gi cc phng thc ca
cc i tng ny theo cch thng thng ca lp trnh hng i
tng.

<HTML>
<HEAD>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!-x = window.confirm("Are you sure you want to quit?");
if (x)
window.alert("Thank you.")
else
window.alert("Good choice.")
//-->
</SCRIPT>
</BODY>
</HTML>

i tng document l i tng quan trng nht i vi cc


chng trnh thc hin ti client v n i din cho chnh trang web
hin hnh. Ngha l mi thao tc mun thay i, tham chiu, ... n
cc i tng, cc thnh phn trn trang web hin hnh nh form,
vn bn, ... u phi thng qua i tng ny.

V d sau dng t thng bo ngay trong thanh trng thi, ta


dng: window.status=Welcome to my website

V d: kt xut d liu ra trang web hin hnh, ta dng cc


hm write v writeln ca i tng document.

4.3. X l cc s kin khi tng tc vi cc thnh phn


ca trang web

<HTML>
<HEAD>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!-document.writeln("Welcome to my site!");
//-->
</SCRIPT>
<br>
<SCRIPT LANGUAGE="VBScript">
<!-document.write "This site is under construction"
//-->
</SCRIPT>
</BODY>
</HTML>

S kin onclick l s kin c pht sinh khi ngi dng nhn


chut vo mt i tng trn trang web v d nh button, hyperlink,
.. . gn cc hm x l s kin ny vo i tng mi khi n c
pht sinh, thng thng ta thc hin theo cch sau:
To mt hm x l s kin . Hm ny t trong cp tag
<SCRIPT>.
Trong i tng cn gn hm x l s kin, ta thm dng c
c php: <tn s kin>=<hm x l s kin> vo bn trong.
Lu thm thuc tnh LANGUAGE xc nh ngn ng ca
script chn vo
V d sau minh ha vic gn hm x l s kin onclick trn hai
i tng nt nhn:

i tng window l i tng i din cho ca s m trong


trang web hin th. Thng thng, trnh duyt s to ra i tng
window khi n m mt trang HTML.
L nh Duy - H KHTN Tp. HCM

145

<HTML>
<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!-Sub vbsEventHandler
146

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

End Sub

Email: ledduy@ieee.org

window.alert("VBScript Event Handler")

Tuy nhin, vn c mt s cch hn ch nhng ngi t hiu


bit bng cch:

-->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
<!-function jsEventHandler() {
window.alert ("JavaScript Event Handler");
}
-->
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE=BUTTON NAME="vbsBtn" VALUE="VBS Test"
LANGUAGE="VBScript" onclick="vbsEventHandler()">&nbsp;
<INPUT TYPE=BUTTON NAME="jsBtn" VALUE=" JS Test "
LANGUAGE="JavaScript" onclick="jsEventHandler();"><br>
</BODY>
</HTML>

Cc javascript khng code sn trong cc tp tin .htm gi n


m c t chc thnh cc tp tin .js v include vo tp tin
.htm. Tuy nhin, nu ngi dng save ton b file htm xung
th vn c th tm ra c tp tin .js v chc chn n nm trn
my ca ngi dng.
Vit mt s on m m ha javascript sao cho ngi
dng khng th thy source code ca javascript mt cch d
dng nhng trnh duyt vn hiu c. C th xem mt demo
ti
y:
http://www.designerwiz.com/generator/encryptHTML.htm
Tuy nhin cch ny cng vn khng che mt c ngi dng
chuyn nghip.

i vi VBScript, nu bn t tn mt hm c dng <tn i


tng>_<tn s kin>, th hm ny s c xem nh l hm x l
s kin cho i tng nu trn. V d:
<HTML>
<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!-Sub vbsBtn_OnClick
window.alert("VBScript Event Handler")
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>

6.1. i mu nn ca trang web hin hnh


V d sau minh ha vic thay i mu nn ca trang web hin
hnh ng. Lnh dng thay i mu nn ca ti liu l
document.bgcolor=rrggbb

<INPUT TYPE=BUTTON NAME="vbsBtn" VALUE="VBS Test">


</BODY>
</HTML>

5. Du m VBScript/JavaScript
V mt l thuyt th cc javascript l cc client-side script ngha l
n s c thi hnh ti my ca ngi dng ch khng phi l ti
server. iu c ngha l n phi c ti v my ca ngi dng
lc trang web c gi. Do , ta khng th du c.

L nh Duy - H KHTN Tp. HCM

6. MT S V D MINH HA

147

<HTML>
<HEAD>
<TITLE>Change BG Color</TITLE>
</HEAD>
<BODY>
<FORM>
<SELECT onChange=
"document.bgColor=this.options[this.selectedIndex].value">
<OPTION VALUE="40E0D0"> Torquoise
<OPTION VALUE="2E8B57"> Sea Green
<OPTION VALUE="87CEEB"> Sky Blue
<OPTION VALUE="F4A460"> Sandy Brown
<OPTION VALUE="FFF0F5"> Lavender Blush
<OPTION VALUE="FF1493"> Deep Pink
<OPTION VALUE="FFFFFF" SELECTED> White
</SELECT>
</FORM>
</BODY>
</HTML>
148

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

6.2. Ch chuyn ng trn thanh trng thi (scroller)


<TR><TD>
<FORM NAME="clock_form">
<INPUT TYPE=TEXT NAME="clock" SIZE=26>
</FORM>

V d sau minh ha vic cho dng ch chy trn thanh trng thi
ca ca s. Lnh dng thay i ni dung ca thanh trng thi l
window.status=str
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Start of scroller script
var scrollCounter = 0;
var scrollText = "Welcome to my lesson!";
var scrollDelay = 70;
var i = 0;

<SCRIPT LANGUAGE="JavaScript">
<!-- Hide from non JavaScript browsers
function clockTick()
{
currentTime = new Date();
document.clock_form.clock.value = " "+currentTime;
document.clock_form.clock.blur();
setTimeout("clockTick()", 1000);
}
clockTick();
// End of clock -->
</SCRIPT>
</TD></TR>
</TABLE>
</BODY>
</HTML>

while (i ++ < 140)


scrollText = " " + scrollText;
function Scroller()
{
window.status = scrollText.substring(scrollCounter++,
scrollText.length);
if (scrollCounter == scrollText.length)
scrollCounter = 0;
setTimeout("Scroller()", scrollDelay);
}

6.4. Kim tra tnh hp l ca d liu nhp t form


V d sau minh ha mt form nhp liu. Khi ngi dng chn nt
Submit th on chng trnh s kim tra cc d liu c c
nhp vo hay khng. Nu c mt d liu no cha nhp, chng
trnh s hin thng bo yu cu nhp li

Scroller();
// End of scroller script -->
</SCRIPT>
<TITLE>StatusScroller</TITLE>
</HEAD>
<BODY>
<P>See at your status bar!!!</P>
</BODY>
</HTML>

6.3. ng h
V d sau minh ha vic hin th thi gian h thng hin hnh.
i tng cung cp thng tin v ngy gi l Date
<HTML>
<HEAD>
<TITLE>Clock</TITLE>
</HEAD>
<BODY>
<TABLE BORDER=0 BGCOLOR=BLUE>
L nh Duy - H KHTN Tp. HCM

149

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Hide code from non-js browsers
function validateForm()
{
formObj = document.sample;
if (formObj.yourname.value == "")
{
alert("You have not filled in the name field.");
formObj.yourname.focus();
return false;
}
else if (formObj.yourage.value == "")
{
150

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

alert("You have not filled in the age field.");


formObj.yourage.focus();
return false;

//Advanced Email Check credit//By JavaScript Kit (http://www.javascriptkit.com)


//Over 200+ free scripts here!

}
else if (formObj.yourdob.value == "")
{
alert("You have not filled in your date of birth.");
formObj.yourdob.focus();
return false;
}

var testresults
function checkemail(){
var str=document.validation.emailcheck.value
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
if (filter.test(str))
testresults=true
else{
alert("Please input a valid email address!")
testresults=false
}
return (testresults)
}
</script>

}
// end hiding -->
</SCRIPT>
<TITLE>FormValidation</TITLE>
</HEAD>
<BODY>
<FORM NAME="sample" METHOD=POST
ACTION="adduser.asp" onSubmit="return validateForm()">
Enter your name :
<INPUT TYPE=TEXT NAME="yourname" SIZE=30><BR>
Enter your age :
<INPUT TYPE=TEXT NAME="yourage" SIZE=3><BR>
Date of birth :
<INPUT TYPE=TEXT NAME="yourdob" SIZE=10><BR>
<INPUT TYPE=SUBMIT>&nbsp;&nbsp;<INPUT TYPE=RESET>
</FORM>
</BODY>
</HTML>

6.5. Kim tra chui nhp vo c phi l a ch email hp


l hay khng
V d sau minh ha vic s dng Javascript kim tra chui
ngi dng nhp vo c phi l mt a ch email hp l hay khng.
<HTML>
<HEAD>
<TITLE>Email Check</TITLE>
</HEAD>
<BODY>
<form name="validation" onSubmit="return checkbae()">
Please input a valid email address:<br>
<input type="text" size=18 name="emailcheck">
<input type="submit" value="Submit">
</form>
<script language="JavaScript1.2">
L nh Duy - H KHTN Tp. HCM

<script>
function checkbae(){
if (document.layers||document.getElementById||document.all)
return checkemail()
else
return true
}
</script>
</BODY>
</HTML>

6.6. Menu
V d sau minh ha mt menu dropdown.
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript1.2">
/*
Drop down menu link Dynamic Drive (www.dynamicdrive.com)
*/
//Contents for menu 1
var menu1=new Array()

151

152

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

menu1[0]='<a href=http:/home.vdc.vn>VDC News</a><br>'


menu1[1]='<a href=http://vnexpress.net>VN Express</a><br>'
menu1[2]='<a href=http://www.is-edu.hcmuns.edu.vn>IS-EDU
Site</a><br>'
//Contents for menu 2
var menu2=new Array()
menu2[0]='<a href=http://www.yahoo.com>Yahoo</a><br>'
menu2[1]='<a href=http://www.altavista.com>Altavista</a><br>'
menu2[2]='<a href=http://www.lycos.com>Lycos</a><br>'
</SCRIPT>

}
else{

hidemenu()

function dropit(e,whichone){
if (window.themenu&&themenu.id!=eval(whichone).id)
themenu.visibility="hide"
themenu=eval(whichone)
if (themenu.visibility=="hide")
themenu.visibility="show"
else
themenu.visibility="hide"
themenu.zIndex++
themenu.left=e.pageX-e.layerX
themenu.top=e.pageY-e.layerY+19
return false
}

<STYLE>
<!-.iewrap1{
position:relative;
height:30px;
}
.iewrap2{
position:absolute;
}
#dropmenu0, #dropmenu1{
visibility:hide;
z-index:100;
}
-->
</STYLE>
</HEAD>

function hidemenu(whichone){
if (window.themenu)
themenu.style.visibility="hidden"
}
function hidemenu2(){
themenu.visibility="hide"
}

<BODY>
<SCRIPT LANGUAGE="JavaScript1.2">
//reusable/////////////////////////////
var zindex=100
function dropit2(whichone){
if (window.themenu&&themenu.id!=whichone.id)
themenu.style.visibility="hidden"
themenu=whichone
if (document.all){

if (document.all)
document.body.onclick=hidemenu
//reusable/////////////////////////////
</SCRIPT>

themenu.style.left=document.body.scrollLeft+event.clientXevent.offsetX
themenu.style.top=document.body.scrollTop+event.clientYevent.offsetY+18
if (themenu.style.visibility=="hidden"){
L nh Duy - H KHTN Tp. HCM

themenu.style.visibility="visible"
themenu.style.zIndex=zindex++

153

<!----------Menu 1 starts here---------->


<ilayer height=35px>
<layer visibility=show>
<span class=iewrap1>
<span class=iewrap2
onClick="dropit2(dropmenu0);event.cancelBubble=true;return
154

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

false">
<font face=Verdana><b><a href="alternate.htm"
onClick="if(document.layers) return dropit(event,
'document.dropmenu0')">Local Links</a></b></font>
</span>
</span>
</layer>
</ilayer><br>
<!----------Menu 1 ends here---------->

}
</SCRIPT>
<DIV id=dropmenu1 STYLE="position:absolute;left:0;top:0;layerbackground-color:lightyellow;backgroundcolor:lightyellow;width:120;visibility:hidden;border:2px solid
black;padding:0px">
<SCRIPT LANGUAGE="JavaScript1.2">
if (document.all)
dropmenu1.style.padding="4px"
for (i=0;i<menu2.length;i++)
document.write(menu2[i])
</SCRIPT>
</DIV>
<SCRIPT LANGUAGE="JavaScript1.2">
if (document.layers){
document.dropmenu1.captureEvents(Event.CLICK)
document.dropmenu1.onclick=hidemenu2
}
</SCRIPT>
</BODY>
</HTML>

<!----------Menu 2 starts here---------->


<ilayer height=35px>
<layer visibility=show>
<span class=iewrap1>
<span class=iewrap2
onClick="dropit2(dropmenu1);event.cancelBubble=true;return
false">
<font face=Verdana><b><a href="alternate.htm"
onClick="if(document.layers) return dropit(event,
'document.dropmenu1')">Global Links</a></b></font>
</span>
</span>
</layer>
</ilayer><br>
<!----------Menu 2 ends here---------->
<P>&nbsp;</P>
<DIV id=dropmenu0 STYLE="position:absolute;left:0;top:0;layerbackground-color:lightyellow;backgroundcolor:lightyellow;width:120;visibility:hidden;border:2px solid
black;padding:0px">
<SCRIPT LANGUAGE="JavaScript1.2">
if (document.all)
dropmenu0.style.padding="4px"
for (i=0;i<menu1.length;i++)
document.write(menu1[i])
</SCRIPT>
</DIV>
<SCRIPT LANGUAGE="JavaScript1.2">
if (document.layers){
document.dropmenu0.captureEvents(Event.CLICK)
document.dropmenu0.onclick=hidemenu2
L nh Duy - H KHTN Tp. HCM

155

156

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

THC HNH

2. Tham kho cc m JavaScript


www.javascriptkit.com

1. Kim tra tnh hp l ca d liu trong form

http://javascript.internet.com/

Thit k mt form nhp Username v Password t ngi


dng. Form ch c submit mt khi ngi dng c nhp
thng tin c 2 Username v Password. Ngi ta yu cu
cc thng tin nhp vo 2 ny ch c php l ch ci hoc
ch s thi. a ra cc thng bo tng ng v yu cu
ngi dng nhp li cho n khi cc iu kin c kim tra
thnh cng.

www.dynamicdrive.com
http://javascript.com/
http://www.mjtnet.com/resources.htm
Tham kho cc website trn ng dng vo:
=To mt lch (calender), cho php ngi dng chn ngy,
thng, nm cho cc ng dng lin quan n xp lch hay chn
ngy
thng
nm
sinh.
Tham
kho:
http://javascript.internet.com/calendars/dynamic.html

Thit k mt form c nhp d liu dng ngy, kim tra xem


ngy m ngi dng nhp vo c hp l hay khng.
To mt form nhp liu, trong c 10 checkbox v 1 check
box c tn Check All. Khi ngi dng nhn nt CheckAll,
trng thi ca 10 checkbox trn s thay i theo trng thi ca
nt ny. Xem 1 v d ca Yahoo Mail sau:

Chuyn tt c thnh ch in hoa khi ngi dng va nhp


xong mt nhp liu. Tham kho:
http://javascript.internet.com/forms/all-upper-case.html
Chn theo 2 cp. Gi s ng dng mun ly thng tin v qun
huyn m ngi dng mun lm vic. Chng trnh u tin
s hin th danh mc cc tnh thnh, sau khi chn xong tnh,
chng trnh s hin th danh mc cc qun huyn tng ng
vi tnh .
Tham kho: http://javascript.internet.com/forms/country.html
Gii thch nhp liu. Bn cnh mt nhp liu, to mt
hyperlink n mt ca s hng dn cch thc nhp liu cho
. Khi ngi dng xem xong, focus tr li nhp liu
ngi dng nhp. Tham kho:
http://javascript.internet.com/forms/field-explanation.html

L nh Duy - H KHTN Tp. HCM

157

158

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Chng 5

2. CC KHI NIM C BN V ASP


Mt trang ASP thng thng gm c bn thnh phn:

NHP MN ASP

D liu vn bn (text)
Cc tag HTML

1. GII THIU V ASP


Active Server Page (ASP) do Microsoft pht trin l mi trng
lp trnh ng dng pha server (server side scripting) h tr mnh
trong vic xy dng cc ng dng Web. Cc ng dng ASP rt d
vit v sa i, ng thi c th tch hp cc cng ngh sn c ca
Microsoft nh COM, ... mt cch d dng.
ASP c h tr mc nh khi ci t Internet Information
Server. thc hin ASP trn cc mi trng khc, bn phi ci t
mt th vin h tr ASP. Thng dng nht l Sun Chili!Soft
(http://www.chillisoft.com)

Mt trang ASP thng c mt s c im sau:


L mt tp tin vn bn (text file) c phn m rng l .asp:
Phn m rng ny s gip webserver yu cu trnh x l trang
asp (ASP engine) trc khi tr v cho trnh duyt.
Ngn ng script thng dng nht dng vit cc m ca
ASP l VBScript. Ngoi ra, ta cng c th vit cc m bng
cc ngn ng nh JScript, Perl, Python, ... nu trn
webserver c ci t cc b x l ngn ng ny (script
engine).
Cc on m vit trong trang ASP s c cc b x l ngn
ng trn webserver x l tun t t trn xung di. Kt qu
ca vic x l ny l tr v trang HTML cho webserver v
webserver s gi trang ny v cho trnh duyt. l l do ti
sao, ti trnh duyt ta khng th thy c cc on m
chng trnh c vit trong trang ASP.

Cc on m chng trnh pha client t trong cp tag


<SCRIPT> v </SCRIPT>
M chng trnh ASP c t trong cp tag <% v %>:
Ba thnh phn ban u l cu trc ca mt trang HTML thng
thng, do c th xem mt trang ASP l mt trang HTML c
nhng thm phn x l vit bng m ASP (VBScript, JScript, Perl, ...)
V d sau minh ha mt trang ASP, d liu vn bn l Welcome
to my website. Today is:, cc tag HTML l <P>, <B>, ... v on m
chng trnh t gia <% v %>
<HTML>
<BODY>
<P> <B>Welcome to my website</B>. Today is
<%
Response.Write Date()
%>
</BODY>
</HTML>

Trong trang ASP, ta c th trn ln m ASP v m HTML vo


trong cc cu trc iu khin. Xt v d sau:
<HTML>
<BODY>
<%
Dim dtmHour
dtmHour = Hour(Now())
If dtmHour < 12 Then
Response. Write "Good Morning!"
Else
Response. Write "Hello!"
End If
%>
</BODY>

</HTML>
L nh Duy - H KHTN Tp. HCM

159

160

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

on m chng trnh trn s in ra mn hnh li cho Good


Morning nu thi im truy cp vo trang ny l bui sng, ngc
li n s in ra mn hnh li cho Hello. Lnh Response.Write trong
v d trn ng vai tr kt xut ni dung d liu ra trang web, do
ta c th thay bng on m HTML c chc nng tng t nh
minh ha sau:
<HTML>
<BODY>
<%
Dim dtmHour

i vi JScript, ta dng k t //. V d:


<%
var x
x = new Date()
// This line sends the current date to the browser,
// translated to a string.
Response.Write(x.toString())
%>

Cc on m ASP trong ti liu ny t nay tr v sau s c


minh ha bng VBScript.
c th vit c mt chng trnh bng ASP, chng ta cn
phi bit:

dtmHour = Hour(Now())
If dtmHour < 12 Then
%>
Good Morning!
<%
Else
%>
Hello!
<%
End If
%>
</BODY>
</HTML>

Cch khai bo v s dng cc bin.


Cch vit cc cu trc iu khin nh lnh iu kin, lnh lp,
...
Cch vit hm, th tc, ...

Do ta c th s dng nhiu ngn ng script khc nhau vit


m ASP, nn ch nh ngn ng no l ngn ng ang c
dng trong mt trang ASP, ta t on m sau vo u trang ASP:
<%LANGUAGE=ScriptingLanguage%>. V d, ch nh
VBScript l ngn ng dng cho trang ASP, ta vit nh sau:
<%LANGUAGE=VBScript%>
Cch vit cc ch thch cho trang ASP:

Cc hm th vin h tr cho cc thao tc phc tp khc nh


truy xut ti c s d liu, h thng tp tin, cc tin ch ca
h thng, ...
Ba phn u lin quan n vic s dng mt ngn ng script
c cp trong bi trc.
Hu ht cc i tng xy dng sn ca ASP u l cc i
tng kiu Collection. Collection l cu trc d liu tng t nh
mng, n c th lu tr bt k loi d liu no nh s, chui k t,
cc i tng, ... Khc vi mng, kch thc cc Collection s thay
i mt cch t ng mi khi c cc thao tc nh thm hoc xa d
liu trn bin kiu ny.

i vi VBScript, ta dng k t . V d:
<%
'This line and the following two are comments.
'The PrintTable function prints all
'the elements in an array.
PrintTable MyArray()
%>

L nh Duy - H KHTN Tp. HCM

Cch s dng cc hm th vin c bn h tr cho vic nhp,


xut d liu. V d, nu bn hc C, bn phi hc cch s
dng cc hm nh scanf, printf, ... hay nu bn hc Pascal,
bn phi hc cch s dng cc hm nh readln, writeln, ...
Trong ASP, bn phi hc cch s dng chng thng qua cc
i tng c xy dng sn nh Request, Response, ...

C 3 cch truy cp vo mt mc d liu (item) c lu tr


trong bin Collection:

161

162

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Thng qua chui k t kha duy nht (unique string key).


Trong v d sau, Age l chui k t kha c dng truy
cp
vo
bin
collection
Session.Contents:
<%
Session.Contents("Age") = 29 %>
Thng qua v tr ca mc d liu (index). V d: <%
Session.Contents(2) = 29 %>
Bng cch duyt qua ht cc thnh phn trong collection. V
d:
<%
'Declare a counter variable.
Dim strItem
'For each item in the collection, display its value.
For Each strItem In Session.Contents
Response.Write Session.Contents(strItem) & "<BR>"
Next
%>

3. X L D LIU NHP T NGI DNG


Trong cc ng dng web, ngi dng nhp d liu thng qua
i tng form. Sau khi ngi dng submit form, cc d liu trong
form s c chuyn n cho chng trnh x l c khai bo
trong mc ACTION. V d sau minh ha mt form nhp liu, sau khi
ngi dng nhn nt Search submit form, d liu nhp s c
chuyn cho trang search.asp:
<FORM ACTION=search.asp NAME=f1 METHOD=GET>
<INPUT TYPE=TEXT NAME=KEYWORD SIZE=20>
<INPUT TYPE=SUBMIT NAME=b1 VALUE=Search>
</FORM>

Trong trang search.asp, c th ly d liu c chuyn t


form trn. Ta dng i tng Request theo hai cch sau:
Nu khai bo METHOD trong tag <FORM> l GET, ta dng
Request.QueryString
Nu khai bo METHOD trong <FORM> l POST, ta dng
Request.Form
ly d liu t nhp liu no, ta dng tn ca nhp liu
(khai bo trong thuc tnh NAME ca i tng) nh l chui k t
kha theo cch truy cp ti d liu ca bin Collection trn. V d,
L nh Duy - H KHTN Tp. HCM

163

ly d liu t nhp liu ca v d trn (c tn l KEYWORD), ta


dng Request.QueryString(KEYWORD).
V d sau minh ha mt ng dng nh, ngi dng s nhp vo
h, tn, gii tnh trong form nm trong tp tin input.htm. Sau khi
ngi dng submit form, chng trnh nm trong tp tin hello.asp
s in ra cu cho tng ng vi gii tnh ca h.
input.htm
<HTML>
<HEAD>
<TITLE>Input data</TITLE>
</HEAD>
<BODY>
<FORM ACTION="hello.asp" NAME="myform" METHOD="GET">
First Name: <INPUT TYPE="TEXT" NAME="FirstName"
SIZE=20><br>
Last Name: <INPUT TYPE="TEXT" NAME="LastName"
SIZE=20><br>
Gender: <SELECT NAME="Gender" >
<OPTION VALUE="Mr">Male</OPTION>
<OPTION VALUE="Ms">Female</OPTION>
</SELECT>
<INPUT TYPE="SUBMIT" NAME="b1" VALUE=Submit>
</FORM>
</BODY>
</HTML>

hello.asp
<HTML>
<HEAD>
<TITLE>Output data</TITLE>
</HEAD>
<BODY>
<%
FName = Request.QueryString("FirstName")
LName = Request.QueryString("LastName")
Gender = Request.QueryString("Gender")
%> <p>Hello
<%
Response. Write Gender & " " & FName & " " & LName
%>
</BODY>
</HTML>

164

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

4. X L CC KT XUT D LIU
Trong m chng trnh pha client (t trong cp tag <SCRIPT>
v </SCRIPT>), gi d liu ra trang web hin hnh, bn dng
phng thc document.write. Tng t nh vy, gi d liu ra
trang web ngay trong on m ASP (t trong cp tag <% v %>),
bn dng phng thc Response.Write
Sau y l mt s v d khi s dng phng thc ny:
In mt hng kiu s, v d nh 5: Response.Write 5
In mt hng chui, v d nh Hello World:
Response.Write Hello World. Lu rng, hng chui bao
gi cng c ro quanh bi cp du nhy n () hoc nhy
kp ().
In mt gi tr ca mt bin, v d nh bin FirstName:
Response.Write FirstName
In kt hp cc dng d liu trn, ta dng ton t &. V d:
Response.Write No & 1 & FirstName
Khi mun xut ra mt chui di, ta c th chia nh chui ny
thnh nhiu dng bng cch s dng chui k t: &_. V d:
<%
Response.Write "Cho mng cc bn n vi website" &_
"ca Trng H Khoa Hc T Nhin"
%>

<%
Response.Write "He said, "This doesnt work!""
%>

Th chng trnh s bo li sai c php v lc chng trnh


s hiu "He said, " l chui u tin This doesnt work!"" l chui th
hai nhng vit khng ng c php v thiu du trc This.
C ba cch gii quyt vn ny. Cch th nht l ghi lin
tip hai du nhy VB Script dch li thnh cn mt du nhy. V
d nh, cu lnh trn nn vit li vi hai du nhy trc This v ba
du nhy sau work!:
<%
Response.Write "He said, ""This doesnt work!"""
%>

Cch th hai l s dng hm CHR(34) in du nhy ra. V d:


<%
Response.Write "He said, " & CHR(34) & "This doesnt work!" &
CHR(34)
%>

Cch th ba l thay th du nhy kp bng du nhy n. Ngha


l:
<%
Response.Write "He said, 'This doesnt work! ' "
%>

4.2. Hin th cc k t c bit

Ngoi ra, thay v s dng phng thc Response.Write kt


xut ra trnh duyt, ta cng c th dng dng tng t <%=%>. V
d sau minh ha hai on m cho kt qu tng ng:
<%
Response.Write "Trng H Khoa Hc T Nhin"
%>
<%="Trng H Khoa Hc T Nhin" %>

Cch dng <%=%> ch thch hp cho trng hp dng cho cc


on m ch thun cc kt xut n gin m thi.

4.1. S dng cc du nhy

Khi lm vic vi lnh Response.Write, c mt s k t trong


chui c th s khng c hin th chnh xc, v d nh du >, <,
bi v HTML xem cc du ny nh l cc k t bt u v kt thc
ca mt tag. Do , khc phc ta phi chuyn cc k t c bit
ny sang m thay th bng hm Server.HTMLEncode. V d, ta
mun in ra mt chui: <B>Hyperion</b> by <I>Dan Simmons</i> is
a great novel, ta phi dng nh sau:
<%
Response.Write Server.HTMLEncode("<B>Hyperion</b> by
<I>Dan Simmons</i> is a great novel ")
%>

VB Script dng cc du nhy nh du s bt u v kt thc


ca mt chui. Nu trong bn thn chui c cha du nhy th vn
s ny sinh. V d: nu dng on m sau in chui: He said,
This doesnt work!:
L nh Duy - H KHTN Tp. HCM

165

166

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Xem r hn qua v d minh ho sau:

Stand"><br>

<HTML>
<HEAD>
</HEAD>
<BODY>
Response.Write "<B>Hyperion</b> by <I>Dan Simmons</i> is
a great novel"
Response.Write "<p>"
Response.Write server.htmlencode("<B>Hyperion</b> by
<I>Dan Simmons</i> is a great novel")
Response.Write "<p>"
Response.Write "Joe Smith & Hilda = a team"
Response.Write "<p>"
Response.Write server.URLencode("Joe Smith & Hilda = a team")
%>
</BODY>
</HTML>

<%
Response.Write "Which Book? <input type=""TEXT""
name=""book"" value=""The Stand""><br>"
%>
<%
Response.Write "Which Book? <input type='TEXT' name='book'
value='The Stand'><br>"
%>
<%
quote=chr(34)
Response.Write "Which Book? <input type=" & quote & "TEXT" &
quote & " name=" & quote & "book" & quote & " value=" & quote &
"The Stand" & quote & "><br>"
%>
<%bookname="The Stand"%>
Which Book? <input type="TEXT" name="book"
value="<%=bookname%>"><br>

4.3. Mt s v d minh ha
Sau y l mt s v d minh ha vic nhng cc on m ASP
cng vi m HTML cho cc kt xut thng gp trong lp trnh.
4.3.1. V d 1: Trn ln cc dng kt xut trong trang ASP
V d sau minh ho vic trn ln cc dng kt xut bng cch
dng phng thc Response.Write, <%=%> hay trn ln m HTML
gia cc lnh iu khin ASP, ng thi minh ha vic s dng
uyn chuyn cc phng php dng du nhy.

<%
Response.Write "Which Book? <input type=""TEXT""
name=""book"" value=""" & bookname & """><br>"
%>
</FORM>
</BODY>
</HTML>

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Response.Write "<FORM>"
Response.Write "Hello, Joe<br>"
UsrName="Joe"
Response.Write "Hello, " & UsrName & "<br>"
%>
Hello, <%=UsrName%><br>
Which Book? <input type="TEXT" name="book" value="The
L nh Duy - H KHTN Tp. HCM

167

168

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

<FORM>
Year&nbsp;<SELECT NAME= "Year" >
<%
for i=1930 to 1980
Response.Write "<OPTION VALUE=" & i & ">"
Response.Write i & "</OPTION>"
next
%>
</SELECT>
</FORM>

Hay l on m dng <%=%>


<FORM>
Year&nbsp;<SELECT NAME= "Year" >
<%
for i=1930 to 1980
%>
<OPTION VALUE="<%=i%>"><%= i %></OPTION>
next
%>
</SELECT>
</FORM>

Hnh 1 Kt qu ca on m trn

4.3.2. To mt dropdown listbox ng

4.3.3. To bng d liu ng

Gi s ta mun cho php ngi dng nhp vo nm sinh t mt


dropdown listbox. M HTML ca dropdown listbox ny c dng:

TT MSSV
H v Tn
Ghi ch
1
99001
A1
2
99002
A2
..
99 990099
A99
M HTML ca bng d liu ny c dng:

<FORM>
Year&nbsp;<SELECT NAME= "Year" >
<OPTION VALUE="1930">1930</OPTION>
<OPTION VALUE="1931">1931</OPTION>
<OPTION VALUE="1932">1932</OPTION>

<OPTION VALUE="1980">1980</OPTION>
</SELECT>
</FORM>

D thy rng nu son bng HTML, ta phi g vo rt nhiu


c th c c mt dropdown listbox gm cc nm t 1930 n
1980. Trong khi , dropdown listbox ny c th sinh ra d dng
bng cch s dng mt vng lp in tun t cc dng dng:
<OPTION VALUE="1930">1930</OPTION> nh sau:

L nh Duy - H KHTN Tp. HCM

Gi s ta cn hin th mt bng d liu c dng sau:

169

<TABLE BORDER="1" CELLPADDING="5" CELLSPACING="0"


STYLE="border-collapse: collapse" BORDERCOLOR="#111111"
WIDTH="400" >
<TR>
<TD WIDTH="30" ALIGN="center">TT</TD>
<TD WIDTH="60" ALIGN="center">MSSV</TD>
<TD WIDTH="210" ALIGN="center">H v Tn</TD>
<TD WIDTH="100" ALIGN="center">Ghi ch</TD>
</TR>
<TR>
<TD>1</TD>
<TD>99001</TD>

170

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

<TD>A1</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>2</TD>
<TD>99002</TD>
<TD>A2</TD>
<TD>&nbsp;</TD>
</TR>

<TR>
<TD>99</TD>
<TD>990099</TD>
<TD>A99</TD>
<TD>&nbsp;</TD>
</TR>
</TABLE>

5. KT NI VI C S D LIU
ADO (ActiveX Data Object) c dng cung cp kh nng
kt ni v x l trn c s d liu. Ta c th s dng ADO kt ni
vi ngun d liu tng thch vi OLE DB nh c s d liu, bng
tnh, tp tin tun t, OLE DB l giao din lp trnh mc h thng
cung cp tp cc giao tip COM chun khai thc cc chc nng
qun tr h c s d liu. Ngoi ra ta cng c th s dng ADO
truy xut n cc c s d liu tng thch vi ODBC.
Vic s dng ADO truy cp v x l c s d liu trong cc
trang ASP c th chia lm cc bc chnh sau:
Kt ni vi d liu thng qua OLE DB hoc ODBC
Xy dng cu truy vn d liu v yu cu thc hin cu truy
vn thc hin cc thao tc x l trn c s d liu nh
thm, xa, sa, lc d liu,

Ta s dng mt vng lp in tun t cc dng ca bng, vi


ni dung cha trong cp tag <TR> v </TR>
<TABLE BORDER="1" CELLPADDING="5" CELLSPACING="0"
STYLE="border-collapse: collapse" BORDERCOLOR="#111111"
WIDTH="400" >
<TR>
<TD WIDTH="30" ALIGN="center">TT</TD>
<TD WIDTH="60" ALIGN="center">MSSV</TD>
<TD WIDTH="210" ALIGN="center">H v Tn</TD>
<TD WIDTH="100" ALIGN="center">Ghi ch</TD>
</TR>
<%
for i= 1 to 99
%>
<TR>
<TD><%=i%></TD>
<TD>9900<%=i%></TD>
<TD>A<%=i%></TD>
<TD>&nbsp;</TD>
</TR>
<%
next
%>
</TABLE>

X l kt qu tr v t cu truy vn trong trng hp cu truy


vn lc d liu (SELECT queries)
Ngt kt ni vi c s d liu, gii phng cc ti nguyn ca
h thng dng.

5.1. Kt ni vi c s d liu
5.1.1. To connection string
Ging nh khi bn mun tr chuyn bng in thoi, bc u
tin l phi quay s in thoi ca ngi m bn cn tr chuyn.
c th x l d liu, bc u tin, bn phi cung cp cc thng tin
cn thit h thng bit bn mun truy cp ti c s d liu no.
Mt chui k t gi l connection string s c dng lu tr cc
thng tin ny, bao gm:
Thng tin v h qun tr c s d liu c dng qun l
c s d liu ca bn. V d l MS Access hoc MS SQL
hay Oracle,
Thng tin v v tr ca c s d liu ca bn. V d: nu bn
dng MS Access, bn phi ch ra c s d liu ca bn c
lu trong tp tin .mdb no.
Bng sau lit k cc OLE DB connection string cho mt s h
qun tr c s d liu thng dng:

L nh Duy - H KHTN Tp. HCM

171

172

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Data Source

Email: ledduy@ieee.org

OLE DB Connection String

Microsoft
Access

Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=physical path to .mdb file

Microsoft SQL
Server

Provider=SQLOLEDB.1;Data Source=path to
database on server

Oracle

Provider=MSDAORA.1;Data Source=path to
database on server

Microsoft
Indexing
Service

Provider=MSIDXS.1;Data Source=path to file

Bng sau lit k cc ODBC connection string cho mt s h


qun tr c s d liu thng dng:
Data Source
Driver

Driver={Microsoft Access Driver


(*.mdb)};DBQ=physical path to .mdb file

Microsoft SQL
Server

DRIVER={SQL Server};SERVER=path to
server

Oracle

DRIVER={Microsoft ODBC for


Oracle};SERVER=path to server

Microsoft Excel

Driver={Microsoft Excel Driver


(*.xls)};DBQ=physical path to .xls file;
DriverID=278

Microsoft Excel
97

Driver={Microsoft Excel Driver


(*.xls)};DBQ=physical path to .xls
file;DriverID=790

Paradox

Driver={Microsoft Paradox Driver


(*.db)};DBQ=physical path to .db
file;DriverID=26

Text

Driver={Microsoft Text Driver


(*.txt;*.csv)};DefaultDir=physical path to .txt
file

L nh Duy - H KHTN Tp. HCM

ODBC Connection String

Microsoft
Visual FoxPro
(with a
database
container)

Driver={Microsoft Visual FoxPro


Driver};SourceType=DBC;SourceDb=physical
path to .dbc file

Microsoft
Visual FoxPro
(without a
database
container)

Driver={Microsoft Visual FoxPro


Driver};SourceType=DBF;SourceDb=physical
path to .dbf file

Ta cng c th d dng xy dng connection string bng cch


to Data Source Name trong ODBC.

ODBC Connection String

Microsoft
Access

Data Source
Driver

m bo tnh hiu qu v tin cy, bn nn dng cc h qun


tr c s d liu kiu client-server (client-server database engine) khi
pht trin cc ng dng web v n i hi s lng kt ni ng thi
ln. Mc d ADO h tr c cc ngun d liu tng thch vi
OLE DB nhng n ch yu c thit k lm vic tt vi cc h
qun tr c s d liu kiu client-server nh MS SQL, Oracle,
5.1.2. Kt ni vi c s d liu
ADO cung cp i tng Connection h tr cho vic to v
qun l kt ni vi c s d liu cn x l. Cc thuc tnh v phng
thc ca i tng ny cho php bn m, ng kt ni, ng thi
cho php thc hin cc cu truy vn d liu,
thit lp kt ni vi c s d liu bng ADO, bn thc hin
tun t cc bc sau:
To mt th hin ca i tng Connection bng lnh:
Server.CreateObject(ADODB.Connection).
S dng phng thc Open m kt ni vi c s d liu.
Tham s cho phng thc ny l chui connection string.
V d sau minh ha vic to kt ni n c s d liu c lu
bng MS Access:

173

174

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

<%
strDSN = Driver={Microsoft Access Driver (*.mdb)};DBQ= &
server.mappath(Test.mdb)

'Create a connection object.


Set Conn = Server.CreateObject("ADODB.Connection")

'Create a connection object.


Set Conn = Server.CreateObject("ADODB.Connection")

'Open a connection using the ODBC connection string.


Conn.Open strDSN

'Open a connection using the ODBC connection string.


Conn.Open strDSN
%>

5.2.

'Define SQL statement.


strSQL = "UPDATE Customers SET FirstName = 'Jeff' WHERE
LastName = 'Smith' "

Xy dng cu truy vn v yu cu thc hin

Cch n gin nht thc hin cc thao tc trn c s d liu


l xy dng cc cu truy vn SQL (SQL queries) v yu cu h
thng thc hin. Phng thc Execute do i tng Connection
cung cp cho php thc hin mt cu truy vn SQL.
V d sau minh ha vic thc hin thm mt mu tin vo c s
d liu
insert.asp
<%
strDSN = Driver={Microsoft Access Driver (*.mdb)};DBQ= &
server.mappath(Test.mdb)

'Use the Execute method to issue a SQL query to database.


Conn.Execute strSQL
%>
delete.asp
<%
strDSN = Driver={Microsoft Access Driver (*.mdb)};DBQ= &
server.mappath(Test.mdb)
'Create a connection object.
Set Conn = Server.CreateObject("ADODB.Connection")
'Open a connection using the ODBC connection string.
Conn.Open strDSN

'Create a connection object.


Set Conn = Server.CreateObject("ADODB.Connection")

'Define SQL statement.


strSQL = "DELETE FROM Customers WHERE LastName = 'Smith'"

'Open a connection using the ODBC connection string.


Conn.Open strDSN

'Use the Execute method to issue a SQL query to database.


Conn.Execute strSQL
%>

'Define SQL statement.


strSQL = "INSERT INTO Customers (FirstName, LastName)
VALUES ('Jose','Lugo')"

Mt s lu khi xy dng cu truy vn c s d liu


D liu kiu chui phi c t trong cp du nhy n v
cp du nhy kp c dng cho vic nh ngha hng
chui. V d: m t LastName s ly gi tr l chui Smith,
trong cu lnh SQL ta dng LastName=Smith.

'Use the Execute method to issue a SQL query to database.


Conn.Execute strSQL
%>

Cc lnh nh DELETE, UPDATE cng c thc hin theo


cch tng t. V d:

Cc d trng d liu c khong trng gia, trong cu lnh


SQL ta dng cp du []. V d, trong c s d liu ca bn c
nh ngha trng Last Name, trong cu lnh SQL, ta dng
[Last Name]=Smith ch khng dng Last Name=Smith.

update.asp
<%
strDSN = Driver={Microsoft Access Driver (*.mdb)};DBQ= &
server.mappath(Test.mdb)
L nh Duy - H KHTN Tp. HCM

175

176

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

5.3. X l kt qu tr v t cu truy vn lc d liu

n d liu ca trng FirstName trong v d trn ta dng:


rsCustomers(FirstName)

5.3.1. Lu tr d liu tr v

di chuyn n cc mu tin c lu trong i tng


Recordset, ta dng phng thc MoveNext , MovePrevious,
MoveFirst, MoveLast

ADO s dng i tng Recordset lu tr kt qu tr v t


cu truy vn lc d liu SELECT. V kt qu tr v ca mt cu truy
vn SELECT c th c nhiu mu tin, cho nn c th xem Recordset
nh l mt mng cc mu tin.

kim tra v tr ca con tr mu tin hin hnh l trc mu


tin u hay sau mu tin cui trong Recordset, ta dng cc
thuc tnh BOF hoc EOF kim tra.

Thng thng ta dng 2 cch sau ly d liu t cu truy vn


vo bin Recordset
Ly kt qu tr v t vic thc hin cu truy vn bng phng
thc Execute ca i tng Connection. V d: Set rs =
Conn.Execute (strSQL). Trong trng hp ny rs l th hin
ca i tng Recordset lu tr kt qu tr v t vic thc
hin cu truy vn strSQL.
To mt th hin ca i tng Recordset v s dng
phng thc Open, kt hp vi th hin ca i tng
Connection to. V d:
<%
strDSN = Driver={Microsoft Access Driver (*.mdb)};DBQ= &
server.mappath(Test.mdb)

V d sau minh ha vic th hin d liu t bin Recordset theo


dng tun t:
<%
strDSN = Driver={Microsoft Access Driver (*.mdb)};DBQ= &
server.mappath(Test.mdb)
'Create a connection object.
Set Conn = Server.CreateObject("ADODB.Connection")
'Instantiate a Recordset object.
Set rsCustomers = Server.CreateObject("ADODB.Recordset")
'Open a recordset using the Open method
'and use the connection established by the Connection object.
strSQL = "SELECT FirstName, LastName FROM Customers WHERE
LastName = 'Smith' "

'Create a connection object.


Set Conn = Server.CreateObject("ADODB.Connection")
'Instantiate a Recordset object.
Set rsCustomers = Server.CreateObject("ADODB.Recordset")

rsCustomers.Open strSQL, Conn

'Open a recordset using the Open method


'and use the connection established by the Connection object.
strSQL = "SELECT FirstName, LastName FROM Customers WHERE
LastName = 'Smith' "
rsCustomers.Open strSQL, Conn
%>

5.3.2. Hin th d liu tr v

i=1
do while not rsCustomers.EOF
Response.Write Customer No & i & .&nbsp;
Response.Write rsCustomers(FirstName) & &nbsp; &
rsCustomers(LastName) & <br>
i = i+1
rsCustomers.MoveNext
loop
%>

C ba vn lu :
Kt qu th hin s c dng:

truy cp n d liu ca mt trng (field) ca mu tin


hin hnh, ta ch nh tn ca trng nh l chui k t
kha khi truy cp n i tng Recordset. V d: truy cp
L nh Duy - H KHTN Tp. HCM

177

Customer No1. Michael Platini


Customer No2. Dino Zoff
Customer No3. Ruddi Voller
178

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

5.4. Ngt kt ni vi c s d liu v gii phng ti


nguyn h thng dng
ngt kt ni vi c s d liu, ta dng phng thc Close
c trong cc i tng Connection v Recordset. Sau gii
phng ti nguyn h thng dng cho cc i tng ny, ta dng
lnh gn gi tr Nothing cho cc bin i tng ny. V d:
<%
rsCustomers.Close
Set rsCustomers = Nothing
Conn.Close
Set Conn= Nothing
%>

rsCustomers.Close
Set rsCustomers = Nothing
Conn.Close
Set Conn= Nothing
%>

6. NHNG CU HI THNG GP
6.1. Lm th no bt u hc ASP

on chng trnh sau tng hp cc vn hc lin quan


n vic kt ni vi c s d liu dng trong ng dng web
<%
Build connection string
strDSN = Driver={Microsoft Access Driver (*.mdb)};DBQ= &
server.mappath(Test.mdb)

Microsoft Active Server Pages (ASP) l mi trng lp trnh ng


dng pha server (server side scripting) h tr mnh trong vic xy
dng cc ng dng Web. Cc ng dng ASP c th lm vic vi bt
k c s d liu no tng thch vi ODBC nh SQL, Access,
Oracle, Informix, ng thi rt d vit v sa i. Hn na n c
th tch hp cc cng ngh sn c ca Microsoft nh COM, ... mt
cch d dng.
c th vit ng dng web bng ASP, cn phi bit cc kin
thc c bn sau:

'Create a connection object.


Set Conn = Server.CreateObject("ADODB.Connection")

Kin thc v thit k web, HTML gip thit k cc trang


web.

'Instantiate a Recordset object.


Set rsCustomers = Server.CreateObject("ADODB.Recordset")

Kin thc v cc ngn ng lp trnh VB script, Java script. VB


Script l ngn ng lp trnh thng dng cho ASP.
Thng thng cc ng dng web c lin quan nhiu n vic
qun l, truy xut, cp nht c s d liu nn cn phi nm
thm kin thc v c php cc cu truy vn SQL, kin thc v
kt ni v lp trnh c s d liu vi ADO.

'Open a recordset using the Open method


'and use the connection established by the Connection object.
strSQL = "SELECT FirstName, LastName FROM Customers WHERE
LastName = 'Smith' "

Cc ti liu v website tham kho:

rsCustomers.Open strSQL, Conn

Thit k v Lp trnh ng dng web bng ASP L nh Duy


NXB Thng k, 2001

i=1
do while not rsCustomers.EOF
Response.Write Customer No & i & .&nbsp;
Response.Write rsCustomers(FirstName) & &nbsp; &
rsCustomers(LastName) & <br>
i = i+1
rsCustomers.MoveNext
loop

Xy dng trang web ng vi ASP Nhm tc gi ELICOM 2001


ASP Databases Nhm tc gi SAIGONBOOK - 2001
Professional Active Server Pages 3.0 Alex Homer et al 1999

Free resource
L nh Duy - H KHTN Tp. HCM

179

180

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

MSDN Active Server Pages Tutorial

Thng thng thng bo li ny bt ngun t trnh duyt IE 5.0


tr ln v cch cu hnh IIS. Bn khc phc nh sau:

http://www.learnasp.com

Trong IE, bn vo mc Tools/Internet Options, chn Advanced


tab, b mc (uncheck) "Show friendly HTTP error messages."

http://www.4guysfromrolla.com
http://www.15seconds.com

Trn IIS, bn vo IIS Admin, trong mc Configuration/App


Debugging, chn "Send detailed ASP error messages to
client".

http://asp.superexpert.com
http://www.aspfaqs.com

6.4. Lm th no trang ASP c th ly thng tin t


ngi dng nh a ch IP, tn trnh duyt?

6.2. Lm th no ngn cache trang ASP ?


Cache l k thut thng dng m bo cho vic tit kim
thi gian v bng thng mng. V mt bn cht l vic lu tr
tm thi li cc trang web m bn truy cp trn a cng v khi
nhn c yu cu tng t, h thng s tr v trang lu tr ny
thay v phi yu cu thc hin li, v d nh kt ni vi webserver
tr v. C 2 mc cache: cache ti trnh duyt v cache ti
webserver.
ngn khng cho trnh duyt cache li cc trang ASP, bn t
on m sau vo u trang :
<%
Response.ExpiresAbsolute = #2000-01-01# c th dng mt
ngy khc nh hn nm hin hnh.
Response.AddHeader "pragma", "no-cache"
Response.AddHeader "cache-control", "private, no-cache, mustrevalidate"
%>

ngn khng cho webserver IIS cache li cc trang ASP, bn


phi vo mn hnh qun tr ca IIS (Microsoft Management Console
(MMC)) v b mc (uncheck) "Cache ISAPI Applications.

6.3. X l li HTTP 500 - Internal server error


Li HTTP 500 Internal server error l thng bo m bn rt hay
gp khi trang ASP ang vit gp li. Tuy nhin vi thng bo chung
chung nh li ny, bn rt kh c th bit trang ASP mnh sai ch
no sa:

Thng thng, cc thng tin lin quan n h thng v ngi


dung u c lu tr trong bitn Request.SeverVariables, do ,
bn c th truy cp n cc thnh phn trong ny ly ra. V d,
a ch IP ca ngi dng l Request.SeverVariables
(REMOTE_ADDR).
on m sau lit k thng tin ca cc bin cha trong
Request.SeverVariables.
<table>
<%
for each x in Request.ServerVariables
Response.Write("<tr><td>" & x & "</td><td>")
Response.Write(Request.ServerVariables(x))
Response.Write("</td></tr>" & vbCrLf)
next
%>
</table>

6.5. Lm th no bo v on m ASP
pha ngi dng thng thng s khng bit c ni dung
ca on m ASP v khi truy cp mt trang ASP, webserver
thng dch v x l cc on m trong v ngi dng ch thy
c kt qu tr v di dng trang HTML. Chnh v vy, cch duy
nht c th xem c m ca trang ASP l bn phi c quyn trn
webserver cha trang . Nu bn mun trnh khng mun cho bit
ni dung on m ny lun, th c mt trong hai cch sau:
Vit ng dng ca bn di dng cc component .DLL. y
l cch m cc nh cung cp dch v cng thm hay lm v d
nh component h tr ti tp tin ln server, component h tr
gi email, Hn ch ca cch lm ny l bn phi c quyn

The page cannot be displayed


There is a problem with the page you are trying to reach and it
cannot be displayed.
HTTP 500 - Internal server error
Internet Explorer
L nh Duy - H KHTN Tp. HCM

181

182

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

ci t component trn server. iu ny s khng d dng


nu bn hosting trang web trn cc my ch ca ngi khc.
Dng chng trnh m ha ca Microsoft tn l Windows
Script
Encoder
(ti
v
ti
http://msdn.microsoft.com/scripting/vbscript/download/x86/sce
10en.exe ). Chng trnh ny s chuyn cc on m ASP
ca bn thnh cc k t kh c, v d sau minh ha mt
trang web trc v sau khi m ha:
Trang web nguyn thy:
<HTML>
<HEAD>
<TITLE>Page with secret information</TITLE>
<SCRIPT LANGUAGE="JScript">
<!--//
//**Start Encode**
alert ("this code should be kept secret!!!!");
//-->
</SCRIPT>
</HEAD>
<BODY>
This page contains secret information.
</BODY>
</HTML>

THC HNH
1. S GP
Trong cc website, tip thu kin ca khch gh thm, ngi
ta thng to mt s gp trn web, cho php cc chc nng sau:
Cho php ngi dng nhp vo cc thng tin h tn, a ch
email, v ni dung gp .
Cho php ngi dng xem ton b cc ni dung gp .
Th t cc gp c sp xp theo thi gian.
Cho php qun tr hiu chnh, xa cc gp .

2. GI THNG TIN MI CHO KHCH HNG


Mt siu th mun thng bo cho cc khch hng ca mnh mi
khi c mt hng mi v. Hy vit mt ng dng web h tr cng vic
trn bng cc chc nng sau:
Cho php ngi dng in vo cc thng tin ca khch hng
nh tn ng nhp, mt khu, h tn, a ch lin lc, in
thoi, a ch email, ... v cc chng loi mt hng m ngi
dng mun thng tin khi c mt hng mi thuc chng loi
ny.

Trang web sau khi c m ha bng Windows Script


Encoder:
<HTML>
<HEAD>
<TITLE>Page with secret information</TITLE>
<SCRIPT LANGUAGE="JScript.Encode">
<!--//
//**Start
Encode**#@~^QwAAAA==@#@&P~,l^+DDPvEY4kdP1W[n,/tK;V9
P4
~V+aY,/nm.nD"Z"eE#p@#@&&JOO@*@#@&qhAAAA==^#~@&
lt;/SCRIPT>
</HEAD>
<BODY>
This page contains secret information.
</BODY>
</HTML>

Cho php ngi dng cp nht li cc thng tin ng k.


thc hin c thao tc ny, ngi dng phi ng nhp
ng vi tn v mt khu ng k.
Cho php qun tr lit k danh sch cc khch hng ng
k theo tng chng loi mt hng.

Cch lm ny ch che mt c nhng ngi khng chuyn


nghip bi v cch m ha ny vn c th b ph, xem thm chi tit
ti http://www.klaphek.nl/nr6/scrdec.html
L nh Duy - H KHTN Tp. HCM

183

184

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Bi tham kho

Do bng m ASCII khng biu din cc k t ca cc ngn


ng khc, v d nh ting Vit, nn Microsoft ni rng bng m
ASCII bng cch s dng 128 im m c gi tr t 128-255 m
ha cho cc k t ngoi ASCII ny. Tuy nhin do ch c 128 im
m, trong khi s lng cc k t ca cc ngn ng khc nhiu hn,
nn Microsoft to ra nhiu bng m khc nhau cho tng loi ngn
ng [1]. V d:

LP TRNH WEB ASP VI


TING VIT UNICODE
1. Mt s khi nim cn bn v biu din k t bn
trong my tnh
1.1. Khi nim v im m, n v m, bng m
V mt bn cht, my tnh ch lm vic vi cc con s, do
biu din cc k t trn my tnh cn phi c mt qui c nht qun
gia cc k t cn biu din v cc con s tng ng m my tnh
x l. Qui c ny c th hin qua cc bc sau:
Chn tp cc k t cn m ha (character set).
Gn cho mi k t cn m ha mt gi tr nguyn khng m,
gi l im m (code point).
Chuyn cc im m thnh dy cc n v m (code units)
cho phc v cho vic lu tr v m ha. Mt n v m l mt
n v ca b nh, c th l 8, 16, hay 32 bit. Cc im m
khng nht thit phi c cng s n v m.
Tp hp nhng im m ca mt tp cc k t c gi l mt
trang m (code page) hay cn gi l bng m hay b m. Nh vy
khi ni v mt bng m, chng ta quan tm n hai iu chnh, s
lng cc k t c m ha, v cch m ha chng thnh cc n
v m.
Ly v d bng m ASCII, tp k t cn m ha c 128 k t bao
gm cc k t ting Anh, k t s, k t tin t Anh, M v cc k t
iu khin h thng ngoi vi. Cc im m c gi tr nm trong
khong t 0-127. Mi im m c m ha bng ng mt n v
m 8 bit, c ngha l ng mt byte.
Vic quyt nh chn cch m ha nh th no s quyt nh s
lng k t c m ha. V d, nu chn cch m ha cc im
m bng ng mt n v m 8-bit th s lng im m ca mt
bng m (tm gi l bng m 8 bit) ch c th ti a l 256.

L nh Duy - H KHTN Tp. HCM

185

code page 1250

1251

1252

1253

1254

1258

etc.,

upper

Eastern

Cyrillic

West

Greek

Turkish

Vietnamese etc.,

128

Europe

ASCII

ASCII

ASCII

Euro
ANSI

lower

ASCII

ASCII

ASCII

etc.,

128

Tuy nhin trong tng bng m ny, khng phi tt c cc k t


ca mt ngn ng u c trong bng m. Hay ni chnh xc hn l
khng phi tt c cc k t u c biu din bng duy nht mt
im m. Ly v d ting Vit chng ta c 134 k t t hp t 28 ch
ci v 5 du thanh. Do ch c 128 im m nn bng m windows1258 dnh cho ting Vit biu din mt s k t thnh hai im m
lin tip, mt im m dnh cho k t c s v mt im m dnh
cho du thanh. V d: k t c biu din bng hai im m
tng ng vi cc k t v k t du sc: = + . Cch biu din
nh vy c gi l cch biu din tch ri (decomposed) m thut
ng chng ta hay gi l t hp.
Bng m TCVN3-ABC dng 134 im m biu din ht cc k
t ting Vit, chnh iu ny dn n phi s dng mt s im
m ca bng m ASCII. y chnh l l do m cc trang web s
dng bng m ny khng hin th c k t trong cc trnh duyt
Internet Explorer 5.0 tr ln. Cch biu din nh vy c gi l
cch biu din kt hp sn (precomposed) m thut ng chng ta
hay gi l dng sn.

1.2. Bng m Unicode


V mt bn cht cc bng m trn ca Windows l bng m 8bit, ngha l mi im m c m ha bng ng mt n v m 8bit. Chnh iu ny gii hn s lng cc cc k t c m ch
l 256. Do trong mt vn bn khng th cng hin th nhiu k t
ca cc ngn ng khc nhau c.
186

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Unicode ra i nhm thng nht chung cc k t ca mi ngn


ng trong mt bng m duy nht [2]. Hai vn nn lu khi cp
n thut ng Unicode l:
Tp k t m Unicode biu din: y mun ni n tp k t
v cch nh x cc k t bng cc im m tng ng.
Cch m ha cc im m thnh cc n v m.
Unicode dng 16 bit biu din cc im m, do n c th
biu din c n 65,536 k t c im m nm trong khong t 065,535. Do vy vi Unicode ngi ta c th biu din c hu ht
cc k t ca cc ngn ng.
Cch n gin nht m ha cc k t Unicode l biu din
mi im m bng ng mt n v m 16-bit. y chnh l cch m
ha nguyn thy ca Unicode trong phin bn 2.0 c ISO/IEC
chun ha thnh ISO/IEC 10646 hay cn gi l UCS-2. Tuy nhin,
tng thch vi cc h thng x l trc khi Unicode ra i cng
nh ti u ha trong qu trnh lu tr v truyn d liu, ngi ta
dng cc cch khc nhau m ha cc im m thnh cc n v
m. Mi cch m ha nh vy c gi l mt dng bin i ca
Unicode (UTF Unicode Transformation Format). Thng dng nht
hin nay l UTF-8 v UTF-16 dng dy cc n v m c di khc
nhau m ha cc im m. UTF-8 dng 1 n 4 n v m 8-bit
trong khi UTF-16 dng 1 n 2 n v m 16-bit m ha. V d
sau minh ha cch m ha ca UTF-8:
128 k t u tin ca Unicode t im m U+0000 n
U+007F, c m ha thnh 1 byte.
T im m U+0080 n U+07FF, c m ha thnh 2 byte.
T im m U+0800 n U+FFFF, c m ha thnh 3
byte.
T im m U+0800 n U+FFFF, c m ha thnh 4
byte.
Nh vy khi cp n Unicode trong lp trnh, cn phi xc
nh r chng ta dng bng m Unicode theo dng bin i no:
UCS-2, UTF-8, hay UTF-16, UCS-2 c dng trong cc h qun
tr c s d liu nh SQL Server 7.0/2000, Microsoft Access 2000,
UTF-8 thng c dng trong cc ng dng web, trong khi UTF-

L nh Duy - H KHTN Tp. HCM

187

16 li c dng trong cc h thng nh Windows 2000/XP, Java,

2. Lp trnh web vi ting Vit Unicode


2.1. Ch nh bng m dng trong trang web
Khi mt trang web c server chuyn xung cho client, trnh
duyt s dng thng tin v bng m m trang web s dng
chuyn dy cc byte trong ti liu thnh cc k t tng ng
hin th ln mn hnh. Ngoi ra, mt khi d liu trong cc FORM
c gi i sau khi ngi dng submit, trnh duyt cng s cn c
vo bng m ny chuyn i d liu khi truyn i. V d, nu
trang web c ch nh dng bng m windows-1252 th khi FORM
c submit, d liu s c m ha theo bng m ny cho d
trc trong cc hp iu khin ca FORM, d liu c g di
dng Unicode [3].
Vic ch nh bng m c vai tr rt quan trng trong vic hin th
ng ni dung m ngi thit k mong mun, bi v nu khng ch
nh bng m c dng trong trang web hin hnh mt cch r
rng, trnh duyt s s dng bng m mc nh. V d, nu d liu
chuyn n cho trang web l E1 BB 81, nu ch nh bng m l
UTF-8 th 3 byte ny chnh l biu din m ca k t trong khi
nu h thng dng bng m mc nh, v d nh windows-1252, th
3 byte ny li c xem nh l biu din 3 k t khc nhau v s
c hin th l .
ch nh bng m m trang web hin hnh s dng, ta dng
tag META vi thuc tnh HTTP-EQUIV c gn l Content-Type,
v ch nh tn ca bng m c dng trong thuc tnh CONTENT
(Thng tin v cc bng m c dng trn Windows c th xem ti
[4]). Trong v d sau, tag META c dng ch nh bng m
windows-1252 cho mt trang web:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
CHARSET=windows-1252">

yu cu trnh duyt s dng mt bng m cho ton b trang


web, ta phi t tag META ny trc tag BODY. Thng thng l
t tag META ny trong tag HEAD nh v d sau:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
CHARSET=windows-1252">

188

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

<TITLE>New Page 1</TITLE>


</HEAD>
<BODY>

</BODY>
</HTML>

%>

Trong trng hp bng m c ch nh khng c kh nng


biu din c tt c cc k t ca trang web, ngi ta phi dng
n s tham chiu ca k t (NCRs - numerical character
references). S tham chiu k t l im m ca k t Unicode tng
ng m n biu din. S tham chiu k t c hai dng thp phn v
thp lc phn. Dng thp phn c c php l &#D;, vi D l s thp
phn. Dng thp lc phn c c php l &#xH;, vi H l s thp lc
phn. V d: &#229; v &#xE5; l cc s tham chiu ca k t a
trong bng m Unicode. Mt khi gp s tham chiu ca k t, trnh
duyt s tham chiu trc tip n k t c im m tng ng trong
bng m Unicode m khng s dng n bng m c ch nh
hin hnh [5].
Ly v d mt trang web c m ha vi bng m windows1252, lc hin th on vn bn: Ting Vit, d liu cho trang
web phi l Ti&#7871;ng Vi&#7879;t , trong &#7871; v
&#7879; ln lt l cc s tham chiu ca cc k t v trong
bng m Unicode.
iu ny cho php gii thch ti sao, cc trang web khng dng
bng m UTF-8, v d nh windows-1252, vn c th hin th c
cc k t Unicode khng thuc bng m hay khi chuyn i t
bng m UTF-8 sang windows-1252, MS FrontPage 2000 li t
ng thm vo cc s tham chiu k t theo cch trn.

2.2. Hot ng ca webserver


Khi trnh duyt yu cu mt trang .asp, trnh x l trang asp ti
webserver s thng dch cc m lnh trong trang web ny v gi
kt qu v cho trnh duyt. Thng thng, lnh Response.Write
c dng cho cc kt xut t cc hng chui hay t cc bin ra
mn hnh. V d nh:

yu cu webserver m ha cc d liu trong cc hng chui


v bin theo bng m s c dng hin th ti client, ta cn phi
t thuc tnh CodePage v bng m tng ng. Cc lnh trong v
d sau s yu cu webserver m ha cc chui d liu theo bng
m UTF-8 (Thng tin v cc codepage tng ng vi cc bng m
xem ti [4]):
<%Session.CodePage=65001%> // Dng cho ton b cc trang
trong Session hin hnh
<%@CodePage=65001%> // Dng cho trang hin hnh

Ly v d trong trng hp dng c s d liu SQL Server 7.0,


d liu c tr v t cc cu truy vn theo bng m UCS-2. Nu ta
ch nh CodePage l 65001, webserver s t ng chuyn d liu
t UCS-2 sang UTF-8, ngc li nu khng ch nh thuc tnh
CodePage, webserver s chuyn d liu n client theo bng m
mc nh (v d nh windows-1252). iu ny gii thch cho trng
hp mt s trang web asp hin th khng ng d liu Unicode c
lu trong cc c s d liu nh SQL Server 7.0/2000, MS Access
2000.
Ngoi ra, cc trang asp c s dng on m lnh thit lp
CodePage l 65001 phi c lu theo nh dng tng ng l
UTF-8 [6].
Nh vy, vic thit lp thuc tnh CodePage trong trang asp s
gip cho webserver hiu c cc d liu c lu trong cc c s
d liu, hng chui k t, theo bng m no m ha (encode)
n trc khi chuyn n cho trnh duyt. Vic ch nh bng m
dng trong trang web bng tag META s gip cho trnh duyt din
dch (decode) d liu c chuyn n t webserver ng nht khi
hin th [7].

2.3. Cc bc c bn ca lp trnh web asp s dng


ting Vit Unicode
Son v lu tr tp tin .asp di dng m ha UTF-8.
Trong cc tp tin asp, chn cc on m ch nh cho web
server v trnh duyt x l d liu trong trang web nh l UTF8. Cc on m ny phi t u trang asp. S dng v d
mu sau:

<%

Response.Write Cho mng bn n vi trang web ny


in mt hng chui
Response.Write rs(TEN_NV) in d liu ca mt bin, v
d nh l mt trng ca recordset
L nh Duy - H KHTN Tp. HCM

189

190

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

<%@CODEPAGE=65001%>
<%Session.Codepage=65001%>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;
CHARSET=UTF-8">
</HEAD>
<BODY>
</BODY>
</HTML>

S dng cc h qun tr CSDL h tr Unicode nh


SQLServer 7.0/2000, MS Access 2000. Nu dng SQL Server
th phi khai bo kiu d liu cho cc trng lu d liu
Unicode l NCHAR, NVARCHAR, NTEXT, Cc kiu d liu
nh TEXT, MEMO, HYPERLINK trong MS Access 2000 mc
nh l h tr lu d liu Unicode.

Response.Write Cho mng bn th lc lu tp tin, chng


trnh s pht hin ra trong trang asp ny c xut hin k t
Unicode v yu cu lu xung di dng Unicode, nu khng
cc k t Unicode s b mt. Tuy nhin, nu chn lu di
dng Unicode th chng trnh s lu tp tin ny di dng
m ha UCS-2. Hin nay webserver IIS khng th x l c
trang asp ny [10]. Do khng nn dng Visual InterDev 6.0
son tho cc trang asp trong cc ng dng Unicode ting
Vit.
Cc phn mm thng dng h tr g ting Vit Unicode:
UniKey, VietKey.

3.2. Cc phn mm h thng khc


SQL Server 7.0/2000 v MS Access 2000 h tr Unicode. Vi
mi k t Unicode, h thng s s dng bng m UCS-2
lu tr, ngha l dng c nh 2 byte cho mt k t. SQL 6.5
v MS Access 97 khng h tr Unicode.

Truy xut c s d liu thng qua JScript/VBScript/ODBC.


Khi lm vic trn h qun tr CSDL SQL Server 7.0/2000, nu
dng cc hng chui trong cc cu lnh SQL, phi thm tip
u ng N (bt buc l ch in hoa) vo [8]. Nu khng s
dng tip u ng ny, SQL Server s t ng chuyn chui
d liu sang bng m mc nh hin hnh trc khi s dng
n trong cc thao tc cp nht CSDL. V d, nu bn dng
cu lnh sau: INSERT INTO SINHVIEN(TEN_SV)
VALUES(Trn Nam Hi) th hng chui d liu Trn Nam
Hi s c SQL Server xem nh l chui k t thng ch
khng phi l chui Unicode. iu ny s dn n hu qu l
d liu s c lu tr khng chnh xc. V d nh d liu
ca k t trong chui trn l E1 BA A7, s c lu thnh
3 k t khc nhau. Trong khi nu dng cu lnh INSERT
INTO SINHVIEN(TEN_SV) VALUES(NTrn Nam Hi) th 3
byte E1 BA A7 s c xem nh l mt k t khi lu xung
[9].

3. H tr Unicode ca cc phn mm
3.1. Cc phn mm h tr son tho trang web
Visual Studio.NET, Notepad, MS FrontPage2002: H tr lu
tp tin di dng UTF-8
Visual InterDev 6.0: Nu trong trang asp ta s dng cc hng
chui c g vo di dng Unicode, v d nh:
L nh Duy - H KHTN Tp. HCM

191

IIS 5.0 khng th c c cc tp tin lu di dng UCS-2


[10], khng h tr CodePage ca bng m UTF-16 l 1200
[11]. IIS 4.0 khng h tr CodePage ca bng m UTF-8 l
65001 [11].

4. S dng Unicode trong cc trang web hin nay


C hai cch c th hin th c k t theo bng m Unicode
trong trnh duyt.
- Hin th theo cch lu tr Unicode
- Hin th theo qui c Unicode (tm gi l vy)
Cc trang web hin th ng theo cch lu tr unicode l cc
trang web khi View Source ln, bn s thy c dng nh ngha
charset=utf-8 hoc trnh duyt s t ng d ra nu tp tin c
lu theo utf-8. Vi cc trang web ny, khi bn thay i bng m khi
view trong trnh duyt (bng cch chn View/Encoding/..Windows),
hu nh bn s thy trang web tr nn hon ton xa l
Cc trang web hin th theo qui c Unicode l cc trang web
khi view ln s khng c dng nh ngha charset=utf-8 m thng
l charset=windows-1252 v trong ni dung trang web bn s thy
rt nhiu k t &#. Trang web ca IS-EDU l trang web dng ny.

192

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

V mt l thuyt nu charset l windows-1252 ngha l k t s


c hin theo bng m 1252. M trong bng m 1252 chc chn
khng th c cc k t ting Vit c v n l bng m ca Western
European, th nhng ti sao ta vn thy c ting Vit.

6. Ti liu trch dn
1. http://www.microsoft.com/globaldev/articles/unicode.asp
2. http://www.unicode.org/unicode/standard/principles.html

L do l ch, W3C qui c v trang HTML, nu trong 1


trang web m bn mun tham chiu n mt k t theo qui c ca
bng m Unicode, bn s g trc tip vo &#<im m>. Chnh v
vy m trong mt trang web c charset l 1252, mun hin th c
ch "Ting Vit" bn phi g vo Ti&#<im m k t >ng
Vi&#<im m k t >t.

3. http://support.microsoft.com/default.aspx?scid=kb;enus;Q303612
4. http://msdn.microsoft.com/library/default.asp?url=/workshop/a
uthor/dhtml/reference/charsets/charset4.asp
5. http://www.w3.org/TR/html401/charset.html#code-position

Bn c th khng bit iu ny v khi son mt trang web ting


Vit trong frontpage bng cc b g nh Vietkey, Unicode,
Frontpage t ng in cc im m vo cho bn.

6. http://support.microsoft.com/default.aspx?scid=KB;ENUS;Q295063&
7. http://msdn.microsoft.com/library/default.asp?url=/library/enus/iisref/html/psdk/asp/vbob150l.asp

Ni tm li: Khi xem mt trang web c phi thc s l unicode


hay khng, bn ch cn View Source ln, nu charset=utf-8 th
thc s l dng unicode tht theo ngha va l dng bng m
unicode v cch lu tr unicode.

8. http://support.microsoft.com/default.aspx?scid=kb;enus;Q239530
9. http://support.microsoft.com/default.aspx?scid=kb;enus;q232580

Cn ngc li, nu bn nhn thy charset=windows-1252 nh


trang IS-EDU ny th n mi ch l dng bng m unicode m thi,
cn cch lu tr vn l windows-1252.

10. http://support.microsoft.com/default.aspx?scid=kb;enus;Q245000

C rt nhiu trang web ting Vit hin nay gi l dng Unicode


nhng thc cht l Unicode theo dng windows-1252 k trn.

11. http://support.microsoft.com/default.aspx?scid=kb;enus;Q245000

5. Kt lun

12. http://support.microsoft.com/default.aspx?scid=kb;[LN];Q254
313

Unicode ra i nhm khc phc hn ch v s lng k t c


m ha ca cc bng m 8-bit trc , cho php mi ngn ng c
th s dng chung mt bng m duy nht. Do vn tng thch
trong lu tr v truyn d liu m Unicode c cc dng m ha khc
nhau nh UCS-2, UTF-8, UTF-16. UTF-8 l dng m ha Unicode
thng dng nht trong cc ng dng web hin nay.
vit cc ng dng web dng ting Vit Unicode, cn chn
cc phn mm son tho h tr lu tr tp tin di dng m ha
UTF-8 nh Visual Studio.NET, MS FrontPage2000, NotePad, ; s
dng cc h qun tr CSDL h tr Unicode nh SQL Server
7.0/2000, MS Access 2000, ; t cc on m ch nh bng m
m webserver v trnh duyt dng m ha v gii m d liu.

L nh Duy - H KHTN Tp. HCM

193

194

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Bi tham kho

KT XUT D LIU RA DNG EXCEL


T TRANG ASP
Thng thng, cc ng dng web kt xut d liu ca cc bo
co ra di dng bng biu. S rt cn thit nu ngi dng cng
nhn c d liu ny di dng Excel c th s dng cho cc
mc ch khc.
K thut t c mc ch ny kh n gin. tng chnh
ca k thut ny l s dng thuc tnh ContentType ca i tng
Response trong ASP v thc hin theo cc bc tun t sau:
Bc 1: Ch nh d liu s c chuyn i theo nh dng
Excel
n gin ch cn dng cu lnh: Response.ContentType =
application/vnd.ms-excel. Thng thng, cn phi t cu lnh
Response.Buffer = True v Response.Clear trc cu lnh ny
m bo d liu c chuyn xung client chnh xc.
Bc 2: Kt xut d liu di dng bng theo cch lm
thng thng.
Dng u tin ca bng cha tn ca cc ct s c hin th
trong tp tin excel.
Hy xem v d minh ha sau:
<%
Response.Buffer = True
Response.Clear
thit lp nh dng s kt xut l Excel
Response.ContentType = application/vnd.ms-excel

Bn lun:
u im ca cch lm trn l cho php bn s dng cc on
m sn c lc kt xut d liu ra dng bng theo cch thng thng
chuyn sang nh dng Excel. Tuy nhin vic kt xut d liu
theo nh dng Excel nh trong v d trn c th chim ti nguyn
ca webserver c bit khi d liu ln do ch nn dng cch ny
nu trang ny khng c s dng thng xuyn.
Nu mun kt xut d liu ln v thc hin thng xuyn, ta c
th kt xut thng qua nh dng CSV (Comma-Separated Values)
ti u hn. Cc tp tin theo nh dng CSV l cc tp tin vn bn
m d liu trong cc ct c ngn cch vi nhau bi du phy ,
(comma), rt thng c dng cho vic trao i d liu gia cc
h qun tr CSDL v cc chng trnh bng tnh nh Excel. V d,
nu bn m mt tp tin csv c ni dung nh sau trong Excel, ta s
nhn c mt bng 3 dng, 3 ct:

kt ni vi CSDL
strDSN = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ng dn tng i n tp tin CSDL
strDSN = strDSN & Server.MapPath("myDB.mdb")
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
strSQL = SELECT * FROM myTable
set rs = Conn.Execute(strSQL)
L nh Duy - H KHTN Tp. HCM

%>

rowstart = <tr>
rowend = </tr>
cellstart = <td>
cellend = </td>
Response.Write <TABLE border=1>
dng u tin in tn cc ct
Response.Write rowstart
For i = 0 to rs.Fields.Count -1
Response.Write cellstart & "<b>" & rs.Fields(i).name &
"</b>" & cellend
Next
Response.Write rowend
in d liu ca tng dng
Do while not rs.EOF
Response.Write rowstart
For i = 0 to rs.Fields.Count 1
Response.Write cellstart & rs.Fields(i)& cellend
Next
Response.Write rowend
rs.MoveNext
Loop
rs.Close
set rs = Nothing
Conn.Close
set Conn = nothing
Response.Write </TABLE>
Response.End

195

196

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Doe,John,944-7077

set Conn = nothing


Response.End

Johnson,Mary,370-3920

%>

Smith,Abigail,299-3958
chuyn d liu sang nh dng CSV, vn vi cch lm tng
t bng cch thay i thuc tnh ContentType v dng
application/csv v thm dng lnh sau yu cu trnh duyt hin
th hp thoi ti tp tin v: Response.AddHeader "ContentDisposition", "filename=mydata.csv;". Sau , thay v nh dng d
liu di dng bng, ta nh dng d liu theo dng d liu cc ct
c phn cch vi nhau bng du phy ,. Xem v d minh ha
sau:
<%

Hn ch ca nh dng ny l do d liu ch l cc k t ASCII


nn s khng dng c trong trng hp d liu s dng Unicode,
ngoi ra cn phi c cch x l thch hp trong trng hp d liu
trong cc ct c du phy ,. Excel x l trng hp ny bng cch
thay t ton b d liu trong du . V d nu bn c d liu l
Abc, xyz th d liu s c i thnh Abc, xyz

Response.Buffer = True
Response.Clear
thit lp nh dng s kt xut l Excel
Response.ContentType = application/csv
Response.AddHeader
"Content-Disposition",
"filename=mydata.csv;"
kt ni vi CSDL
strDSN = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ng dn tng i n tp tin CSDL
strDSN = strDSN & Server.MapPath("myDB.mdb")
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
strSQL = SELECT * FROM myTable
set rs = Conn.Execute(strSQL)
dng u tin in tn cc ct
For i = 0 to rs.Fields.Count -1
Response.Write rs.Fields(i).name & ",
Next
Response.Write vbNewLine kt thc mt dng d liu
in d liu ca tng dng
Do while not rs.EOF
For i = 0 to rs.Fields.Count 1
Response.Write rs.Fields(i)& ,
Next
Response.Write vbNewLine kt thc mt dng d liu
rs.MoveNext
Loop
rs.Close
set rs = Nothing
Conn.Close

L nh Duy - H KHTN Tp. HCM

197

198

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Chng 6

ngha l server s gi kt qu v client ngay mi khi x l xong tng


dng lnh. Ngc li, nu thuc tnh ny l TRUE, server s khng
gi cc kt qu v client ngay m gi chng vo vng m cho n
khi tt c cc on m trong trang asp hin hnh c x l xong,
sau kt qu t vng m mi c chuyn n client.

ASP NNG CAO


1. I TNG RESPONSE
1.1. Chuyn hng trang web
yu cu trnh duyt chuyn sang np mt web khc khi ang
x l trang web hin hnh, ta dng phng thc
Response.Redirect vi tham s l mt a ch URL.
Khi s dng phng thc ny tt c nhng ni dung c
kt xut ra trnh duyt trc ca trang web hin hnh u b b
qua.
V d sau minh ha vic chuyn hng trang ty theo yu cu
ca ngi dng
<HTML>
<HEAD>
<TITLE>Page Redirect</TITLE>
</HEAD>
<BODY>
<%
Site = Request.QueryString(SiteName)
Select case Site
case Microsoft
Response.Redirect http://www.microsoft.com
case Intel
Response.Redirect http://www.intel.com
case Oracle
Response.Redirect http://www.oracle.com
End Select
%>
</BODY>
</HTML>

Tuy nhin, trong trng hp tp tin ASP qu di, nu x l


xong ht on m mi kt xut ra client, s ko di thi gian ch i
hin th trang web ca ngi dng. Phng thc Response.Flush
cho php ta chuyn cc kt qu ang c trong vng m n client
ngay lp tc. Lu rng lnh ny ch c dng khi t
<%Response.Buffer=TRUE%>.
yu cu server ngng x l cc on m tip theo v chuyn
cc kt qu ang c (c th cn nm trong vng m) n client, ta
dng phng thc Response.End. Phng thc ny thng dng
trong cc cu trc iu khin nh If...Then...Else. C th xem
Response.End tng t nh lnh halt() trong C.
xa cc kt xut hin hnh trong vng m, ta dng phng
thc Response.Clear. Lu rng lnh ny ch c dng khi
t <%Response.Buffer=TRUE%>.
ch nh thi gian lu tm (cache) mt trang ti trnh duyt
ht hn (expires) l bao lu, ta t gi tr cho thuc tnh
Response.Expires. Nu t <%Response.Expires=-1%>, trang web
ny s ht hn lu tm ngay lp tc.

1.3. Kim tra client cn kt ni vi my ch khng


kim tra client cn kt ni vi webserver hay khng, ta dng
thuc tnh Response.IsClientConnected
V d sau minh ha cc thao tc tng ng vi cc trng thi
ca client

1.2. Kim sot vic kt xut ra trnh duyt


Thuc tnh Response.Buffer cho php yu cu server kim sot
qu trnh gi kt qu v client hay khng trong qu trnh x l cc
on m trong trang ASP. Nu thuc tnh ny l FALSE, iu c
L nh Duy - H KHTN Tp. HCM

Vic thit lp gi tr ca thuc tnh ny bt ny bt buc phi


c thc hin trc khi server gi bt k kt qu no v client. Do
, dng lnh <%Response.Buffer=TRUE/FALSE%> phi c
t ngay t dng u tin ca trang ASP.

199

<%
'Check to see if the client is connected.
If Not Response.IsClientConnected Then
'Get the sessionid to send to the shutdown function.
Shutdownid = Session.SessionID

200

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

'Perform shutdown processing.


Shutdown(Shutdownid)
End If
%>

ca n di dng HTTP query string ngay trong a ch ca


trnh duyt.
Method POST: s lng k t khng b gii hn, form s
khng hin th cc tham s trong a ch ca trnh duyt.

2. I TNG REQUEST
2.1. Request.Form v Request.QueryString
Request.Form c dng cho trng hp ta mun ly gi tr
ca cc bin kt hp vi cc control ca form c gi i bng
method POST. i vi trng hp mt control cha nhiu gi tr,
chng ta phi ch nh th t (index) ca gi tr cn ly. bit s
lng cc gi tr c gi theo mt control, ta tham chiu n thuc
tnh Count. V d:

Chng ta cng c th truy xut vo gi tr ca cc bin thng qua


i tng Request(<tn bin>) khng cn phi ch nh collection l
Request.QueryString(<tn bin>) hay Request.Form(<tn bin>).
Ngha l, nu bn c mt bin c tn l PHONE c form submit
bng method GET v mt bin c tn l ADDRESS c form
submit bng method POST, bn u c th truy cp vo c hai bin
ny bng Request(PHONE) v Request(ADDRESS) thay cho
Request.QueryString(PHONE) v Request.Form(ADDRESS).

2.2. Request.ServerVariables

<%
For i = 1 to Request.Form("FavoriteFlavor").count
%>
Request.Form(FavoriteFlavor) =
<%= Request.Form("FavoriteFlavor")(i)%> <BR>
<% Next %>

truy cp vo mt s gi tr ca cc bin mi trng ti server,


ta dng collection Request.ServerVariables. Bng sau lit k danh
sch cc tn bin mi trng ti server.

Request.QueryString c dng cho trng hp ta mun ly


gi tr cc bin c to ra trong HTTP query string. Cc cp tn
bin v gi tr theo sau du ? trong URL s hnh thnh mt HTTP
query
string.
Trong
v
d
sau:
<A
HREF=
"example.asp?FirstName=Duy&LastName=Le
Dinh">string
sample</A>,
HTTP
query
string
l
FirstName=Duy&LastName=Le Dinh. HTTP query string s to ra
hai bin c tn l FistName v LastName, cc gi tr tng ng l
Duy v Le Dinh. ly cc gi tr ny, ta dng
Request.QueryString(FirstName)
v
Request.QueryString(LastName).

Variable

Description

ALL_HTTP

All HTTP headers sent by the


client.

ALL_RAW

Retrieves all headers in raw


form. The difference between
ALL_RAW and ALL_HTTP is
that ALL_HTTP places an
HTTP_ prefix before the header
name and the header name is
always capitalized. In ALL_RAW
the header name and values
appear as they are sent by the
client.

APPL_MD_PATH

Retrieves the metabase path for


the Application for the ISAPI
DLL.

C hai cch to ra HTTP query string, l:


Ngi dng submit mt form c method l GET, lc ny trnh
duyt s t ng sinh ra HTTP query string.
Ngi dng g trc tip chui HTTP query string trong URL
nh v d trn.
So snh cc method GET v POST trong form:
Method GET: s lng k t b gii hn (ko theo kch thc
d liu ca bin khng th ln), form s hin th cc tham s
L nh Duy - H KHTN Tp. HCM

201

202

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

APPL_PHYSICAL_PATH

AUTH_PASSWORD

AUTH_TYPE

Email: ledduy@ieee.org

Retrieves the physical path


corresponding to the metabase
path. IIS converts the
APPL_MD_PATH to the
physical (directory) path to
return this value.

CERT_SECRETKEYSIZE

Number of bits in server


certificate private key. For
example, 1024.

CERT_SERIALNUMBER

Serial number field of the client


certificate.

The value entered in the client's


authentication dialog. This
variable is available only if Basic
authentication is used.

CERT_SERVER_ISSUER

Issuer field of the server


certificate.

CERT_SERVER_SUBJECT

Subject field of the server


certificate.

CERT_SUBJECT

Subject field of the client


certificate.

CONTENT_LENGTH

The length of the content as


given by the client.

CONTENT_TYPE

The data type of the content.


Used with queries that have
attached information, such as
the HTTP queries GET, POST,
and PUT.

GATEWAY_INTERFACE

The revision of the CGI


specification used by the server.
The format is CGI/revision.

HTTP_<HeaderName>

The value stored in the header


HeaderName. Any header other
than those listed in this table
must be prefixed by HTTP_ in
order for the ServerVariables
collection to retrieve its value.
Note The server interprets any
underscore (_) characters in
HeaderName as dashes in the
actual header. For example if
you specify
HTTP_MY_HEADER, the server
searches for a header sent as
MY-HEADER.

The authentication method that


the server uses to validate users
when they attempt to access a
protected script.

AUTH_USER

Raw authenticated user name.

CERT_COOKIE

Unique ID for client certificate,


returned as a string. Can be
used as a signature for the
whole client certificate.

CERT_FLAGS

bit0 is set to 1 if the client


certificate is present.
bit1 is set to 1 if the
cCertification authority of the
client certificate is invalid (it is
not in the list of recognized CAs
on the server).

CERT_ISSUER

Issuer field of the client


certificate (O=MS, OU=IAS,
CN=user name, C=USA).

CERT_KEYSIZE

Number of bits in Secure


Sockets Layer connection key
size. For example, 128.

L nh Duy - H KHTN Tp. HCM

203

204

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

HTTP_ACCEPT

Returns the value of the Accept


header.

HTTP_ACCEPT_LANGUAGE

Returns a string describing the


language to use for displaying
content.

HTTP_USER_AGENT

Returns a string describing the


browser that sent the request.

HTTP_COOKIE

Returns the cookie string that


was included with the request.

HTTP_REFERER

Returns a string containing the


URL of the page that referred
the request to the current page,
but does not include redirect
requests.

HTTPS

Returns ON if the request came


in through secure channel (SSL)
or it returns OFF if the request is
for a non-secure channel.

HTTPS_KEYSIZE

Number of bits in Secure


Sockets Layer connection key
size. For example, 128.

HTTPS_SECRETKEYSIZE

Number of bits in server


certificate private key. For
example, 1024.

HTTPS_SERVER_ISSUER

Issuer field of the server


certificate.

HTTPS_SERVER_SUBJECT

Subject field of the server


certificate.

L nh Duy - H KHTN Tp. HCM

205

INSTANCE_ID

The ID for the IIS instance in


textual format. If the instance ID
is 1, it appears as a string. You
can use this variable to retrieve
the ID of the Web-server
instance (in the metabase) to
which the request belongs.

INSTANCE_META_PATH

The metabase path for the


instance of IIS that responds to
the request.

LOCAL_ADDR

Returns the Server Address on


which the request came in. This
is important on multihomed
computers where there can be
multiple IP addresses bound to
the computer and you want to
find out which address the
request used.

LOGON_USER

The Windows account that the


user is logged into.

PATH_INFO

Extra path information as given


by the client. You can access
scripts by using their virtual path
and the PATH_INFO server
variable. If this information
comes from a URL, it is decoded
by the server before it is passed
to the CGI script.

PATH_TRANSLATED

A translated version of
PATH_INFO that takes the path
and performs any necessary
virtual-to-physical mapping.

QUERY_STRING

Query information stored in the


string following the question
mark (?) in the HTTP request.

206

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

REMOTE_ADDR

The IP address of the remote


host making the request.

SERVER_SOFTWARE

REMOTE_HOST

The name of the host making


the request. If the server does
not have this information, it will
set REMOTE_ADDR and leave
this empty.

The name and version of the


server software that answers the
request and runs the gateway.
The format is name/version.

URL

Gives the base portion of the


URL.

REMOTE_USER

Unmapped user-name string


sent in by the user. This is the
name that is really sent by the
user, as opposed to the names
that are modified by any
authentication filter installed on
the server.

REQUEST_METHOD

The method used to make the


request. For HTTP, this is GET,
HEAD, POST, and so on.

SCRIPT_NAME

A virtual path to the script being


executed. This is used for selfreferencing URLs.

SERVER_NAME

The server's host name, DNS


alias, or IP address as it would
appear in self-referencing URLs.

SERVER_PORT

The port number to which the


request was sent.

SERVER_PORT_SECURE

A string that contains either 0 or


1. If the request is being handled
on the secure port, then this will
be 1. Otherwise, it will be 0.

SERVER_PROTOCOL

The name and revision of the


request information protocol.
The format is protocol/revision.

L nh Duy - H KHTN Tp. HCM

207

V d sau minh ha vic hin th cc gi tr ca bin mi trng


ti server.
<HTML>
<!-- This example displays the content of several ServerVariables. ->
ALL_HTTP server variable =
<%= Request.ServerVariables("ALL_HTTP") %> <BR>
CONTENT_LENGTH server variable =
<%= Request.ServerVariables("CONTENT_LENGTH") %> <BR>
CONTENT_TYPE server variable =
<%= Request.ServerVariables("CONTENT_TYPE") %> <BR>
QUERY_STRING server variable =
<%= Request.ServerVariables("QUERY_STRING") %> <BR>
SERVER_SOFTWARE server variable =
<%= Request.ServerVariables("SERVER_SOFTWARE") %> <BR>
</HTML>

V d sau s dng vng lp For...Each hin th cc gi tr ca


cc bin mi trng ti server.
<TABLE BORDER="1">
<TR><TD><B>Server
Variable</B></TD><TD><B>Value</B></TD></TR>
<% For Each strKey In Request.ServerVariables %>
<TR>
<TD><%= strKey %></TD>
<TD><%= Request.ServerVariables(strKey) %></TD>
</TR>
<% Next %>
</TABLE>

3. APPLICATION V SESSION
Nh chng ta bit, nu mt bin c khai bo trong mt
trang ASP, n s b hy ngay mt khi server x l xong trang ny.
c th khai bo cc bin c th s dng chung cho nhiu trang, ta
s dng hai i tng Application v Session.

208

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

3.1. i tng Application


i tng Application lu tr cc thng tin c th c chia
s cho nhiu ngi dng trong cng mt ng dng. Mt ng dng
ASP c nh ngha nh l cc trang asp nm trong cng mt th
mc o v cc th mc con ca th mc o ny. Do cc bin c
lu trong i tng Application c dng chung cho nhiu ngi
dng, do mt khi mt ngi dng mun thay i mt gi tr dng
chung ny, cc yu cu phi c t trong cp lnh Lock v
Unlock. iu ny m bo an ton khi nhiu ngi cng yu cu
thay i ca cng mt gi tr trong cng mt lc.
Cn cn thn khi to ra cc bin Application v cc bin ny
chim b nh v tn ti sut thi gian hot ng ca ng dng.
xa ton b cc bin Application ra khi b nh ta dng
phng thc RemoveAll.
Sau y l mt s v d minh ha vic to ra mt bin v lu gi
tr ca n vo trong i tng Application, cng nh ly gi tr ca
mt bin c lu trong i tng Application.
<%
Application("greeting") = "Welcome to My Web World!"
Application("num") = 25
Set Application("Obj1") = Server.CreateObject("MyComponent")

'Storing the array in the Application object.


Application.Lock
Application("StoredArray") = MyArray
Application.Unlock
Server.Transfer("file2.asp")
%>
---file2.asp--<%
'Retrieving the array from the Application Object
'and modifying its second element.
LocalArray = Application("StoredArray")
LocalArray(1) = " there"
'Printing out the string "hello there."
Response.Write(LocalArray(0)&LocalArray(1))
'Re-storing the array in the Application object.
'This overwrites the values in StoredArray with the new one
Application.Lock
Application("StoredArray") = LocalArray
Application.Unlock
%>

%>
...
<%
Set MyLocalObj1 = Application("Obj1")
MyLocalObj1.MyObjMethod
%>

3.2. i tng Session


i tng Session c dng lu tr cc thng tin dng cho
mt phin lm vic ca mt ngi dng. Cc bin c lu trong
i tng ny s khng b hy khi ngi dng chuyn t trang ny
sang trang khc.

<%
Application.Lock
Application("NumVisits") = Application("NumVisits") + 1
Application.Unlock
%>
This application page has been visited
<%= Application("NumVisits") %> times!

V d sau minh ha vic s dng i tng Application thao


tc trn cc bin kiu mng.

L nh Duy - H KHTN Tp. HCM

---file1.asp--<%
'Creating and initializing the array.
dim MyArray()
Redim MyArray(5)
MyArray(0) = "hello"
MyArray(1) = "some other string"

209

Webserver s t ng to ra mt i tng Session khi ngi


dng yu cu mt trang web t mt ng dng m trc cha c
phin lm vic no. Webserver s t ng hy i tng Session
ny khi i tng ny ht hn.
i tng Session thng c dng lu cc thng tin ring
bit cho tng phin lm vic ca ngi dng. V d nh trong ng
dng mua hng trn mng, mi khi ngi dng duyt qua cc mt
210

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

hng v quyt nh chn n, ri li tip tc qua cc trang khc


chn mt hng khc, ... Cc thng tin lin quan n cc mt hng
m ngi dng chn t nhiu trang khc nhau nn c lu
trong bin ca i tng Session sau ny in ra phiu mua hng
cho ngi dng.
Sau y l mt s v d minh ha vic to ra mt bin v lu gi
tr ca n vo trong i tng Session, cng nh ly gi tr ca mt
bin c lu trong i tng Session.
<%
Session("username") = "Janine"
Session("age") = 24
Set Session("Obj1") =
Server.CreateObject("MyComponent.class1")
%>
...
<%
Set MyLocalObj1 = Session("Obj1")
MyLocalObj1.MyObjMethod
%>

<%
MyArTemp = Session("MyArray")
MyArTemp(0) = 4
Session("MyArray") = MyArTemp
%>

V d sau minh ha vic s dng i tng Session thao tc


trn cc bin kiu mng.
---file1.asp--<%
'Creating and initializing the array
Dim MyArray()
Redim MyArray(5)
MyArray(0) = "hello"
MyArray(1) = "some other string"
'Storing the array in the Session object.
Session("StoredArray") = MyArray

Lu tr cc mng trong cc bin Session


V d to ra mt bin Session c tn l Username, ta dng c
php Session("UserName"). gn gi tr cho bin Session ny, ta
dng: Session("UserName") = "Hoang Dung"
ly gi tr ca bin Session ra, ta dng: vUserName =
Session("UserName")
Ring i vi bin mng, phi c mt cht thay i v ta khng
th can thip trc tip vo cc phn t trong mng bin Session. V
d, gn gi tr mng cho Session:
<%
MyAr(0)=1
MyAr(1) = 10
Session("MyArray") = MyAr
%>

Nhng khi ly gi tr ra, ta kng dng c


Session("MyArray")(0) hay Session("MyArray")(1) m phi lm nh
sau:
<%
MyArTemp = Session("MyArray")
v0 = MyArTemp(0)
%>
L nh Duy - H KHTN Tp. HCM

Hay khi gn gi tr cho tng thnh phn ca mng, khng dng


c Session("MyArray")(0) = 4 m phi lm nh sau:

211

Response.Redirect("file2.asp")
%>
---file2.asp--<%
'Retrieving the array from the Session Object
'and modifying its second element.
LocalArray = Session("StoredArray")
LocalArray(1) = " there"
'Printing out the string "hello there."
Response.Write(LocalArray(0)&LocalArray(1))
'Re-storing the array in the Session object.
'This overwrites the values in StoredArray with the new one.
Session("StoredArray") = LocalArray
%>

t thi gian ht hn ca mt i tng Session, ta t gi tr


(tnh bng pht) cho thuc tnh Session.TimeOut. hy Session
hin hnh, ta dng phng thc Session.Abandon. Phng thc
ny thng c dng khi ngi dng logout khi h thng

212

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

3.3. GLOBAL.ASA
Nu ta mun thc hin mt s thao tc ngay khi h thng to ra
cc i tng Application, Session. ta phi t cc thao tc ny
trong th tc Application_OnStart, Session.On_Start tng ng.
Tng t, thc hin cc thao tc trc khi h thng chun b hy b
cc i tng ny, ta phi t cc thao tc ny trong th tc
Application_OnEnd, Session.On_End tng ng.

c ch cho php server lu tr cc thng tin ca n v ngi dng


trn chnh my ca ngi dng hin ti.
Cc thuc tnh chnh ca cookie l:
Domain: Xc nh tn min m cookie c gi i.
Expires: Ngy ht hn ca cookie. Ta phi t ngy ht hn
ch nh thi gian lu tr cookie trn my client sau khi mt
session kt thc. Nu ta khng t thuc tnh ny, cookie s
ht hn ngay khi session kt thc.

Tt c bn th tc ny u phi c t trong tp tin c tn gi


l Global asa. Cu trc chung ca mt tp tin Global asa l:

Path: Xc nh ng dn m cookie c gi i.

<SCRIPT LANGUAGE=VBScript RUNAT=Server>


Sub Application_OnStart
...
End Sub

gn gi tr cho cookie, ta dng c php


Response.Cookies(cookie)[(key)|.attribute] = value. Vi:
cookie: tn ca cookie.

Sub Application_OnEnd
...
End Sub

key: tham s ty chn, dng t nhiu gi tr cho mt


cookie.
attribute: thuc tnh ca cookie

Sub Session_OnStart
...
End Sub

Nu cookie cha tn ti, lnh ny s to mi cookie. Ngc li,


nu cookie tn ti, lnh ny s thay th gi tr mi cho cookie v
b gi tr c i.

Sub Session_OnEnd
...
End Sub

ly gi tr t cookie, ta dng
Request.Cookies(cookie)[(key)|.attribute].

</SCRIPT>

php

sau:

Cc v d sau minh ha vic s dng cookie.

4. COOKIES
Cookie l thng tin ca ng dng web lu tr ti my client.
Thng thng cc cookie lu tr cc thng tin ring ca bn khi s
dng mt website no . V d, nu bn dng Yahoo Mail, thng tin
v tn ng nhp ca bn c th s c lu vo cookie my bn
ang dng nh tn ng nhp ca bn. l l do ti sao sau
ny khi quay li trang Yahoo Mail, h thng s t ng hin th tn
ng nhp ca bn trc v ch yu cu bn nhp vo mt khu.
Vi giao thc HTTP, mi yu cu cho mt trang web khng c
mi lin quan no vi cc yu cu khc. Chnh v vy m webserver
khng nh c trang no c gi n cho ngi dng trc
hay bt c nhng g m ngi dng duyt qua. Cookie l mt

L nh Duy - H KHTN Tp. HCM

sau:

213

---cookiesform.asp--<%
Response.Buffer=true
%>
<HTML>
<HEAD>
<TITLE>cookiesform.asp</TITLE>
<BODY bgcolor="#FFFFFF">
<%
ln=Request.Cookies("thatperson")("lastname")
fn=Request.Cookies("thatperson")("firstname")
st=Request.Cookies("thatperson")("state")
%>
<FORM ACTION = "cookiesformrespond.asp">
Form with Cookies<p>

214

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Please enter your First Name<p>


<INPUT NAME="NameFirst" size ="40" value=<%=fn%>>
<p>
Please enter your Last Name<p>
<INPUT NAME="NameLast" size ="40" value=<%=ln%>>
<p>
Please enter your State abbreviation<p>
<INPUT NAME="State" MaxLength="2" value=<%=st%>>
<INPUT TYPE=submit>
</FORM>
</BODY>
</HTML>

Response.Buffer=true
%>
<HTML>
<HEAD>
<TITLE>cookiesformforget.asp</TITLE>
<BODY bgcolor="#FFFFFF">
<%
cookiepath="/learn/test"
cookiedomain=".www.activeserverpages.com"
cookiesdie=date-365
Response.Cookies("thatperson").Expires = cookiesdie
Response.Cookies("thatperson").Domain = cookiesdomain
Response.Cookies("thatperson").Path = cookiespath
Response.Write "I will not remember you"
%>
</BODY>
</HTML>

---cookiesformrespond.asp--<%
Response.Buffer=true
%>
<HTML>
<HEAD>
<TITLE>cookiesformrespond.asp</TITLE>
<BODY bgcolor="#FFFFFF">
<%
l=request.querystring("namelast")
f=request.querystring("namefirst")
st=request.querystring("state")
cookypath="/learn/test"
cookydomain=".www.activeserverpages.com"
cookydie=date+365
Response.Cookies("thatperson")("lastname") = l
Response.Cookies("thatperson")("firstname") = f
Response.Cookies("thatperson")("state") = st
Response.Cookies("thatperson").Expires = cookydie
Response.Cookies("thatperson").Domain = cookydomain
Response.Cookies("thatperson").Path = cookypath
Response.Write Request.Cookies("thatperson")("lastname") &
"<p>"
Response.Write Request.Cookies("thatperson")("firstname") &
"<p>"
Response.Write Request.Cookies("thatperson")("state") & "<p>"
%>
</BODY>
</HTML>

5. I TNG SERVER
i tng Server cung cp cc thuc tnh v phng thc h
tr cho cc chc nng mc server.
ch nh khong thi gian m mt on m script c th thi
hnh trn server trc khi ht thi gian cho php (time out), ta t
gi tr (tnh bng giy) cho thuc tnh Server.ScriptTimeOut. V d:
<%Server.ScriptTimeOut=100%>
gi thi hnh mt trang asp khc nh th n l mt phn ca
trang asp hin hnh, ta dng phng thc Server.Execute. V d:
<%Server.Execute("Welcome.asp")%>.
chuyn mt chui v dng m HTML, ta dng phng thc
Server.HTMLEncode.
V
d
lnh
sau:
<%= Server.HTMLEncode("The paragraph tag: <P>") %> s sinh
ra chui kt qu l: The paragraph tag: &lt;P&gt;. Trn mn hnh s
hin th: The paragraph tag: <P>.
nh x ng dn o thnh ng dn thc ch ni lu tr
vt l thc s trn my, ta dng phng thc
Server.MapPath(Path)
Trong v d sau, tp tin data.txt c lu tr ti th mc
C:\Inetpub\Wwwroot\Script cng vi tp tin test.asp. Th mc
C:\Inetpub\Wwwroot directory c coi nh nh l webroot (server's
home directory).

The script below demonstrates how to remove a cookie.


---cookiesformforget.asp--<%
L nh Duy - H KHTN Tp. HCM

215

216

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Gi s tp tin test.asp cha on m sau. on m ny s dng


bin server PATH_INFO cho bit ra th mc vt l ca tp tin ny.
<%= Server.MapPath(Request.ServerVariables
("PATH_INFO"))%><BR>

<%
Response.Write(Server.URLEncode("http://www.microsoft.com"))

%>

Kt qu l c:\inetpub\wwwroot\script\test.asp<BR>
Cc v d sau minh ha vic nh x sang th mc vt l cn c
vo cch t ng dn l tng i hay tuyt i. Mt ng dn
tng i l ng dn khng bt u bng du / hay \.
V d 1:
<%= Server.MapPath("data.txt")%><BR>
<%= Server.MapPath("script/data.txt")%><BR>

V d 2:
<%= Server.MapPath("/script/data.txt")%><BR>
<%= Server.MapPath("\script")%><BR>

6. X L LI VI I TNG ASPERROR
Bn c th s dng cc thuc tnh ca i tng ASPError
by cc li xy ra trong on m script ca trang web v t
a ra cc thng bo v x l tng ng.

Cc thuc tnh chnh ca i tng ASPError l ASPCode,


Number, Source, Category, File, Line, Column, Description,
ASPDescription.
V d sau minh ha vic s dng i tng ny:

gi cc thng tin trng thi hin hnh ca trang asp ang


c x l ti mt trang asp khc tip tc x l, ta dng phng
thc Server.Transfer. V d:
ASP1.asp
<HTML>
<BODY>
<%
Dim sessvar1 Response.Write Session.SessionID
Response.Write ("<BR>")
Response.Write("I am going to ASP2 <BR>")
Server.Transfer("/Myasps/ASP2.asp")
%>

<%
Response.Write objASPError.Category
If objASPError.ASPCode > "" Then Response.Write ", " &
objASPError.ASPCode
Response.Write " (0x" & Hex(objASPError.Number) & ")" & "<br>"
Response.Write "<b>" & objASPError.Description & "</b><br>"
If objASPError.ASPDescription > "" Then Response.Write
objASPError.ASPDescription & "<br>"
blnErrorWritten = False
' Only show the Source if it is available and the request is from the
same machine as IIS
If objASPError.Source > "" Then
strServername =
LCase(Request.ServerVariables("SERVER_NAME"))
strServerIP = Request.ServerVariables("LOCAL_ADDR")
strRemoteIP = Request.ServerVariables("REMOTE_ADDR")
If (strServername = "localhost" Or strServerIP = strRemoteIP)
And objASPError.File <> "?" Then

ASP2.asp
<HTML>
<BODY>
<%
Response.Write Session.SessionID
%>
</BODY>
</HTML>
L nh Duy - H KHTN Tp. HCM

s in ra chui: http%3A%2F%2Fwww%2Emicrosoft%2Ecom

bit c mt thao tc c gp li hay khng, ta dng phng


thc Server.GetLastError. Phong thc ny s tr v mt th hin
ca i tng ASPError m t cc thng tin lin quan n li nu c.

Kt qu l: c:\inetpub\wwwroot\script\data.txt<BR>

Kt qu l : c:\inetpub\wwwroot\script\data.txt<BR>
c:\inetpub\wwwroot\script<BR>

m ha cc chui thnh qui tc m ha URL, ta dng


phng thc Server.URLEncode. V d on m sau:

217

218

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Response.Write objASPError.File
If objASPError.Line > 0 Then Response.Write ", line " &
objASPError.Line
If objASPError.Column > 0 Then Response.Write ", column " &
objASPError.Column
Response.Write "<br>"
Response.Write "<font style=""COLOR:000000; FONT: 8pt/11pt
courier new""><b>"
Response.Write Server.HTMLEncode(objASPError.Source) &
"<br>"
If objASPError.Column > 0 Then Response.Write
String((objASPError.Column - 1), "-") & "^<br>"
Response.Write "</b></font>"
blnErrorWritten = True
End If
End If
If Not blnErrorWritten And objASPError.File <> "?" Then
Response.Write "<b>" & objASPError.File
If objASPError.Line > 0 Then Response.Write ", line " &
objASPError.Line
If objASPError.Column > 0 Then Response.Write ", column " &
objASPError.Column
Response.Write "</b><br>"
End If
%>

7.2. X l li ca cc thao tc lin quan n c s d liu


kim tra cc thao tc thc hin trn c s d liu c xy ra
li hay khng, ta s dng collection Connection.Errors.
bit thao tc xy ra c th hay khng ta cn c vo gi tr
Connection.Errors.Count. Nu gi tr ny ln hn 0, c ngha l thao
tc gp li. Nu gp li Connection.Errors.Number s tr v mt con
s ch m li, Connection.Errors.Description s tr v chui k t m
t li, Connection.Errors.Source s tr v chui k t m t tn ca
i tng hay ng dng gy ra li, Connection.Errors.SQLState s
tr v m li 5 k t m t li lin quan n vic thc hin cu lnh
SQL.
Ta phi s dng cu lnh On Error Resume Next cc ni c
tim n kh nng xy ra li yu cu h thng tip tc thc hin
cc lnh tip theo mt khi c li xy ra. Nu khng, mt khi xy ra
li, thng bo li ca h thng s hin ra v chng trnh b dng li
(li run-time error)
V d sau minh ha vic x l li trong khi thc hin cc thao tc
lin quan n c s d liu:

7. ADO NNG CAO


7.1. Thc hin store procedure
yu cu thc hin store procedure, n gin ta ch cn thay
th chui strSQL trong cu lnh Conn.Execute strSQL bng chui
ch ti tn ca store procedure. V d nu ta c store procedure c
tn l sp_AddUser, ta gi thc hin nh sau: Conn.Execute
sp_AddUser

<!-- BeginErrorExampleVBS -->


<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio
6.0">
<TITLE>Error Handling Example (VBScript)</TITLE>
</HEAD>
<BODY>
<h1>Error Handling Example (VBScript)</h1>
<%
Dim cnn1
Dim errLoop
Dim strError
On Error Resume Next
' Intentionally trigger an error.
Set cnn1 = Server.CreateObject("ADODB.Connection")
cnn1.Open "nothing"

L nh Duy - H KHTN Tp. HCM

219

220

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

If cnn1.Errors.Count > 0 Then


' Enumerate Errors collection and display
' properties of each Error object.
For Each errLoop In cnn1.Errors
strError = "Error #" & errLoop.Number & "<br>" & _
" " & errLoop.Description & "<br>" & _
" (Source: " & errLoop.Source & ")" & "<br>" & _
" (SQL State: " & errLoop.SQLState & ")" & "<br>" & _
" (NativeError: " & errLoop.NativeError & ")" & "<br>"
If errLoop.HelpFile = "" Then
strError = strError & _
" No Help file available" & _
"<br><br>"
Else
strError = strError & _
" (HelpFile: " & errLoop.HelpFile & ")" & "<br>" & _
" (HelpContext: " & errLoop.HelpContext & ")" & _
"<br><br>"
End If

c hin th
1)*nPageSize+1

trang

ny

l:

(nPageNum-

Tng s mu tin c tr v. Thng tin ny gip ta tnh c


tng s trang phi hin th. Nu tng s mu tin c tr v l
nMaxRecords, kch thc mi trang l nPageSize, th tng s
trang s l: (nMaxRecords+nPageSize-1) div nPageSize
Tuy nhin, khi s dng cc thuc tnh ca i tng Recordset,
ta ch cn cung cp cc thng tin lin quan n kch thc trang
(Recordset.PageSize)
v
s
th
t
trang
m
thi
(Recordset.AbsolutePage). Thng tin v tng s mu tin c tr v
ly t Recordset.RecordCount, s lng cc trang ly t
Recordset.PageCount.
V d sau minh ha vic phn trang khi d liu ln:
<%
Title = Request("fmTITLE")
Author = Request("fmAUTHOR")
Publisher = Request("fmPUBLISHER")
YearPub = Request("fmYEARPUB")

Response.Write("<p>" & strError & "</p>")


Next
End If
%>
</BODY>
</HTML>
<!-- EndErrorExampleVBS -->

7.3. Phn trang khi hin th kt qu


Trong trng hp d liu tr v qu ln, ngi ta thng c xu
hng phn trang d liu tin theo di. c th phn trang
c, ta cn phi lu mt s vn sau:
Kch thc ca mi trang hay s lng cc mu tin cn hin
th trn mi trang.
S th t trang: Thng tin ny dng xc nh v tr mu tin
bt u s c hin th trong trang ny. V d, nu kch
thc mi trang l nPageSize, th nu ta hin th trang th
nPageNum (nPageNum=1, ..), v tr ca mu tin u tin s

L nh Duy - H KHTN Tp. HCM

trong

221

PageNum = Request ("PageNum") ' Hien thi trang thu may


if PageNum = "" then
PageNum = 1
else
PageNum = Cint(PageNum)
end if
PageSize= Cint(Request("PageSize")) ' Kich thuoc cua trang
%>
<%
' ket noi voi CSDL
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ= "
& Server.MapPath("WebLibDB.mdb")
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
' thao tac tren CSDL
strSQL = "SELECT *
strSQL = strSQL & "
'%activeX%'
strSQL = strSQL & "
"%'"
strSQL = strSQL & "
& "%'"

222

FROM EDOC WHERE "


TITLE LIKE " & "'%" & Title & "%'"

'like

AND " & " AUTHOR LIKE " & "'%" & Author &
AND " & " PUBLISHER LIKE " & "'%" & Publisher

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

strSQL = strSQL & " AND " & " YEARPUB LIKE " & "'%" & YearPub &
"%'"
set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorType = 3
rs.CursorLocation = 3 aduseclient
rs.ActiveConnection = Conn
rs.Open strSQL
rs.Pagesize = PageSize
rs.Absolutepage = PageNum
TotalPage = Cint(rs.PageCount)
if rs.eof then
Response.Write "No records is matched!"
Response.End
end if
%>
Total Page: <%=rs.RecordCount%>
<p> Page </p>
<%
sURL = Request.ServerVariables("SCRIPT_NAME")
sURL= sURL & "?fmTITLE=" & Title
sURL= sURL & "&fmAUTHOR=" & Author
sURL= sURL & "&fmPUBLISHER=" & Publisher
sURL= sURL & "&fmYEARPUB=" & YearPub
sURL= sURL & "&PageSize=" & PageSize
for i=1 to TotalPage
if i<10 then
Response.Write "<a href='" & sURL & "&PageNo=" & i & "'>" &
"0" & i & "</a>" & " "
else
Response.Write "<a href='" & sURL & "&PageNo=" & i & "'>" &
i & "</a>" & " "
end if
next
%>
<TABLE border="1" cellpadding="0" cellspacing="0" width="1000"
>
<tr>
<td width="50" align="center"><b>No</b></td>
<td width="100" align="center"><b>ISBN</b></td>
<td width="300" align="center"><b>Title</b></td>
<td width="250" align="center"><b>Abstract</b></td>
<td width="150" align="center"><b>Authors</b></td>
<td width="100" align="center"><b>Publisher</b></td>
<td width="50" align="center"><b>Year</b></td>
L nh Duy - H KHTN Tp. HCM

223

</tr>
<%
i=1
do while (not rs.eof) AND (i<=PageSize)
%>
<tr>
<td width="50"><%=i%>&nbsp;</td>
<td width="100"><%=rs("ISBN")%>&nbsp;</td>
<td width="300"><%=rs("TITLE")%>&nbsp;</td>
<td width="250"><%=rs("ABSTRACT")%>&nbsp;</td>
<td width="150" ><%=rs("AUTHOR")%>&nbsp;</td>
<td width="100" ><%=rs("PUBLISHER")%>&nbsp;</td>
<td width="50"><%=rs("YEARPUB")%>&nbsp;</td>
</tr>
<%
i = i+1
rs.movenext
loop
%>
</TABLE>
Total Page: <%=rs.RecordCount%>
<p> Page </p>
<%
sURL = Request.ServerVariables("SCRIPT_NAME")
sURL= sURL & "?fmTITLE=" & Title
sURL= sURL & "&fmAUTHOR=" & Author
sURL= sURL & "&fmPUBLISHER=" & Publisher
sURL= sURL & "&fmYEARPUB=" & YearPub
sURL= sURL & "&PageSize=" & PageSize
for i=1 to TotalPage
if i<10 then
Response.Write "<a href='" & sURL & "&PageNo=" & i & "'>" &
"0" & i & "</a>" & " "
else
Response.Write "<a href='" & sURL & "&PageNo=" & i & "'>" & i
& "</a>" & " "
end if
next
%>
<%
' giai phong tai nguyen
rs.Close
set rs = Nothing
Conn.Close
set Conn = Nothing
%>

224

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

8. I TNG FILE SYSTEM OBJECT


i tng FileSystemObject cung cp cc thuc tnh v
phng thc x l tp tin, th mc, a, ...
Cng ging nh ADO, i tng FileSystemObject khng phi l
i tng c xy dng sn ca ASP. Do , to mt th hin
ca i tng FileSystemObject, ta dng phng thc
Server.CreateObject(Scripting.FileSystemObject).
V
d:
set fso = Server.CreateObject(Scripting.FileSystemObject)
Cc thuc tnh v phng thc dng truy xut n a l:
DriveLetter,
DriveName,
TotalSize,
FreeSpace,
Path,
ShareName, VolumeName, GetDriver, ... V d:
<%
Sub ShowDriveInfo(drvPath)
Dim fso, drv, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set drv = fso.GetDrive(fso.GetDriveName(drvPath))
s = "Drive " & UCase(drvPath) & " - "
s = s & drv.VolumeName & "<br>"
s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)
s = s & " Kb" & "<br>"
s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)
s = s & " Kb" & "<br>"
Response.Write s
End Sub

%>
Cc thuc tnh v phng thc dng thao tc trn th mc:
CreateFolder, DeleteFolder, CopyFolder, MoveFolder, GetFolder,
... V d:
<%
Sub ShowFolderInfo()
Dim fso, fldr, s
' Get instance of FileSystemObject.
Set fso = CreateObject("Scripting.FileSystemObject")
' Get Drive object.
Set fldr = fso.GetFolder("c:")
' Print parent folder name.
Response.Write "Parent folder name is: " & fldr & "<br>"
' Print drive name.
Response.Write "Contained on drive " & fldr.Drive & "<br>"
' Print root file name.
If fldr.IsRootFolder = True Then
L nh Duy - H KHTN Tp. HCM

Response.Write "This is the root folder." & ""<br>"<br>"


Else
Response.Write "This folder isn't a root folder." & "<br><br>"
End If
' Create a new folder with the FileSystemObject object.
fso.CreateFolder ("C:\Bogus")
Response.Write "Created folder C:\Bogus" & "<br>"
' Print the base name of the folder.
Response.Write "Basename = " & fso.GetBaseName("c:\bogus") &
"<br>"
' Delete the newly created folder.
fso.DeleteFolder ("C:\Bogus")
Response.Write "Deleted folder C:\Bogus" & "<br>"
End Sub
%>

Cc thuc tnh v phng thc dng thao tc trn tp tin :


CreateTextFile, OpenTextFile, Write, WriteLine, WriteBlankLines,
Read, ReadLine, ReadAll, MoveFile, CopyFile, DeleteFile, ... V d:
<%
Sub CreateFile()
Dim fso, tf
Set fso = CreateObject("Scripting.FileSystemObject")
Set tf = fso.CreateTextFile("c:\testfile.txt", True)
' Write a line with a newline character.
tf.WriteLine("Testing 1, 2, 3.")
' Write three newline characters to the file.
tf.WriteBlankLines(3)
' Write a line.
tf.Write ("This is a test.")
tf.Close
End Sub
Sub ReadFiles
Dim fso, f1, ts, s
Const ForReading = 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
' Write a line.
Response.Write "Writing file <br>"
f1.WriteLine "Hello World"
f1.WriteBlankLines(1)
f1.Close
' Read the contents of the file.
Response.Write "Reading file <br>"
Set ts = fso.OpenTextFile("c:\testfile.txt", ForReading)

225

226

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

s = ts.ReadLine
Response.Write "File contents = '" & s & "'"
ts.Close
End Sub
Sub ManipFiles
Dim fso, f1, f2, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
Response.Write "Writing file <br>"
' Write a line.
f1.Write ("This is a test.")
' Close the file to writing.
f1.Close
Response.Write "Moving file to c:\tmp <br>"
' Get a handle to the file in root of C:\.
Set f2 = fso.GetFile("c:\testfile.txt")
' Move the file to \tmp directory.
f2.Move ("c:\tmp\testfile.txt")
Response.Write "Copying file to c:\temp <br>"
' Copy the file to \temp.
f2.Copy ("c:\temp\testfile.txt")
Response.Write "Deleting files <br>"
' Get handles to files' current location.
Set f2 = fso.GetFile("c:\tmp\testfile.txt")
Set f3 = fso.GetFile("c:\temp\testfile.txt")
' Delete the files.
f2.Delete
f3.Delete
Response.Write "All done!"
End Sub
%>

9. GI EMAIL BNG CDONTS


Trong cc ng dng web, ta c th s dng CDONTS gi v
nhn th in t. V d sau minh ha thao tc gi email t ng dng
web.
Trang cdonts_advInput.htm s hin th form cho ging nh
giao din gi email ca cc chng trnh email thng thng khc:

L nh Duy - H KHTN Tp. HCM

227

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Language" CONTENT="en-us">
<META NAME="GENERATOR" CONTENT="Microsoft
FrontPage 4.0">
<META NAME="ProgId" CONTENT="FrontPage.
Editor.Document">
<TITLE>CDO for NTS -Simple Input Page</TITLE>
</HEAD>
<BODY>
<FORM METHOD="post" action="CDONTS_advInput.asp"
ID=FORM1 NAME="FrontPage_Form1"
ONSUBMIT="return FrontPage_Form1_Validator(this)">
<TABLE BORDER="0" WIDTH="100%">
<TR>
<TD VALIGN="top" ALIGN="left">From:</TD>
<TD VALIGN="top" ALIGN="left">
<P><!-- WEBBOT BOT="Validation"
STARTSPAN S-DISPLAY-NAME="From"
S-DATA-TYPE="String"
B-ALLOW-LETTERS="TRUE"
B-ALLOW-DIGITS="TRUE"
B-ALLOW-WHITESPACE="TRUE"
228

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

S-ALLOW-OTHER-CHARS="@."
B-VALUE-REQUIRED="TRUE"
I-MINIMUM-LENGTH="4" --><!-- WEBBOT
BOT="Validation" endspan-->
;<INPUT NAME="txtFrom" SIZE="45"></P>
</TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="left">To:</TD>
<TD VALIGN="top" ALIGN="left"><!-WEBBOT BOT="Validation" STARTSPAN
S-DISPLAY-NAME="To" S-DATA-TYPE="String"
B-ALLOW-LETTERS="TRUE"
B-ALLOW-DIGITS="TRUE"
S-ALLOW-OTHER-CHARS="@." B-VALUE-REQUIRED="TRUE"
I-MINIMUM-LENGTH="7" --><!-WEBBOT BOT="Validation" ENDSPAN --><INPUT
SIZE="45" ></TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="left">Cc:</TD>
<TD VALIGN="top" ALIGN="left">
<INPUT NAME="txtCc" SIZE="45"></TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="left">Bcc:</TD>
<TD VALIGN="top" ALIGN="left">
<INPUT NAME="txtBcc" SIZE="45"></TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="left">
Subject:</TD>
<TD VALIGN="top" ALIGN="left">
<INPUT NAME="txtSubject" SIZE="45"></TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="left">
Reply To:</TD>
<TD VALIGN="top" ALIGN="left">
<INPUT NAME="txtReplyTo" SIZE="45"></TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="left">
Importance:</TD>
<TD VALIGN="top" ALIGN="left">
<INPUT TYPE="radio" NAME="optImportance"
L nh Duy - H KHTN Tp. HCM

VALUE="2">
High&nbsp;&nbsp;&nbsp;
<INPUT TYPE="radio"
CHECKED NAME="optImportance"
VALUE="1">
Normal&nbsp;&nbsp;&nbsp;
<INPUT TYPE="radio"
NAME="optImportance" VALUE="0">Low</TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="left">
Message:</TD>
<TD VALIGN="top" ALIGN="left">
<TEXTAREA COLS=68 NAME=txtMessage ROWS=9>
Type your message here in text
or HTML format
To use HTML in the body of your message, make sure
to select HTML Body Type and MIME
Encoding</TEXTAREA></TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="left">
Body Type:</TD>
<TD VALIGN="top" ALIGN="left">
<INPUT TYPE="radio" NAME="optMsgType" VALUE="1"
TABINDEX="1" checked>
MIME&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT TYPE="radio"
NAME="optMsgType" VALUE="0" TABINDEX="2">HTML</TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="left">
Encoding:</TD>
<TD VALIGN="top" ALIGN="left">
<INPUT TYPE="radio" NAME="optMsgEncode"
VALUE="0">MIME&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT TYPE="radio"
NAME="optMsgEncode" VALUE="1" checked>TEXT</TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="left"
COLSPAN="2"><FONT FACE="MS Sans Serif"
SIZE=1>Attach File:&nbsp;
<INPUT NAME="txtattfile" TYPE="file"
SIZE="55"></FONT></TD>

229

230

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

</TR>
<TR>
<TD VALIGN="top" ALIGN="left"
COLSPAN="2"><FONT FACE="MS Sans Serif"
size="1">Encode
Attachment: </FONT>
<INPUT TYPE="radio"
NAME="optAttEncode" VALUE="0" checked>UUENCODE
<INPUT TYPE="radio"
NAME="optAttEncode" VALUE="2">
<FONT FACE="MS Sans Serif"
size=1>Base 64</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" ALIGN="left"
COLSPAN="2">
<P ALIGN="center">
<INPUT TYPE="submit" VALUE="Send Message" NAME="btnSend"
TABINDEX="1">&nbsp;&nbsp;&nbsp;
<INPUT TYPE="reset" VALUE="
Clear " NAME="btnClear" TABINDEX="2"></P></TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>

</HEAD>
<BODY>
<%
Dim objMsg, strFrom, strTo,
strCc, strBcc, strReplyTo, strBody, _
strSubject, strFileName
Dim lngImportance, lngMsgFormat,
lngMsgEncode, lngAttEncode
strFrom = Trim(Request.Form("txtFrom"))
strTo = Trim(Request.Form("txtTo"))
strCc = Trim(Request.Form("txtCc"))
strBcc = Trim(Request.Form("txtBcc"))
strReplyTo = Trim(Request.Form("txtReplyTo"))
strSubject = Trim(Request.Form("txtSubject"))
strBody = Trim(Request.Form("txtMessage"))
lngImportance = Trim(Request("optImportance"))
lngMsgFormat = Trim(Request("optMsgType"))
lngMsgEncode = Trim(Request("optMsgEncode"))
lngAttEncode = Trim(Request("optAttEncode"))
strFileName = Trim(Request.Form("txtattfile"))

Trang cdonts_advInput.asp s hin th x l cc d liu nhp t


form ri to email gi i:
<%@ LANGUAGE="VBSCRIPT" %>
<%
Option Explicit
On Error Resume Next
Sub WriteHTML(strInput)
Response.Write(Server.HTMLEncode(strInput)
& "<BR>")
End Sub
%>
<HTML>
<HEAD>
<META NAME="GENERATOR"
Content="Microsoft FrontPage 4.0">
<TITLE>Send CDONTS Simple Input</TITLE>
L nh Duy - H KHTN Tp. HCM

Set objMsg = Server.CreateObject("CDONTS.NewMail")


If Len(Trim(strReplyTo)) > 0 Then
objMsg.Value("Reply-To")=strReplyTo
End If
objMsg.From = strFrom
objMsg.To = strTo
objMsg.Cc = strCc
ObjMsg.Bcc = strBcc
objMsg.Subject = strSubject
objMsg.Importance = lngImportance
objMsg.BodyFormat = lngMsgFormat
objMsg.MailFormat = lngMsgEncode
objMsg.Body = strBody
If Len(Trim(strFileName)) > 0 Then
objMsg.AttachFile strFileName, , lngAttEncode
End If
objMsg.Send
Set objMsg = Nothing
WriteHTML("The following message was sent via
CDO for NTS:")

231

232

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

WriteHTML("From: " &strFrom)


WriteHTML("To: " &strTo)
WriteHTML("Cc: " &strCc)
WriteHTML("Bcc: " &strBcc)
WriteHTML("Reply To: " &strReplyTo)
WriteHTML("Subject: " &strSubject)
WriteHTML("Body: " &strBody)
WriteHTML("Importance: " &lngImportance)
WriteHTML("Message Format: " &lngMsgFormat)
WriteHTML("Message Encode: " &lngMsgEncode)
WriteHTML("File Attachment: " &strFileName)
WriteHTML("File Attachment Encode: " &lngAttEncode)

10.2. Bo v m asp
bo v cc on m c vit trong cc trang asp, ta dng
mt cng c gi l ScriptEncoder c cung cp bi Microsoft
http://msdn.microsoft.com/scripting/.
V d sau minh ha vic mt on m c vit trong trang asp.

%>
<HR>
Send another message with <A HREF =
"cdonts_advInput.htm">
advanced features</A><BR>
Send another message with <A HREF =
"cdonts_simpleInput.htm">
basic features</A>
</BODY>
</HTML>

10. MT S K THUT KHC


10.1. Chn tp tin
chn mt tp tin vo tp tin asp hin hnh, ta dng t dn
hng #include. C hai cch xc nh ng dn n tp tin cn
chn vo tp tin hin hnh:
S dng t kha virtual ch ra ng dn n tp tin cn
chn vo bt u bng th mc o. V d, nu mt tp tin c
tn l Footer.inc nm trong th mc o /Myapp, dng lnh
sau s chn ni dung tp tin Footer.inc vo tp tin hin hnh:
<!-- #include virtual ="/myapp/footer.inc" -->
S dng t kha file ch ra ng dn tng i n tp
tin cn chn. V d, nu tp tin Header1.inc nm trong th
mc Myapp\Headers, th tp tin nm trong th mc Myapp s
cha dng lnh sau khi mun chn tp tin Header1.inc vo:
<!-- #include file ="headers\header1.inc" -->

L nh Duy - H KHTN Tp. HCM

233

<HTML>
<HEAD>
<TITLE>Script Encoder Sample Page</TITLE>
<SCRIPT LANGUAGE="JScript">
<!--//
//Copyright 1998 Microsoft Corporation.
//**Start Encode**
function verifyCorrectBrowser(){
if(navigator.appName == "Microsoft Internet Explorer")
if (navigator.appVersion.indexOf ("5.") >= 0)
return(true);
else
return(false);
}
function getAppropriatePage(){
var str1 = "Had this been an actual Web site, a page compatible
with ";
var str2 = "browsers other than ";
var str3 = "Microsoft Internet Explorer 5.0 ";
var str4 = "would have been loaded.";
if (verifyCorrectBrowser())
document.write(str1 + str3 + str4);
else
document.write(str1 + str2 + str3 + str4);
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="getAppropriatePage()">
</BODY>
</HTML>

Sau khi trang ny c m ha bng tin ch ScriptEncoder, n


s c ni dung nh sau
HTML>
<HEAD>
<TITLE>Script Encoder Sample Page</TITLE>
<SCRIPT LANGUAGE="JScript.Encode">
<!--//

234

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

//Copyright 1998 Microsoft Corporation.


//**Start Encode**#@~^QwIAAA==@#@&0;mDkWP7nD
b0zZKD.n1YAMGhk+Dvb`@#@&P,kW`UC7kLlDGDcl22gl:n~
{'~Jtr1DGkW6YP&xDnD+OPA62sKD+ME#@#@&P,~~
k6PvxC\rLmYGDcCwa.n.kkWU bx[+X66Pcr*cJ#,@
*{~!*P~P,P~. YEMU`DDE bIP,P,+s/n@#@&P~P,~PM+O;
Mx`WC^/n#pN6EU1YbWx,o Obaw.WaDrCD+nmL+v#@#@&
~P7lMPdY.q,'~J_CN,Y4rkP4nnPCx,C1Y;mV, +(PkrY ~~l,
wCL PmKhwmYk(snPSkDt~JI@#@&P~\m.PkY.+,
'PE8MWA/ .kPGDt DPDtmUPri@#@&,P-CMP/D.&,
'Pr\rmMWkWWY~(YnDnY,2a2^WDn.,* !,Ep@#@&,P7lD,/D.c,
'~JSW;s9Ptm-+,4+ U~VKl9+[REI,Pr0,c\ DrWHZW.
. mOAMGS/nM`*#@#@&P,~P9W^Es+UOchDbO+v/YMq~
_,/DDfPQ~kY.c*IP,+sd @#@&~~,P[W1;s+UDRSDkD+vdY
MF~_,/O.yP_,dYM&P3~dYMc*iNz&R @*^#~@
//-->
</SCRIPT>
</HEAD>
<BODY onload="getAppropriatePage()">
</BODY>
</HTML>

Bi tham kho

HIN TH HNH NH T C S D
LIU TRONG CC NG DNG WEB
1. Gii thiu
Vic lu tr v hin th hnh nh t CSDL trong cc ng dng
web l cn thit. V d nh cc ng dng qun l h s ca nhn
vin, ngoi thng tin bng vn bn nh H tn, a ch, bng cp,
s rt cn thit nu c thm d liu v nh ca nhn vin. Hay trong
cc ng dng bn hng, bn cnh thng tin v sn phm nh Tn
sn phm, phn loi sn phm, gi c, hnh nh trc quan v sn
phm cng rt cn thit gip cho ngi dng d dng hn khi
chn la,
Thng thng ngi ta dng mt trong hai cch t c
mc ch ny. Cch th nht l lu tr tp tin hnh nh trn mt th
mc ring, trong CSDL ngoi d liu vn bn ch lu ng dn n
tp tin hnh nh. Cch th hai l lu tr c d liu hnh nh v vn
bn trong cng mt bn ghi trong CSDL.
Cch tip cn th nht thng c dng hn v CSDL c kch
thc nh v thao tc hin th kh n gin thng qua tag IMG vi
thuc tnh SRC c gn bng thng tin v ng dn n tp tin
hnh nh c trong CSDL. Hn ch ca cch tip cn ny l i
hi d liu nh phi c lu tr trn webserver hoc mt my
tnh no m webserver c th truy cp c. Trong cc ng
dng m c s d liu c th c sao lu nhiu bn phn tn,
ri ro s xy ra nu cc tp tin hnh nh khng c sao lu theo
ng ng dn sn c.
Cch tip cn th hai do lu tr hnh nh trong CSDL nh l d
liu nh phn nn s dn n hn ch l lm cho kch thc ca
CSDL tng ln ang k. Nhng b li, d liu hnh nh v vn bn
chung mt ni nn c th dng cho cc CSDL c sao lu nhiu
ni. lu tr d liu hnh nh trn cc h qun tr CSDL ta phi
dng cc kiu d liu dng nh phn cho n. V d, trong MS SQL
Server l kiu d liu image, trong MS Access l kiu d liu OLE
Object.

L nh Duy - H KHTN Tp. HCM

235

236

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

2. Hin th hnh nh c trong CSDL


Nu dng cch tip cn th nht, ta s to ra trong bng d liu
mt trng tn chng hn l IMAGE_URL lu tr ng dn n
tp tin hnh nh, v d nh l: images/id1234.gif. hin th hnh
nh ny trong trang web, n gin ch cn dng tag IMG vi thuc
tnh SRC c gn bng d liu trong trng ImageURL nh:
Response.Write("<IMG SRC="" & rs("IMAGE_URL") & """>").
Nu dng cch tip cn th hai, ta s to ra trong bng d liu
mt trng c tn chng hn l APP_IMGDATA lu tr d liu
hnh nh di dng nh phn. Sau , hin th hnh nh ny ln,
ta thc hin tun t cc bc sau:
c d liu hnh nh lu trong ImgData vo recordset.
Gn thuc tnh ContentType ca i tng Response tng
ng vi nh dng nh lu tr. Nu lu tp tin di dng .gif,
ta t Response.ContentType=image/gif.
S dng hm Response.BinaryWrite ghi ni dung d liu
ca hnh nh ra.
Gi s ta dng CSDL l MS Access vi tp tin CSDL l
DB_USERS c lu trong th mc APP_DB, bng d liu
APP_USERS c dng lu thng tin ca ngi dng v hnh
nh tng ng. on m sau ca tp tin showimage.asp minh ha
cc bc trn:
showimage.asp
<%
kt ni vi CSDL
strDSN = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ng dn tng i n tp tin CSDL
strDSN = strDSN & Server.MapPath("app_db/db_users.mdb")
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
gi s cn hin th hnh nh lu trong bn ghi
c trng APP_USERID bng vUserID
strSQL = SELECT * FROM APP_USERS WHERE
strSQL = strSQL & APP_USERID = & vUserID
c d liu hnh nh vo recordset
Set rs = Conn.Execute(strSQL)
gn thuc tnh ContentType l image/gif
Response.ContentType = image/gif
ghi d liu hnh nh ra tp tin chuyn xung client
L nh Duy - H KHTN Tp. HCM

%>

Response.BinaryWrite(rs(APP_IMGDATA))
rs.close
set rs = nothing
Conn.close
set Conn = nothing

Vi on m trn do ta t ni dung chuyn xung cho trnh


duyt l image/gif nn khng th va cng hin th d liu vn bn
va hin th hnh nh c.

3. Ti tp tin nh ln CSDL
c th ti cc tp tin d liu ln server, thng thng ta dng
cc component c vit sn h tr cho vic ny. Mt trong
cc component cung cp min ph l aspSmartUpload
(http://www.aspsmart.com/aspSmartUpload/). Hai vn cn lu
khi s dng cc component dng ny l form trong trang dnh cho
ngi dng nhp phi c t thuc tnh ENCTYPE l
multipart/form-data v trang x l upload phi dng i tng Form
ca cc component ly d liu v thay cho Request.Form. Vi
aspSmartUpload ta c th ti ng thi nhiu tp tin ln server, thm
ch c th hn ch kch thc tp tin, kiu tp tin, s c dng
ti. V d sau minh ha vic ti d liu ln CSDL bng cch dng
tp tin upload.htm cho php ngi dng ch nh tp tin cn upload,
tp tin upload.asp dng lu d liu tp tin cn upload vo mt
trng trong bng CSDL hoc lu thnh mt tp tin trong th mc
no :
upload.htm
<H1>aspSmartUpload : Sample </H1>
<HR>
<FORM
method="POST"
enctype="multipart/form-data">
<input type="FILE" name ="FILE1" ><br>
<input type="submit" value="Upload">
</FORM>

237

238

action="upload.asp"

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

upload.asp
<%
' to i tng aspSmartUpload
Set
mySmartUpload
Server.CreateObject("aspSmartUpload.SmartUpload")
' upload tp tin
mySmartUpload.Upload
kt ni vi CSDL
strDSN = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
ng dn tng i n tp tin CSDL
strDSN = strDSN & Server.MapPath("app_db/db_users.mdb")
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN

%>

Email: ledduy@ieee.org

4. Kt lun
=

Bi vit va trnh by cc hai thao tc c bn cho vic qun l


hnh nh trong c s d liu ca cc ng dng web. Thao tc th
nht lin quan n n vic chn hnh thc lu tr d liu nh, thao
tc th hai lin quan n vic ti cc hnh nh ln server. Lu tr d
liu nh di dng l mt trng c s d liu s lm cho kch
thc c s d liu ln, vic x l kh phc tp nhng c thun li
trong trng hp ng dng c thit k cho vic s dng phn
tn. n gin v thng c dng hn c l lu tr cc tp tin
hnh nh trong mt th mc nh trc trn server v lu tr ng
dn n tp tin ny trong c s d liu.

set rs = Server.CreateObject(ADODB.Recordset)
set rs.ActiveConnection = Conn
rs.Source = app_users
rs.LockType = 3
rs.Open
rs.close
For each file In mySmartUpload.Files
If NOT file.IsMissing then nu tp tin tn ti
rs. AddNew
lu di dng mt field trong CSDL
file.FileToField rs.Fields(APP_IMGDATA)
lu di dng mt tp tin trn th mc ca server
vi ng dn tuyt i
file.SaveAs("c:\temp\" & file.FileName)
lu di dng mt tp tin trn th mc ca server
vi ng dn tng i so vi th mc webroot
file.SaveAs("dbimages/upload"
&
file.FileName)

rs.Update
End if
Next
rs.close
set rs = nothing
Conn.close
set Conn = nothing

L nh Duy - H KHTN Tp. HCM

239

240

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Bi tham kho

Vic chng thc ngi dng s c thng qua mt trang ng


nhp (v d l trang login.htm). Trang ny s yu cu ngi dng
nhp thng tin v tn ng nhp v mt khu. Sau mt on m
(trang login.asp) s c dng kim tra thng tin ngi dng va
nhp c trng khp vi d liu c lu tr trn CSDL hay khng.
Nu thng tin trng khp, gi tr ca bin blLoginOK s c chuyn
thnh True (lu ta phi thit lp bin blLoginOK c gi tr mc nh
l False).

PHNG PHP H TR GII HN


TRUY CP TRANG WEB
1. Gii thiu
Thng thng, trong cc ng dng web, ngi thit k mun
gii hn s truy cp n mt s trang web thng qua vic chng
thc ngi dng (authentication) nhm mc ch cho php nhng
ngi c quyn thc s mi c php truy cp v thc hin mt
s trang web no . V d cc trang web dng cho vic cp nht
CSDL t xa ch cho php ngi qun tr thc hin hay trong cc ng
dng nh din n tho lun, thng thng cc trang gi bi mi
ch cho php nhng ngi ng k thc hin m thi,
t c mc ch ny, c hai cch tip cn:
Dng chc nng bo mt ca h thng: Cch ny gii hn
quyn truy cp n cc trang web cn bo v bng quyn trn
h thng tp tin NTFS. V d, nu mun gii hn quyn truy
cp n tp tin admin.asp, ta xc lp quyn cho mt ngi
dng no c quyn c, thi hnh m thi. Cch ny c
hn ch l ngi dng trang web phi c ti khon trn
server. iu ny s thc s kh khn khi a s cc ng dng
web thng c hosting ti cc server ca cc ISP.
Dng cc on m chng trnh t vit: Cch ny s dng
cookies (thng qua bin kiu Session) kt hp vi CSDL v
ngi dng lm vic ny! Cch lm ny cho php p ng
kh hon ho nhu cu bo mt cc trang web v tng thch
d dng trong trng hp hosting cc server khc nhau.

2. Bo v bng cc on m chng trnh t vit


tng chnh ca cch lm ny l ta s dng mt bin Session
c kiu l boolean k lu thng tin v ngi dng c chng
thc hay cha. Gi s ta t tn cho bin ny l blLoginOK, gi tr
True s tng ng vi ngi dng c chng thc v ngc
li.

L nh Duy - H KHTN Tp. HCM

241

Trong cc trang cn hn ch truy cp, ta ch cn kim tra gi tr


ca bin ny l True hay False. Nu gi tr l True, ngi dng s
c php thc hin tip cc on m tip theo ca trang, cn
ngc li, ta s thng bo yu cu ngi dng chng thc thng
qua mt trang ng nhp trc khi tip tc.
Cc bc thc hin tun t nh sau:
Bc 1: To c s d liu cha thng tin v ngi dng
Gi s ta dng MS Access to c s d liu c tn l
DB_USERS.MDB, trong ta to mt bng d liu c tn l
APP_USERS. Hai trng chnh ca bng d liu ny l
APP_USERNAME
v
APP_PASSWORD.
Nu
t
APP_USERNAME nh l kha chnh th mt ngi dng s c
xc nh bng mt tn ng nhp duy nht. Tt nhin, ta c th to
thm cc trng khc qun l nh H Tn, a ch Email (c th
s cn gi email khi qun mt khu), Ln ng nhp cui cng,
Thi gian s dng h thng, Sau khi to xong, gi s tp tin ny
c lu ti th mc APP_DB.
Bc 2: To trang ng nhp login.htm yu cu ngi dng
nhp thng tin v tn ng nhp v mt khu:
Login.htm
<FORM action=login.asp method=POST>
Username: <input type="text" name="fmUserName"
size="20"><br>
Password: <input type="password" name="fmPassword"
size="20"><br>
<input type="submit" value="Submit" name="btnSubmit">
<input type="reset" value="Reset" name="btnReset">
</FORM>

242

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Bc 3: To trang login.asp kim tra thng tin ngi dng va


nhp c trng khp vi thng tin c sn trn CSDL hay khng. Nu
trng khp, gi tr bin blLoginOK s c chuyn thnh True.

end if
%>

3. Kt lun

Login.asp
<%
On Error Resume Next
vUserName = Request.Form(fmUserName)
Thay th du nhy n thnh hai du nhy n trnh li SQL
injection
vUserName = Replace(vUserName, , )
vPassword = Request.Form(fmPassword)
vPassword = Replace(vPassword, , )

Nhu cu hn ch ngi dng truy cp n mt s trang web no


trong ng dng l mt nhu cu thng xuyn khi xy dng cc
ng dng. Bng cch s dng bin Session v CSDL ca ngi
dng cng vi cc trang login.htm, login.asp, ta c th t c mc
ch trn mt cch d dng.

strDSN = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="


ng dn tng i n tp tin CSDL
strDSN = strDSN & Server.MapPath("app_db/db_users.mdb")
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
strSQL = SELECT * FROM APP_USERS WHERE
strSQL = strSQL & APP_USERNAME = & & vUserName &
strSQL = strSQL & AND & APP_PASSWORD = & &
vPassword &
Set rs = Conn.Execute(strSQL)
if rs.eof then ngi dng khng hp l
Response.Redirect(login.htm)
else
Session(blLoginOK) = True
end if
set rs = nothing
set Conn = nothing
%>

Bc 4: Trong cc trang web v d nh Admin.asp m ta ch mun


nhng ngi c chng thc mi c quyn s dng, t
on m kim tra bin blLoginOK l True hay False ngay u trang:
Admin.asp
<%
if (Session(blLoginOK) <> True) then
Response.Redirect(login.htm)
L nh Duy - H KHTN Tp. HCM

243

244

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Bi tham kho

BO V C S D LIU ACCESS
TRONG CC NG DNG WEB
Cc ng dng web s dng CSDL Access thng hay t tp
tin CSDL .mdb vo mt th mc c th truy cp c t web, v d
nh: D:\inetpub\wwwroot\myDB.mdb. iu nguy him nht theo
cch lm thng thng ny l nu ngi dng bit c hay on
c ng dn n tp tin .mdb, h c th ti tp tin CSDL v
v ton b thng tin lu tr trn CSDL b nh cp.
bo v CSDL Access trong cc ng dng web, nn kt hp
cc phng n an ton sau:

1. Phng n 1: t tp tin CSDL .mdb vo th mc


c khng c quyn truy cp t Web.
Gi s ta c website c th mc webroot l D:\inetpub\wwwroot\.
Th
mc
cha
tp
tin
CSDL
v
d
l:
D:\inetpub\wwwroot\Site1\data\myDB.mdb. Mc nh nu ngi
dng
on
c
ng
dn
ny:
http//www.yourserver.com/site1/data/myDB.mdb, h c th ti c
tp tin CSDL ny v bi v thng thng cc tp tin trong th mc
ny c thit lp quyn Read.
hn ch khng cho php ngi dng ti tp tin CSDL v, ta
s b quyn Read c thit lp trong th mc ny bng cch dng
tin ch Internet Service Manager.

Thao tc ny khng nh hng g n vic cc on m ASP


truy cp n CSDL do thit lp ny c t mc webserver ch
khng phi mc h thng tp tin NTFS. Ngha l cc on m
ASP vn hot ng bnh thng nh trc. im khc duy nht l
ngi dng khng th ti c tp tin CSDL d bit ng dn n
n m thi.

2. Phng n 2: t tp tin CSDL .mdb ti ni m ch


truy cp c mc server-side
tng chnh ca phng n ny l t tp tin CSDL trong mt
th mc c cp cao hn th mc webroot ca webserver. V d, nu
th mc D:\inetpub\wwwroot\ l webroot ca webserver, ta c th
to mt th mc private t ti D:\inetpub\private v t tp tin
CSDL vo y. Bng cch ny, ngi dng client khng th no truy
cp n th mc private ny ti CSDL v. Lc ny, ng dn
n tp tin CSDL trong chui DSN s c chnh li nh sau:

L nh Duy - H KHTN Tp. HCM

245

246

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Nu dng ng dn tuyt i: sFileName = D:\inetpub\private


Nu

dng
ng
dn
tng
i:
sFileName = Server.MapPath(/)
tr v gi tr
D:\inetpub\wwwroot
sFileName = Replace(sFileName, wwwroot, private)
sFileName = sFileName & myDB.mdb

Bi tham kho

BO V NG DNG WEB CHNG TN


CNG KIU SQL INJECTION

1. SQL Injection l g?
Vic thit k v a vo hot ng mt website lun i hi cc
nh pht trin phi quan tm n cc vn v an ton, bo mt
nhm gim thiu ti a kh nng b tn cng t cc tin tc. Tuy
nhin, thng thng cc nh pht trin a s tp trung vo cc vn
an ton trong vic chn h iu hnh, h qun tr CSDL,
webserver s chy ng dng, ... V d, ngi ta thng quan tm
nhiu n cc l hng v an ton trn IIS hn l quan tm n cc
on m ca ng dng c tim n cc l hng nghim trng hay
khng. Mt trong s cc l hng ny l SQL injection attack.
SQL injection l mt k thut cho php nhng k tn cng thi
hnh cc cu lnh truy vn SQL bt hp php (khng c ngi
pht trin lng trc) bng cch li dng l hng trong vic kim
tra d liu nhp trong cc ng dng web. Hu qu ca n rt tai hi
v n cho php nhng k tn cng c th thc hin cc thao tc xa,
hiu chnh, do c ton quyn trn c s d liu ca ng dng. Li
ny thng xy ra trn cc ng dng web c d liu c qun l
bng cc h qun tr CSDL nh SQL Server, Oracle, DB2, Sysbase.
Xt mt v d in hnh, thng thng cho php ngi dng
truy cp vo cc trang web c bo mt, h thng thng xy
dng trang ng nhp yu cu ngi dng nhp thng tin v tn
ng nhp v mt khu. Sau khi ngi dng nhp thng tin vo, h
thng s kim tra tn ng nhp v mt khu c hp l hay khng
quyt nh cho php hay t chi thc hin tip.
Trong trng hp ny, ngi ta c th dng 2 trang, mt trang
HTML hin th form nhp liu v mt trang ASP dng x l
thng tin nhp t pha ngi dng. V d:
Login.htm
<form action="ExecLogin.asp" method="post">
L nh Duy - H KHTN Tp. HCM

247

248

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Username: <input type="text" name="txtUsername"><br>


Password: <input type="password" name="txtPassword"><br>
<input type="submit">
</form>

Mt v d khc ca SQL injection attack na l khi cc trang web


s dng d liu nhp vo theo dng querystring (bng cch g cp
tham s v gi tr trc tip trn thanh a ch hoc dng form vi
thuc tnh ACTION l GET). V d sau minh ha mt trang ASP
nhn d liu cho bin ID thng qua querystring v pht sinh ni
dung ca trang da trn ID:

ExecLogin.asp
<%
Dim p_strUsername, p_strPassword, objRS, strSQL

<%
Dim p_lngID, objRS, strSQL
p_lngID = Request("ID")

p_strUsername = Request.Form("txtUsername")
p_strPassword = Request.Form("txtPassword")

strSQL = "SELECT * FROM tblArticles WHERE ID=" & p_lngID

strSQL = "SELECT * FROM tblUsers " & _


"WHERE Username='" & p_strUsername & _
"' and Password='" & p_strPassword & "'"

Set objRS = Server.CreateObject("ADODB.Recordset")


objRS.Open strSQL, "DSN=..."
If (Not objRS.EOF) Then Response.Write objRS("ArticleContent")

Set objRS = Server.CreateObject("ADODB.Recordset")


objRS.Open strSQL, "DSN=..."

Set objRS = Nothing


%>

If (objRS.EOF) Then
Response.Write "Invalid login."
Else
Response.Write "You are logged in as " & objRS("Username")
End If

Trong cc tnh hung thng thng, on m ny hin th ni


dung ca article c ID trng vi ID c chuyn n cho n di
dng querystring. V d, trang ny c th c gi nh sau:
http://www.example.com/Article.asp?ID=1055, hin th ni
dung ca article c ID l 1055.

Set objRS = Nothing


%>

Thot nhn, on m trong trang ExecLogin.asp dng nh


khng cha bt c mt l hng v an ton no. Ngi dng khng
th ng nhp m khng c tn ng nhp v mt khu hp l. Tuy
nhin, on m ny thc s khng an ton v l tin cho mt
SQL injection attack. c bit, ch s h nm ch d liu nhp
vo t ngi dng c dng xy dng trc tip cu lnh truy
vn SQL. Chnh iu ny cho php nhng k tn cng c th iu
khin cu truy vn s c thc hin.
V d, nu ngi dng nhp chui sau vo trong c 2 nhp liu
username/password
ca
trang
Login.htm:
or = . Lc ny, cu truy vn s c gi thc hin l:

Cu truy vn SQL lc ny s tr v tt c cc article t bng d


liu v n s thc hin cu lnh:
SELECT * FROM tblArticles WHERE ID=0 or 1=1

Tt nhin v d ny dng nh khng c g nguy him, nhng


hy th tng tng k tn cng c th xa ton b CSDL bng
cch chn vo cc on lnh nguy him nh lnh DELETE. Tt c
ch l n gin thay i chui gn d liu cho ID, v d nh:
http://www.example.com/Article.asp?ID=1055;

SELECT * FROM tblUsers WHERE Username='' or ''='' and Password = '' or ''=''

Cu truy vn ny l hp l v s tr v tt c cc bn ghi ca
tblUsers v on m tip theo x l ngi dng ng nhp bt hp
php ny nh l ngi dng ng nhp hp l.
L nh Duy - H KHTN Tp. HCM

Ging nh v d ng nhp trc, on m ny l s h


cho mt SQL injection attack. K tn cng c th thay th mt ID
hp l bng cch gn ID cho mt gi tr khc, thc hin mt lnh
SQL bt hp php,
v d nh: 0 or 1=1 (ngha l,
http://www.example.com/Article.asp?ID=0 or 1=1).

249

DELETE

FROM

tblArticles.

250

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

thng nn trnh dng n cc quyn nh dbo hay sa. Quyn cng


b hn ch, thit hi cng t.

2. Cc tc hi v cch phng trnh


Tc hi t SQL Injection attack ty thuc vo mi trng v cch
cu hnh h thng. Nu ng dng s dng quyn dbo (quyn ca
ngi s hu CSDL - owner) khi thao tc d liu, n c th xa ton
b cc bng d liu, to cc bng d liu mi, Nu ng dng s
dng quyn sa (quyn qun tr h thng), n c th iu khin ton
b h qun tr CSDL v vi quyn hn rng ln nh vy n c th
to ra cc ti khon ngi dng bt hp php iu khin h
thng ca bn.
phng trnh cc nguy c c th xy ra, hy bo v cc cu
truy vn SQL l bng cch kim sot cht ch tt c cc d liu
nhp
nhn
c
t
i
tng
Request
(Request,
Request.QueryString,
Request.Form,
Request.Cookies,
and
Request.ServerVariables).

Cc ti liu tham kho


SQL Injection FAQ:
http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&tabid=3

Advanced SQL Injection :


http://www.nextgenss.com/papers/advanced_sql_injection.pdf
Preventing SQL Injection:
http://www.owasp.org/asac/input_validation/sql.shtml
Bin dch t:
http://www.4guysfromrolla.com/webtech/061902-1.shtml

Trong trng hp d liu nhp vo l chui, nh trong v d


1, li xut pht t vic c du nhy n trong d liu.
trnh iu ny, thay th cc du nhy n bng hm Replace
thay th bng 2 du nhy n:
p_strUsername = Replace(Request.Form("txtUsername"), "'", "''")
p_strPassword = Replace(Request.Form("txtPassword"), "'", "''")

Trong trng hp d liu nhp vo l s, nh trong v d 2,


li xut pht t vic thay th mt gi tr c tin on l d
liu s bng chui cha cu lnh SQL bt hp php.
trnh iu ny, n gin hy kim tra d liu c ng kiu hay
khng:
p_lngID = CLng(Request("ID"))

Nh vy, nu ngi dng truyn vo mt chui, hm ny s


tr v li ngay lp tc.
Ngoi ra trnh cc nguy c t SQL Injection attack, nn ch
loi b bt k thng tin k thut no cha trong thng ip chuyn
xung cho ngi dng khi ng dng c li. Cc thng bo li thng
thng tit l cc chi tit k thut c th cho php k tn cng bit
c im yu ca h thng.
Cui cng, gii hn mc ca SQL Injection attack, nn
kim sot cht ch v gii hn quyn x l d liu n ti khon
ngi dng m ng dng web ang s dng. Cc ng dng thng
L nh Duy - H KHTN Tp. HCM

251

252

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Chng 7

NG DNG MINH HA
CA HNG SCH TRC TUYN

TT Thuc tnh

Kiu DL

M t

BOOK_CATID

Number

M ch m sch thuc vo.


Qui c: Mi sch ch thuc v
mt ch duy nht

BOOK_AUTHOR Char(128)

Danh sch tn tc gi

BOOK_PUBID

Number

M nh xut bn, ni xut bn


cun sch ny

BOOK_YEAR

Number

Nm xut bn cun sch

BOOK_PIC

Char(255)

ng dn n tp tin lu nh
ba ca cun sch

BOOK_PRICE

Number

Gi tin

Number

nh gi v sch

1. Gii thiu v ng dng


Trong phn ny, chng ta s cng thc hnh to ra mt ng
dng ca hng sch trc tuyn trn mng. Ngi dng c th xem
cc cun sach c trong c s d liu, chn mua, t hng,

2. T chc website ng dng


To th mc C:\MyWebSite\BookStore trong C:\MyWebSite.
y l th mc cha tt c cc m ngun ca ng dng
To th mc C:\MyWebSite\BookStore\BookPic trong
C:\MyWebSite\BookStore, sau chp cc tp tin lu nh ba
ca cc sch vo th mc ny.Th mc ny dng lu cc
nh ba ca cc cun sch trong c s d liu.

10 BOOK_RATE
T_CATEGORY

To th mc C:\MyWebSite\BookStore\DB trong
C:\MyWebSite\BookStore, sau to tp tin
BookStoreDB.mdb trong th mc ny

TT

Thuc tnh

Kiu DL

3. Thit k d liu

CAT_ID

AutoNumber nh danh cho ch . Primary Key

Tp tin CSDL BookStoreDB.mdb bao gm 3 bng: T_BOOK,


T_CATEGORY, T_PUB lu tr thng tin v danh mc sch, ch
v nh xut bn nh sau:

CAT_NAME char(64)

Tn ch

CAT_DESC

M t ch

T_BOOK

T_PUB

char(255)

M t

TT Thuc tnh

Kiu DL

M t

TT

Thuc tnh

Kiu DL

M t

BOOK_ID

AutoNumber

nh danh cho mi cun sch.


Primary Key

PUB_ID

AutoNumber

nh danh cho nh xut bn.


Primary Key

BOOK_TITLE

Char(255)

Tn sch

PUB_NAME

char(64)

Tn nh xut bn

BOOK_DESC

Memo

Tm tt ni dung sch

L nh Duy - H KHTN Tp. HCM

253

254

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

TT

Thuc tnh

Kiu DL

M t

PUB_ADDR

char(255)

Thng tin v a ch NXB

strDSN = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" &


Server.MapPath("DB\BookStoreDB.mdb")
'create a connection object
Set Conn = Server.CreateObject("ADODB.Connection")

To relationship cho cc table v nhp liu cho cc bng d liu


trn

'open a connection using ODBC connection string


Conn.Open strDSN
%>

Lu rng, hm Server.MapPath(path) c dng nh x


ng dn path thnh ng dn n th mc vt l trn server. V
d ta c th mc Home Directory l C:\MyWebSite, th mc vt l
hin hnh ca tp tin dng hm Server.MapPath l
C:\MyWebSite\BookStore th:
Server.MapPath("BookStoreDB.mdb") s tr v
C:\MyWebSite\BookStore\BookStoreDB.mdb
Server.MapPath("DB/BookStoreDB.mdb") s tr v
C:\MyWebSite\BookStore\DB\BookStoreDB.mdb
Server.MapPath("/BookStoreDB.mdb") s tr v
C:\MyWebSite\BookStoreDB.mdb
Server.MapPath("../../BookStoreDB.mdb") s tr v
C:\BookStoreDB.mdb

5. Thao tc truy vn trn c s d liu


To tp tin listallbook.asp dng lit k cc cun sch c
trong CSDL

Hnh 1 Relationship gia cc bng

4. Kt ni vi c s d liu (CSDL)

Cc thao tc c bn

Do thao tc kt ni vi CSDL lun c dng trong cc tp tin


c nhu cu thao tc trn CSDL nn ta s t chc ring thnh mt tp
tin gi l dbconn.asp cha on m kt ni vi CSDL. Sau trong
cc tp tin cn dng ta s include tp tin ny vo.

Cu lnh SQL dng thc thi l: SELECT * FROM T_BOOK


Kt qu tr v ca cu lnh SELECT s l tp cc mu tin
cha trong bin Recordset. Ta s dng mt vng lp lit k
cc mu tin ny theo dng bng

m t ng dn n tp tin CSDL BookStoreDB to


trn, ta dng hm Server.MapPath.
To tp tin dbconn.asp vi on m nh sau:

<%@CODEPAGE=65001%>
<%Response.Charset = "utf-8"%>
<!--#include file="dbconn.asp"-->
<%

<%
'On Error Resume Next
L nh Duy - H KHTN Tp. HCM

on m ca tp tin listallbook.asp nh sau:

255

256

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Hai dng u tin m bo cho vic hin th ting Vit


Unicode (xem thm bi tham kho Lp trnh web ASP vi
ting Vit Unicode)

sPicPath = "BookPic/"
strSQL = "SELECT * FROM T_BOOK"
Set rs = Conn.Execute(strSQL)
%>
<table width="600" border="1" cellpadding="5" cellspacing="0"
style="border-collapse: collapse" bordercolor="#111111">
<tr align="center">
<td>TT</td>
<td>Tn sch</td>
<td>Tn tc gi</td>
<td>Nm XB</td>
<td>Gi tin</td>
<td>nh ba</td>
</tr>
<%
i=1
do while not rs.EOF
%>
<tr>
<td><%Response.Write i%></td>
<td><%Response.Write rs("BOOK_TITLE")%></td>
<td><%Response.Write rs("BOOK_AUTHOR")%></td>
<td><%Response.Write rs("BOOK_YEAR")%></td>
<td><%Response.Write rs("BOOK_PRICE")%></td>
<td><img src='<%Response.Write sPicPath &
rs("BOOK_PIC")%>'></td>
</tr>

Do cc tp tin nh ba tng ng vi cc cun sch c lu


trong th mc BookPic (lu trong bin sPicPath) nn ng
dn n cc tp tin ny phi l : sPicPath & rs("BOOK_PIC")
M rng on m trn sao cho trong bng kt qu tr v, c
thm thng tin ca nh xut bn, ch m cun sch thuc
v (xem bi gii tp tin listallbookext.asp)

6. Thao tc thm mt mu tin vo c s d liu


Gi s mun thm mt mu tin mi vo table T_BOOK vi cc
thng tin: Tn sch l "Thit k v lp trnh ng dng web bng
ASP", ch ca sch l Tin hc c ID l 1, tc gi l "L nh
Duy", nh xut bn l Thng k c ID l 3, nm xut bn 2001, tp
tin nh ba tn l ltwebasp.jpg.
Ta to tp tin addbook.asp nh sau:
<%@CODEPAGE=65001%>
<%Response.Charset = "utf-8"%>
<!--#include file="dbconn.asp"-->
<%
' get input data
vBookTitle = "Thit k v lp trnh ng dng web bng ASP"
vBookCatID = 1
vBookAuthor = "L nh Duy"
vBookPubID = 3
vBookYear = 2001
vBookPrice = 16000
vBookPic = "ltwebasp.jpg"

<%

rs.movenext
i=i+1
loop
%>
<%
rs.Close
Set rs = NOTHING
Conn.Close
Set Conn = NOTHING
%>

Do trong m chng trnh trn c ting Vit Unicode nn tp


tin cn c lu di dng Unicode (UTF-8)

L nh Duy - H KHTN Tp. HCM

257

' build SQL statement


strSQL = "INSERT INTO T_BOOK(BOOK_TITLE, BOOK_CATID,
BOOK_AUTHOR, BOOK_PUBID, BOOK_YEAR, BOOK_PRICE,
BOOK_PIC) "
strSQL = strSQL & "VALUES("
strSQL = strSQL & "'" & vBookTitle & "'" & ", "
strSQL = strSQL & vBookCatID & ", "
strSQL = strSQL & "'" & vBookAuthor & "'" & ", "
strSQL = strSQL & vBookPubID & ", "
strSQL = strSQL & vBookYear & ", "

258

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

strSQL = strSQL & vBookPrice & ", "


strSQL = strSQL & "'" & vBookPic & "'"
strSQL = strSQL & ")"
Response.Write "Thc hin thao tc to mi vi cu lnh SQL: " &
strSQL
' execute SQL statement
Conn.Execute strSQL
%>
<%
Conn.Close
Set Conn = NOTHING
%>

Thi hnh tp tin addbook.asp, sau thi hnh tp tin


listallbookext.asp xem li thng tin ca mu tin mi c
thm vo.
Lu rng trong cu lnh INSERT, cc d liu kiu chui
phi c ro quanh bi cp du nhy n (').
M rng on m trn bng cch to mt form nhp liu
nhp cc thng tin trn. Trong , chng trnh s lit k cc
ch , nh xut bn c trong CSDL trong mt dropdown
listbox ngi dng la chn (xem bi gii tp tin
addbookform.asp v addbookext.asp)

7. Thao tc cp nht mt mu tin trn c s d liu


cp nht mt cun sch trong CSDL, cn phi trao vo m
sch BOOK_ID. Gi s mun cp nht mu tin trong table T_BOOK
c BOOK_ID=1 vi cc thng tin: Tn sch l "Thit k v lp trnh
ng dng web bng ASP", ch ca sch l Tin hc c ID l 1,
tc gi l "L nh Duy", nh xut bn l Thng k c ID l 3, nm
xut bn 2001, tp tin nh ba tn l ltwebasp.jpg.

vBookTitle = "Thit k v lp trnh ng dng web bng ASP"


vBookCatID = 1
vBookAuthor = "L nh Duy"
vBookPubID = 3
vBookYear = 2001
vBookPrice = 16000
vBookPic = "ltwebasp.jpg"
' build SQL statement
strSQL = "UPDATE T_BOOK SET "
strSQL = strSQL & "BOOK_TITLE=" & "'" & vBookTitle & "'" & ", "
strSQL = strSQL & "BOOK_CATID=" & vBookCatID & ", "
strSQL = strSQL & "BOOK_AUTHOR=" & "'" & vBookAuthor & "'" &
", "
strSQL = strSQL & "BOOK_PUBID=" & vBookPubID & ", "
strSQL = strSQL & "BOOK_YEAR=" & vBookYear & ", "
strSQL = strSQL & "BOOK_PRICE=" & vBookPrice & ", "
strSQL = strSQL & "BOOK_PIC=" & "'" & vBookPic & "'"
strSQL = strSQL & " WHERE BOOK_ID=" & vBookID
Response.Write "Thc hin thao tc cp nht vi cu lnh SQL: " &
strSQL
' execute SQL statement
Conn.Execute strSQL
%>
<%
Conn.Close
Set Conn = NOTHING
%>

Thi hnh tp tin updatebook.asp, sau thi hnh tp tin


listallbook.asp xem mu tin mi c cp nht.
M rng on m trn bng cch to mt form cho php
ngi dng hiu chnh cc thng tin ca cun sch c
BOOK_ID=1. Sau khi ngi dng sa xong, nhn nt Submit,
cc thng tin va sa s c cp nht ln CSDL. (xem bi
gii tp tin updatebookform.asp v tp tin
updatebookext.asp).

Ta to tp tin updatebook.asp nh sau:


<%@CODEPAGE=65001%>
<%Response.Charset = "utf-8"%>
<!--#include file="dbconn.asp"-->
<%
' get input data

Lu rng, vi trang updatebookform.asp cha form hin


th cc d liu ca cun sch cn cp nht thng tin, ta c th
s dng li form dng trong trang addbookform.asp.

vBookID = 1
L nh Duy - H KHTN Tp. HCM

259

260

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

im khc nhau l thm thuc tnh value cho cc control vi


cc gi tr c t CSDL ca cun sch cn cp nht.
lu thng tin BOOK_ID ca cun sch cn cp nht trong
form ca trang updatebookform.asp ta s dng mt control
c type l hidden (<input type="hidden" name="fBOOK_ID"
value="<%Response.Write rsBook("BOOK_ID")%>">).
Trong trang updatebookform.asp ta ly d liu ca
fBOOK_ID t query string bng cch g vo cp tn control
v gi tr tng ng khi dng tp tin ny. V d:
http://../updatebookform.asp?fBOOK_ID=1
Trong trang updatebookext.asp dng x l cc d liu t
form ca trang updatebookform.asp, ta thc hin tng t
nh trang addbookext.asp. im khc nhau ch thay cu
lnh INSERT bng cu lnh UPDATE.
To mt form tm kim sch, cho php ngi dng nhp vo cc
thng tin nh l tn sch, tn tc gi, ch , nh xut bn, nm
xut bn. Chng trnh s lit k cc cun sch tm c theo yu
cu ca ngi dng. Trong mi cun sch c lit k, to mt
hyperlink sao cho khi nhn vo , chng trnh s hin th form cp
nht d liu ca cun sch trn (xem bi gii tp tin
searchbookform.asp v tp tin searchbook.asp).
Trang searchbookform.asp cha form hin th cc d liu
m ngi dng cn nhp vo tm ra cun sch cn cp
nht thng tin, ta c th s dng li form dng trong trang
addbookform.asp. Lu thm rng, i vi cc dropdown
listbox ta cn phi c thm mc chn Tt c
tm gn ng cc chui 'tin' trong mt trng cho trc v
d BOOK_TITLE, ta dng k t i din %. V d SELECT *
FROM T_BOOK WHERE BOOK_TITLE LIKE '%tin%'
Trong tp tin searchbook.asp, sau khi hin th cc kt qu
tm c theo dng bng, ta thm mt hyperlink ngay s th
t ca mi cun sch. Mi hyperlink ny s cha a ch ca
trang
cp
nht
sch
dng:
updatebookform.asp?fBOOK_ID=<book_id>

L nh Duy - H KHTN Tp. HCM

261

8. Thao tc xa mt mu tin trn c s d liu


Gi s mun xa mt mu tin trong table T_BOOK c
BOOK_ID=1.
Ta to tp tin delbook.asp nh sau:
<%@CODEPAGE=65001%>
<%Response.Charset = "utf-8"%>
<!--#include file="dbconn.asp"-->
<%
' get input data
vBookID = 1
' build SQL statement
strSQL = "DELETE FROM T_BOOK "
strSQL = strSQL & "WHERE BOOK_ID=" & vBookID
Response.Write "Thc hin thao tc xa vi cu lnh SQL: " &
strSQL
' execute SQL statement
Conn.Execute strSQL
%>
<%
Conn.Close
Set Conn = NOTHING
%>

Thi hnh tp tin delbook.asp, sau thi hnh tp tin


listallbook.asp kim tra mu tin c xa hay cha
M rng tp tin delbookext.asp nhn thng tin ca
BOOK_ID cn xa.
Tng t nh trang cp nht sch, ta c th truyn BOOK_ID
cho trang xa sch bng cch thay i hyperlink ca trong trang
searchbook.asp t updatebookform.asp thnh delbookext.asp.

9. S dng Cookies
9.1. Nhc li khi nim v Session, Application, Cookies
Nu mt bin c khai bo trong mt trang ASP, n s b hy
ngay mt khi server x l xong trang ny. c th khai bo cc
bin c th s dng chung cho nhiu trang, ta s dng hai i tng
Application v Session.
262

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

i tng Application lu tr cc thng tin c th c chia


s cho nhiu ngi dng trong cng mt ng dng. Mt ng dng
ASP c nh ngha nh l cc trang asp nm trong cng mt th
mc o v cc th mc con ca th mc o ny. Do cc bin c
lu trong i tng Application c dng chung cho nhiu ngi
dng, do mt khi mt ngi dng mun thay i mt gi tr dng
chung ny, cc yu cu phi c t trong cp lnh Lock v
Unlock. iu ny m bo an ton khi nhiu ngi cng yu cu
thay i ca cng mt gi tr trong cng mt lc
i tng Session c dng lu tr cc thng tin dng cho
mt phin lm vic ca mt ngi dng. Cc bin c lu trong
i tng ny s khng b hy khi ngi dng chuyn t trang ny
sang trang khc.
Webserver s t ng to ra mt i tng Session khi ngi
dng yu cu mt trang web t mt ng dng m trc cha c
phin lm vic no. Webserver s t ng hy i tng Session
ny khi i tng ny ht hn.
i tng Session thng c dng lu cc thng tin ring
bit cho tng phin lm vic ca ngi dng. V d nh trong ng
dng mua hng trn mng, mi khi ngi dng duyt qua cc mt
hng v quyt nh chn n, ri li tip tc qua cc trang khc
chn mt hng khc, ... Cc thng tin lin quan n cc mt hng
m ngi dng chn t nhiu trang khc nhau nn c lu
trong bin ca i tng Session sau ny in ra phiu mua hng
cho ngi dng.
t thi gian ht hn ca mt i tng Session, ta t gi tr
(tnh bng pht) cho thuc tnh Session.TimeOut. hy Session
hin hnh, ta dng phng thc Session.Abandon
Cookie l thng tin ca ng dng web lu tr ti my client.
Thng thng cc cookie lu tr cc thng tin ring ca bn khi s
dng mt website no . V d, nu bn dng Yahoo Mail, thng tin
v tn ng nhp ca bn c th s c lu vo cookie my bn
ang dng nh tn ng nhp ca bn. l l do ti sao sau
ny khi quay li trang Yahoo Mail, h thng s t ng hin th tn
ng nhp ca bn trc v ch yu cu bn nhp vo mt khu.
Vi giao thc HTTP, mi yu cu cho mt trang web khng c
mi lin quan no vi cc yu cu khc. Chnh v vy m webserver
khng nh c trang no c gi n cho ngi dng trc
L nh Duy - H KHTN Tp. HCM

263

hay bt c nhng g m ngi dng duyt qua. Cookies l


mt c ch cho php server lu tr cc thng tin ca n v ngi
dng trn chnh my ca ngi dng hin ti.

9.2. Phn quyn truy cp cho ngi dng


Xem chi tit trong bi tham kho Phng php h tr gii hn
truy cp trang web
Ta s to thm mt bng d liu lu thng tin v ngi dng
ca h thng phc v cho vic phn quyn. Bng ny c tn l
T_USER vi cc trng nh sau:
TT

Thuc tnh

Kiu DL

M t

USER_ID

Char(10)

Tn ng nhp ca
ngi dng. Primary
Key

USER_PASSWORD

Char(10)

Mt khu ng nhp

USER_NAME

Char(50)

Tn y ca ngi
dng

USER_EMAIL

Char(30)

a ch email

USER_PHONE

Char(30)

in thoi lin lc

USER_ADDR

Char(255) a ch lin lc

To trang login.htm hin th form ng nhp yu cu ngi


dng nhp vo tn ng nhp v mt khu. Trong trang ny, khai
bo action ca form l login.asp, l trang s x l cc d liu do
ngi dng nhp vo
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8">
<title>ng nhp</title>
<style>

264

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

<!-.txtText { font-family: Times New Roman; font-size: 12pt; color:


#0000FF; font-weight: bold }
.txtControl { font-family: Arial; font-size: 10pt; color: #0000FF }
-->
</style>
</head>
<body>
<center>
<form action="login.asp" method="POST">
<table border="0" cellpadding="5" cellspacing="0" style="bordercollapse: collapse" bordercolor="#111111" width="400"
id="AutoNumber1">
<tr>
<td width="600" colspan="2" bgcolor="#0000FF">
<p align="center"><b><font face="Tahoma" size="5"
color="#FFFFFF">ng nhp</font></b></td>
</tr>
<tr>
<td width="190" align="right" bgcolor="#CCCCCC"
class="txtText">Tn ng nhp</td>
<td width="410" bgcolor="#CCCCCC">
<input type="text" size="20" name="fUSER_ID"
class="txtControl"></td>
</tr>
<tr>
<td width="190" align="right" bgcolor="#CCCCCC"
class="txtText">Mt khu</td>
<td width="320" bgcolor="#CCCCCC">
<input type="text" size="20" name="fUSER_PASSWORD"
class="txtControl"></td>
</tr>
<tr>
<td width="600" bgcolor="#CCCCCC" colspan="2" align="center">
<input type="submit" value="ng nhp" name="fB1"
class="txtControl">&nbsp;&nbsp;
<input type="reset" value=" Lm li " name="fB2"
class="txtControl"></b></td>
</tr>
</table>
</form>
</center>
</body>
</html>

L nh Duy - H KHTN Tp. HCM

265

To trang login.asp kim tra tn ng nhp v mt khu nhp


vo c hp l hay khng. Nu hp l, ngoi thng bo thnh cng,
trang ny s gn gi tr cho cc bin Session lu thng tin v ng
nhp hp l ca ngi dng.
<%@CODEPAGE=65001%>
<%Response.Charset = "utf-8"%>
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<title>ng nhp</title>
<style>
<!-.txtText { font-family: Times New Roman; font-size: 12pt; color:
#0000FF; font-weight: bold }
.txtControl { font-family: Arial; font-size: 10pt; color: #0000FF }
-->
</style>
</head>
<body>
<!--#include file="dbconn.asp"-->
<%
' get input data
vUserID = Request("fUSER_ID")
vUserPassword = Request("fUSER_PASSWORD")
' build SQL statement
strSQL = "SELECT USER_ID, USER_PASSWORD FROM T_USER
WHERE USER_ID = " & "'" & vUserID & "'"
set rs = Conn.Execute(strSQL)
if rs.EOF then
Response.Write "<p class=txtText>Khng tn ti tn ng nhp.
Hy <a href='login.htm'>ng nhp li</a>"
else
if rs("USER_PASSWORD") <> vUserPassword then
Response.Write "<p class=txtText>Mt khu nhp vo sai. Hy
<a href='login.htm'>ng nhp li</a>"

266

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

else
Response.Write "<p class=txtText>ng nhp thnh cng. Hy
<a href='>lm tip</a>"
Session("LoginOK") = 1
end if
end if
%>
<%
rs.Close
Set rs = NOTHING
Conn.Close
Set Conn = NOTHING
%>
</body>
</html>

Trong bt k trang web no (gi s l authenpage.asp)m bn


ch mun ngi dng c php truy cp mt khi ng nhp
thnh cng, t dng lnh kim tra sau ngay u trang web nh sau:
<%@CODEPAGE=65001%>
<%Response.Charset = "utf-8"%>
<html>

Response.Write "<p class=txtText>Bn khng c quyn thc


hin thao tc ny. Hy <a href='login.htm'>ng nhp</a>"
Response.End
end if
%>
<!--Phn cn li ca trang t t y tr i-->
</body>
</html>

M rng cc trang trn sao cho khi ngi dng truy cp vo


trang authenpageext.asp m cha ng nhp th s c yu cu
ng nhp. Sau khi ng nhp xong, cho php quay tr li trang
authenpageext.asp thc hin tip. Ngoi ra, s dng thm
cookies khi ngi dng quay tr li trang loginform.asp ln sau,
h thng s t ng nh li tn ngi dng ng nhp trc
(xem bi gii trang authenpageext.asp, trang loginform.asp v
loginext.asp)

9.3. To v qun l gi i ch (shopping cart)


Ta s to ra trang booklist.asp (k tha t trang
searchbook.asp) lit k cc cun sch cho ngi dng chn.
Trn mi dng, ta s thm vo mt button Add to Cart cho php
ngi dng thm cun sch chn vo gi i ch. xem cc
cun sch c chn mua, ta dng trang viewcart.asp.

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<title>Nhp mi sch</title>
<style>
<!-.txtText { font-family: Times New Roman; font-size: 12pt; color:
#0000FF; font-weight: bold }
.txtControl { font-family: Arial; font-size: 10pt; color: #0000FF }
-->
</style>
</head>

<%@CODEPAGE=65001%>
<%Response.Charset = "utf-8"%>
<!--#include file="dbconn.asp"-->
<%
vBookTitle = Request("fBOOK_TITLE")
vBookCatID = Request("fBOOK_CATID")
vBookAuthor = Request("fBOOK_AUTHOR")
vBookPubID = Request("fBOOK_PUBID")
vBookYear = Request("fBOOK_YEAR")

<body>
<%
if Session("LoginOK") <> 1 then

if vBookCatID <> "" then


strSQL = strSQL & " AND BOOK_CATID =" & vBookCatID
end if

L nh Duy - H KHTN Tp. HCM

267

sPicPath = "BookPic/"
strSQL = "SELECT * FROM T_BOOK WHERE "
strSQL = strSQL & "BOOK_TITLE LIKE" & "'%" & vBookTitle & "%'"
strSQL = strSQL & " AND BOOK_AUTHOR LIKE" & "'%" &
vBookAuthor & "%'"

268

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

</form>
</tr>

if vBookPubID <> "" then


strSQL = strSQL & " AND BOOK_PUBID =" & vBookPubID
end if

<%
rs.movenext
i=i+1
loop
%><%
rs.Close
Set rs = NOTHING
Conn.Close
Set Conn = NOTHING
%>

if vBookYear <> "" then


strSQL = strSQL & " AND BOOK_YEAR =" & vBookYear
end if
Set rs = Conn.Execute(strSQL)
%>
<table width="600" border="1" cellpadding="5" cellspacing="0"
style="border-collapse: collapse" bordercolor="#111111">
<tr align="center">
<td>TT</td>
<td>Tn sch</td>
<td>Tn tc gi</td>
<td>Nm XB</td>
<td>Gi tin</td>
<td>nh ba</td>
<td>Mua hng</td>
</tr>
<%
i=1
do while not rs.EOF
%>
<tr>
<td>
<form action="addtocart.asp" name="myform<%Response.Write
i%>" method="post">
<a href="updatebookform.asp?fBOOK_ID=<%Response.Write
rs("BOOK_ID")%>">
<%Response.Write i%>
</a>
<input type="hidden" name="fBOOK_ID"
value="<%Response.Write rs("BOOK_ID")%>">&nbsp;
</td>
<td><%Response.Write rs("BOOK_TITLE")%>&nbsp;</td>
<td><%Response.Write rs("BOOK_AUTHOR")%>&nbsp;</td>
<td><%Response.Write rs("BOOK_YEAR")%>&nbsp;</td>
<td><%Response.Write rs("BOOK_PRICE")%>&nbsp;</td>
<td><img src='<%Response.Write sPicPath &
rs("BOOK_PIC")%>'></td>
<td><input type="submit" value="Add to cart"
name="bAdd<%Response.Write i%>">&nbsp;</td>

L nh Duy - H KHTN Tp. HCM

Button Add to Cart ny l button kiu Submit lin kt vi form c


mt control hidden cha thng tin BOOK_ID v action ch n trang
addtocart.asp qun l gi i ch
qun l gi i ch, ta dng mt bin mng 2 chiu lu trong
i tng Session. Bin mng ny mt ct lu m sch BOOK_ID,
mt ct lu s lng cn mua tng ng vi sch m ngi dng
chn. Ngoi ra dng thm bin NumBook qun l s lng cc
cun sch c chn
Lu rng, thao tc trn bin mng lu trong Session, ta
khng thao tc trc tip m phi chp d liu t bin Session ra
mng ph trc khi dng v cp nht li sau khi dng xong. Kch
bn
nh
sau:
arBook
=
Session("arBook")
'chp
d
liu
ra
//
Thao
tc
trn
arBookSelected

y
...
Session("arBook") = arBook 'cp nht vo bin Session
Trang addtocart.asp s lm nhim v ly BOOK_ID v cp nht
vo mng arBook v NumBook
<%@CODEPAGE=65001%>
<%Response.Charset = "utf-8"%>
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=utf8">

269

270

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

<title>Thm sch vo gi hng</title>


<style>
<!-.txtText { font-family: Times New Roman; font-size: 12pt; color:
#0000FF; font-weight: bold }
.txtControl { font-family: Arial; font-size: 10pt; color: #0000FF }
-->
</style>
</head>

8">
<title>Xem thng tin gi hng</title>
<style>
<!-.txtText { font-family: Times New Roman; font-size: 12pt; color:
#0000FF; font-weight: bold }
.txtControl { font-family: Arial; font-size: 10pt; color: #0000FF }
-->
</style>
</head>

<body>
<%
' get input data
vBookID = Request("fBOOK_ID")
NumBook = Session("NumBook")
arBook = Session("arBook")
arBook(0, NumBook) = vBookID
arBook(1, NumBook) = 1 ' s lng sch mua mc nh l 1
NumBook = NumBook + 1
Session("NumBook") = NumBook
Session("arBook") = arBook
%>
<%
%>
</body>
</html>

Trang viewcart.asp cho php xem thng tin gi i ch v cc


mt hng chn. Trang ny s ly d liu t mng cc BOOK_ID
lu trong bin Session, kt hp vi vic c CSDL cho bit thng
tin ca tng mt hng.
<%@CODEPAGE=65001%>
<%Response.Charset = "utf-8"%>
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=utfL nh Duy - H KHTN Tp. HCM

271

<body>
<!--#include file="dbconn.asp"-->
<table width="600" border="1" cellpadding="5" cellspacing="0"
style="border-collapse: collapse" bordercolor="#111111">
<tr align="center">
<td>TT</td>
<td>M sch</td>
<td>Tn sch</td>
<td>Tn tc gi</td>
<td>Nm XB</td>
<td>Gi tin</td>
<td>S lng</td>
</tr>
<%
NumBook = Session("NumBook")
arBook = Session("arBook")
Sum = 0
for i=0 to NumBook-1
%>
<tr>
<td>
<%Response.Write i%> &nbsp;</td>
<td><%Response.Write arBook(0, i)%>&nbsp;</td>
<td>
<%
strSQL = "SELECT * FROM T_BOOK WHERE BOOK_ID=" & arBook(0,
i)
set rs = Conn.Execute (strSQL)
Response.Write rs("BOOK_TITLE")
%> &nbsp;</td>
<td><% Response.Write rs("BOOK_AUTHOR")%>&nbsp;</td>
<td><% Response.Write rs("BOOK_YEAR")%>&nbsp;</td>
<td><% Response.Write rs("BOOK_PRICE")%>&nbsp;</td>
<td><%Response.Write arBook(1, i)

272

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Sum = Sum + rs("BOOK_PRICE")*arBook(1, i)


%>&nbsp;</td>
</tr>
<%
rs.Close
set rs = NOTHING
next
%>
<tr align="center">
<td></td>
<td></td>
<td></td>
<td></td>
<td>Tng s tin</td>
<td><%Response.Write Sum%>&nbsp;</td>
<td></td>
</tr>
</table>
<%
Conn.Close
set Conn = NOTHING
%>
</body>

End Sub
</SCRIPT>

9.4. Mt s m rng khc


M rng cc trang trn cho php khi ngi dng chn trng
mt cun sch c sn trong gi i ch, h thng s t
ng tng s lng tng ng vi cun sch ln.
M rng bng cch cho php ngi dng tng s lng sch
c th mua hn s lng khi to bin mng arBook ban u
bng cch ReDim li mng khi s lng sch ln hn s
lng phn t mng khai bo ban u.
Thay v dng bin Session lu tr gi mua hng ca ngi
dng, hy dng mt bng tm T_CART lu cc thng tin
ny.
Vit thm cc chc nng cho php ngi dng cp nht ni
dung gi i ch nh thay i s lng chn, loi b sch
chn, ...
Vit thm chc nng in n t hng khi ngi dng dng
vic chn mua hng.

</html>
</html>

10. Nhng cu hi thng gp

khi to cc bin Session, ta s dng on m khi to


trong tp tin global.asa

Tr li: D liu lu trong Access l dng UCS-2, do phi


thit lp Codepage=65001 v charset=utf-8 u trang asp
server chuyn d liu t UCS-2 sang UTF-8 trc khi gi xung cho
trnh duyt ca ngi dng. (Xem thm bi tham kho Lp trnh Web
ASP vi ting Vit Unicode)

<SCRIPT LANGUAGE=VBScript RUNAT=Server>


Sub Application_OnStart
End Sub
Sub Application_OnEnd

Hi: Trong ng dng trn, nh ca cc cun sch c lu


trong mt th mc ring. Vy mun lu trc tip nh trong CSDL th
phi lm sao?

End Sub
Sub Session_OnStart
Session("LoginOK") = 0
Session("NumBook") = 0
Dim arBook(2, 10)
Session("arBook") = arBook
End Sub
Sub Session_OnEnd
L nh Duy - H KHTN Tp. HCM

Hi: D liu ting Vit nhp trc tip vo CSDL nhng khng
hin th c lc thc thi chng trnh

Tr li: Xem thm bi tham kho Hin th hnh nh t CSDL


trong cc ng dng Web.
Hi: Khi thc hin trang thao tc trn CSDL th gp thng bo
li:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

273

274

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

[Microsoft][ODBC Driver Manager] Data source name not found and no


default driver specified
/BookStore/dbconn.asp, line 9

THC HNH

Tr li: Li xy ra do ng dn khai bo data source name


khng chnh xc, hy kim tra li chui khai bo data source name
cc m t tn driver, cc thng s v cu hnh, ...

Hon chnh ng dng trn vi cc b sung:


1. Xy dng trang ch vi cc mc chn chnh ca h thng

Hi: Khi thc hin trang thao tc trn CSDL th gp thng bo

2. B sung phn trnh by cho cc bng biu kt xut v cc


form nhp liu

li:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Data source name not found and no
default driver specified
/BookStore/dbconn.asp, line 9

3. Thit k gi i ch khng dng bin Session m dng Cookies


hoc cp nht trc tip trn c s d liu.
4. Thm cc bng mi qun l cc n t hng ca ngi
dng, cc phiu giao hng.

Tr li: Li xy ra do ng dn khai bo data source name


khng chnh xc, hy kim tra li chui khai bo data source name
cc m t tn driver, cc thng s v cu hnh, ...

5. Thm cc bng mi qun l vic cung cp hng ca cc


nh cung cp.

Hi: Khi thc hin trang thao tc trn CSDL th gp thng bo

6. Thm chc nng mi v qun l doanh s bn hng, bo co


tn kho, ...

li:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Operation must use an
updateable query.
/BookStore/addbook.asp, line 27

7. ng k mt website h tr ASP min ph trn mng v upload


ton b ng dng ln. Kim tra cc vn lin quan n an
ton.

Tr li: Li xy ra do tp tin CSDL cha c t quyn ghi.


Hy vo Explorer chnh li Security cho php Users c quyn trn
tp tin ny l Write
Hi: Khi thc hin trang thao tc trn CSDL th gp thng bo li
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open
registry key 'Temporary (volatile) Jet DSN for process 0x690 Thread 0xb50
DBC 0x7a9d8c Jet'.
/BookStore/dbconn.asp, line 9

Tr li: C th bn ang thao tc trn tp tin CSDL ang c


m bi ng dng khc, v d nh Access. khc phc hy ng
ng dng ny li v thc hin li.
Hoc cng c th l bn khai bo ng dn n tp tin .mdb cha
chnh xc. Hy kim tra li trong chui khai bo bt u t
Server.MapPath
L nh Duy - H KHTN Tp. HCM

275

276

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

Bi tham kho

WEB HOSTING - DCH V THU CH


WEBSITE TRN INTERNET

Xy dng cc n sau:
Website siu th tng t nh
Amazon (http://www.amazon.com),
Yahoo Shopping (http://shopping.yahoo.com),
Minh Khai Pub (http://www.minhkhaivn.com),
NXB Gio Dc (http://www.nxbgd.com.vn),
VDC Siu th (http://vdcsieuthi.vnn.vn),
ConfidantVCD (http://www.confidantvcd.com),
Nh sch VN (http://www.nhasachvn.com)

Nu cng ty ca bn chun b thit lp mt website phc v cho


vic qung b v kinh doanh trn mng, vic u tin l phi ng k
mt tn min, dng nh mycompany.com. Sau khi ng k tn min
xong, c th a website ln Internet, bn phi la chn dch v
thu ch website. Bi vit ny s cung cp mt s khi nim c bn
lin quan n dch v ny, ng thi xut cc bc cho vic la
chn dch v thu ch ph hp vi nhu cu ca cng ty bn

Website cung cp dch v thng tin dng bo in t nh


VnExpress (http://vnexpress.net),
VietnamNet (http://www.vnn.vn),
VDC Media (http://media.vdc.com.vn)

1. Mt s khi nim c bn
Dch v thu ch website (web hosting) l khi nim dng ch
qu trnh lm mt website c th truy cp c t Internet. mt
website c th truy cp c t Internet, website phi c t trn
mt my c cu hnh mnh v c kt ni Internet thng xuyn. V
chi ph c c mt my nh vy khng nh nn mi xut hin
cc cng ty cung cp dch v thu ch phc v cho cc cng ty c
nhu cu a website ca mnh ln Internet.

Website cung cp dch v im tuyn sinh H nh


NetSoft (http://kqthidaihoc.netcenter-vn.net),
VDC-Moet (http://tintuc.vnn.vn/tuyensinh),
Website qun l danh b cc a ch web nh
FPTNet (http://website.fptnet.com),
ContactVietnam (http://www.contactvietnam.com),
BanCanBiet (http://www.bancanbiet.com)

C hai hnh thc thu ch l min ph v phi tr tin. Nu s


dng dch v min ph, bn s phi chu qung co ca ngi khc
chen vo, ng thi khng th s dng a ch truy cp vi tn min
ng k. V d, nu bn ng k dch v thu ch min ph ca
cng ty Brinkster (www.brinkster.com) th a ch truy cp website
ca bn c dng: http://wwwxx.brinkster.com/myname. Dch v thu
ch min ph ch ph hp cho cc website ca cc c nhn vi mc
ch th nghim, khng th dng cho cc cng ty mun kinh doanh
trn Internet.

Website qun l danh bn tng t nh dch v


Nhng trang vng (http://www.yp.com.vn),
Danh b trc tuyn VDC (http://danhba.vdc.com.vn)
Website v nh t nh Nh t (http://ww.nhadat.com),
Website v dch v vic lm nh:
VASC (http://laodongvieclam.vasc.com.vn),
Vietnam Works (http://www.vietnamworks.com)

Dch v thu ch c tr tin cho php bn s dng tn min


ng k truy cp vo website ca mnh, khng c qung co, c
tin cy cao v c bo tr nng cp thng xuyn. Cc website
chuyn nghip u tm n cc dch v hosting c cht lng cao
t website ca mnh.
C hai dng thu ch, mt dng l gi l shared (virtual) hosting
trong nhiu website cng chia s ti nguyn mt server. Mt dng

L nh Duy - H KHTN Tp. HCM

277

278

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

khc bao gm dedicated hosting v colocated hosting l thu


nguyn mt my tnh v c ton quyn thc hin cc thao tc trn
my ny.
Hin nay, thng dng nht chim n 99% vn l shared hosting
v n ph hp cho hu ht cc cng ty va v nh vi chi ph hp l.
Khi chn dch v webhosting cn lu n cc tnh nng m cc
nh cung cp a ra:
Dung lng a cng (Space) l dung lng ti a cho php
d liu website ca bn. n v tnh c lit k trong cc
bng thng tin dch v thng l megabytes. Cc tp tin
chim dung lng a nhiu thng thng l cc tp tin nhc,
video nh .mp3, .avi, .mpeg,
Bng thng (Transfer/Bandwidth) l tng s nhng g m
ngi dng ti t website ca bn khi truy cp. Thng
thng nu vt qu gii hn cho php, bn phi tr thm
tin cho nh cung cp dch v. V d: nu mt khch vo
website ca bn xem 3 trang HTML mi trang c kch thc
trung bnh khong 20KB v 8 tm hnh nhng trong mi
tm hnh 10 KB th vi 500 khch truy cp mt ngy, bn s
cn t nht (3 * 20 + 8 * 10) * 500 * 30 = 2,100,000 KB = 2.1
GB bng thng mi thng.
Uptime l phn trm thi gian mt server lm vic. V d nu
bn t website ti mt server c uptime trung bnh l 99.86%,
iu ny c ngha l website ca bn s b down khong 1h
mi thng. Hu nh khng c dch v thu ch dng shared
hosting no c th m bo uptime 100%.
Sau khi tr tin cho dch v thu ch xong, cc thao tc m bn
thng phi lm l:
Upload website ln server
Qun l cc thng tin v truy cp website
Vi cc nh cung cp cht lng cao, bn s c h tr cc
thao tc ny ht sc thun tin thng qua giao tip trn web cng
nh bng FTP m khng cn i hi nhiu kin thc v lnh vc
ny.

L nh Duy - H KHTN Tp. HCM

279

2. Cc bc c bn la chn phng n thu ch


thch hp
2.1. La chn h iu hnh m server s dng
Vic la chn h iu hnh tu thuc vo nhng nhu cu ca
bn. Nu bn ang s dng IIS, ASP, VBScript, Windows Media,
Microsoft Access, Microsoft SQL Server, or Visual InterDev v khng
c nhiu thi gian cho vic tm hiu v cc gii php da trn Unix,
Linux, hy chn Windows NT hoc Windows 2000. Tuy nhin bn
phi tr gi cho s la chn ny v cc phn mm ca Microsoft u
i hi phi tr tin bn quyn. Nu bn mun s dng SQL server,
bn phi tr thm kh nhiu tin trong mt phn l tin bn
quyn.
Bn cng nn bit rng hin nay h iu hnh Linux v Apache
Web servers c s dng rt nhiu trong cc cng ty cung cp
dch v thu ch. S d c nh vy v Apache' cung cp rt nhiu
tnh nng h tr dng thu ch ny, ng thi rt n nh v hiu
sut thi hnh cao. Ngoi ra, Linux v Apache l min ph.

2.2. Nhu cu v bng thng


Bn nn chi tit ha nhu cu v bng thng ca bn trc khi
ng k. Cn c lng kch thc ca d liu website thng qua
vic lng gi kch thc trung bnh ca trang, s trang trong
website, v s ln xem cc trang ny trong mt thng.
Mt s nh cung cp webhosting thng qung co c th h
tr khng gii hn bng thng (unlimited bandwidth). Tuy nhin iu
ny thng l th thut m thi bi v nn nh rng h cng phi tr
tin thu bng thng. S d c qung co trn bi nhng nh cung
cp c lng rng bng thng ca tng ngi dng thay i khc
nhau v c th b qua st li m bn khng bit. Hn na, a s
cc nh cung cp dng ny u yu cu bn chp nhn chnh sch
ca h trc khi s dng (bn rt t khi c k chnh sch ny) m
trong cng nu r iu kin s yu cu bn tr thm tin hoc ra
i nu lm dng ti nguyn.

2.3. Nhu cu v khng gian a


Tip n l c lng kch thc khng gian a cn cho
website. Vi cc website nhiu nh ha, kch thc cn nhiu
hn cc website ch c vn bn. Tuy nhin vi s tin b ca phn

280

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

cng, hu ht cc dung lng a m nh cung cp h tr vt qu


nhu cu thng thng, v d nh 5GB, 10GB, 100GB.

Gi c cho vic s dng vt qu bng thng v dung


lng cho php

2.4. Cc ngn ng lp trnh c h tr

H tr giao tip (control panel for graphical access) thun


tin trong vic qun l website.

H tr v t vn an ninh ca h thng

Cc component c h tr sn

Vi cc website c lp trnh, ngn ng lp trnh server-side


cng cn phi c xem xt n mt cch thn trng. Hin nay
thng dng nht trn web vn l cc ngn ng PHP, JSP, ASP. S
dng ASP i hi h iu hnh phi l Windows v thng thng l
chi ph cao hn so vi PHP do PHP c tch hp sn trong
Apache v Linux.

2.5. H qun tr c s d liu h tr

2.8. Cc nh cung cp dch v hosting hng u th gii


hin ny
Lunarpages.com

Mt ng dng web tht s i hi phi c s c lng gia chi


ph b ra v nhu cu cn c khi bn n vic chn h qun tr CSDL
no h tr. Nu dng Microsoft th c Microsoft Access hay
Microsoft SQL Server, cn nu dng Unix hay Linux th c mSQL,
MySQL, hay PostgreSQL. MS SQL Server th rt mnh hn nhiu
so vi Access cng nh MySql v PostgreSQL so vi mSQL. Tuy
nhin cn ch n vn gi c, v d nh nu dng MS. Access
th c cung cp min ph, trong khi dng MS. SQL Server th phi
tr tin bn quyn, bo tr h thng,

iPowerWeb.com
ICDSoft
Globat.com
Tham kho ti
http://www.tophostinfo.com/review1.htm

2.6. H tr k thut

http://www.webhosting-reviews.com/comm1.htm

Vn ny cng rt quan trng v nu trc trc trong lc vn


hnh h thng ca bn khng c sa cha kp thi, c th s dn
n mt nhiu c hi kinh doanh. Cc hnh thc h tr k thut c
cung cp thng l email, chat hay in thoi trc tip t vn. Lu
rng chi ph s t l thun vi cht lng v hnh thc t vn,.

http://www.practicallynetworked.com/serving/webhost/
http://www.webhostingratings.com/
http://www.findmyhosting.com/

2.7. Cc tnh nng khc


Ngoi ra cng cn xem xt n cc tnh nng khc nh:
H tr SSL cho cc giao tc an tn tn mng nh tr tin,
chuyn tin hay khng.
H tr vic truy xut n cc d liu thng k cho php tng
hp v nh gi cc khch hng tham quan website
H tr nghe nhc v xem video trc tip trn mng m khng
cn ti ton b v.
S email accounts cung cp v h tr mailing lists.
L nh Duy - H KHTN Tp. HCM

281

282

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

TI LIU THAM KHO

MC LC

8. Active Server Page Unleashed, Stephan Walth

CHNG 1: GII THIU MNG INTERNET ................................3

9. Xy dng trang web ng vi ASP, Nhm tc gi ELICOM

1. S lc v mng Internet............................................................3

10. ASP Database, Nhm tc gi SAIGONBOOK

2. Cc dch v c bn ca mng Internet........................................8

11. T hc Lp trnh Thng mi in t vi ASP trong 21


ngy, Nhm tc gi SAIGONBOOK

3. Khai thc cc ti nguyn ca mng Internet .............................11

12. http://www.learnasp.com

4. Mt s thut ng thng dng ....................................................20


5. Mt s cu hi thng gp .......................................................21

13. http://www.4guysfromrolla.com

Cu hi ..........................................................................................28

14. http://www.15seconds.com

Thc hnh .....................................................................................29

15. http://asp.superexpert.com

CHNG 2: THIT LP WEBSITE.............................................37

16. http://www.fit.hcmuns.edu.vn/~ldduy/WebCourse

1. Ci t webserver......................................................................37
2. Cu hnh webserver...................................................................43
3. Mt s vn lin quan n an ton ........................................49
4. Mt s cu hi thng gp .......................................................51
Cu hi ..........................................................................................54
Thc hnh .....................................................................................55
CHNG 3: THIT K TRANG WEB .........................................61
1. Gii thiu v HTML....................................................................61
2. Mt s tag c bn ca HTML ....................................................63
3. nh dng bng biu..................................................................69
4. Form v cc thnh phn ca form.............................................71
5. Frame ........................................................................................77
6. Cascading Style Sheet ..............................................................79
Thc hnh .....................................................................................83

L nh Duy - H KHTN Tp. HCM

283

284

Email: ledduy@ieee.org

L nh Duy - H KHTN Tp. HCM

Email: ledduy@ieee.org

CHNG 4: CC NGN NG SCRIPT H TR LP TRNH WEB


.....................................................................................................129
1. Gii thiu v VBScript v JavaScript.......................................129
2. S dng VBScript ....................................................................130
3. S dng JavaScript .................................................................139
4. S dng VBScript v JavaScript trong cc trang web ............144
5. Du m VBScript/JavaScript ...................................................147
6. Mt s v d minh ha .............................................................148
Thc hnh ...................................................................................157
CHNG 5: NHP MN ASP...................................................159

9. Gi email bng CDONTS........................................................227


10. Mt s k thut khc...............................................................233
Bi tham kho: Hin th hnh nh t c s d liu trong
cc ng dng web .......................................................................236
Bi tham kho: Phng php h tr gii hn truy cp trang web ....
.....................................................................................................241
Bi tham kho: Bo v c s d liu Access trong cc
ng dng web..............................................................................245
Bi tham kho: Bo v ng dng web chng tn cng
kiu SQL Injection........................................................................248

1. Gii thiu v ASP ....................................................................159

CHNG 7: NG DNG MINH HA CA HNG SCH


TRC TUYN .............................................................................253

2. Cc khi nim c bn v ASP.................................................160

1. Gii thiu v ng dng ............................................................253

3. X l d liu nhp t ngi dng ............................................163

2. T chc website ng dng......................................................253

4. X l cc kt xut d liu.........................................................165

3. Thit k c s d liu..............................................................253

5. Kt ni vi c s d liu .........................................................172

4. Kt ni vi c s d liu .........................................................255

6. Nhng cu hi thng gp .....................................................180

5. Thao tc truy vn trn c s d liu .......................................256

Thc hnh ...................................................................................184

6. Thao tc thm mt mu tin vo c s d liu.........................258

Bi tham kho: Lp trnh Web ASP vi ting Vit Unicode ........185

7. Thao tc cp nht mt mu tin trn c s d liu ..................259

Bi tham kho: Kt xut d liu ra dng Excel t trang ASP .....195

8. Thao tc xa mt mu tin trn c s d liu ..........................262

CHNG 6: ASP NNG CAO...................................................199

9. S dng Cookies .....................................................................262

1. i tng Response ...............................................................199

10. Nhng cu hi thng gp ...................................................274

2. i tng Request ..................................................................201

Thc hnh ...................................................................................276

3. Application v Session ............................................................208

n ...........................................................................................277

4. Cookies....................................................................................213

Bi tham kho: Web Hosting Dch v thu ch website trn


Internet ........................................................................................278

5. i tng Server .....................................................................216


6. X l li vi i tng ASPError..............................................218
7. ADO nng cao .........................................................................219

TI LIU THAM KHO...............................................................283


MC LC ....................................................................................284

8. i tng FileSystemObject ...................................................225


L nh Duy - H KHTN Tp. HCM

285

286

Email: ledduy@ieee.org

You might also like