bai giang-lap-trinh-web-bang-asp

61
môc lôc môc lôc............................................................................................................................................ 1 PHÇN 1: c¬ b¶n vÒ html vμ VBSCRIPT............................................................................... 3 I. C¸C THÎ §Ó T¹O PHÇN Tö HTML C¥ B¶N ........................................................................ 3 1. Có ph¸p chung: ............................................................................................................................. 3 2. T¹o mét sè phÇn tö c¬ b¶n ............................................................................................................ 3 II. Ng«n ng÷ VBScript (ng ...................................................................................................... 6 1. Nhóng c©u lÖnh VBSCRIPT vμo trang web................................................................................... 6 2. G¾n kÕt m· lÖnh VBSCRIPT lªn c¸c sù kiÖn ................................................................................ 6 3. Ghi vμ ®äc d÷ liÖu trong TextBox ................................................................................................. 7 4. §äc d÷ liÖu trong ComboBox: Gièng nhListbox ....................................................................... 7 5. §äc / Ghi gi¸ trÞ trong CheckBox ................................................................................................. 7 PhÇn II : ASP .................................................................................................................................... 9 I. ASP là g× ? ..................................................................................................................................... 9 II. CÊu tróc cña mét file ASP ............................................................................................................ 9 2. Mét sè lu ý: ................................................................................................................................. 9 §èi tîng Response ................................................................................................................. 9 0. VÊn ®Ò giao tiÕp (nhËp xuÊt) gi÷a ngêi dïng vμ webserver. ....................................................... 9 1. Chøc n¨ng (ChÝnh) ........................................................................................................................ 9 2. Mét sè ph¬ng thøc dïng: ............................................................................................................ 9 2.1 Ph¬ng thøc write ................................................................................................................... 9 T¬ng ®¬ng víi: ........................................................................................................................ 10 2.2 Ph¬ng thøc Redirect ............................................................................................................ 10 ®èi tîng Request ................................................................................................................. 10 1. Chøc n¨ng ................................................................................................................................... 10 2. Mét sè thuéc tÝnh vμ ph¬ng thøc thêng dïng.......................................................................... 11 2.1 Thuéc tÝnh Form.................................................................................................................... 11 2.2 Thuéc tÝnh QueryString ......................................................................................................... 14 ®èi tîng server .................................................................................................................... 18 1. Ph¬ng thøc Mappath ................................................................................................................. 18 2. Ph¬ng thøc CreateObject........................................................................................................... 20 ®èi tîng session – biÕn sesstion ................................................................................. 20 1. BiÕn Sesstion ............................................................................................................................... 20 2. §èi tîng Session ....................................................................................................................... 20 ®èi tîng application ........................................................................................................ 23 1. Kh¸i niÖm biÕn toμn øng dông .................................................................................................... 23 2. §èi tîng Application ................................................................................................................. 24 3. VÝ dô tæng hîp ............................................................................................................................ 24 chÌn file vμo trang asp ..................................................................................................... 25 1. ý nghÜa:........................................................................................................................................ 25 2. Có ph¸p chÌn file: ....................................................................................................................... 25 3. VÝ dô tæng hîp ............................................................................................................................ 25 kÕt nèi vμ thao t¸c víi csdl trong asp .................................................................. 26 1. Qui t¾c chung .............................................................................................................................. 26 2. T¹o ®èi tîng Connection vμ kÕt nèi ®Õn CSDL ......................................................................... 26 3. T¹o ®èi tîng Recordset ............................................................................................................. 27 4. Mét sè vÝ dô ................................................................................................................................ 27 4.1 HiÓn thÞ toμn bé tªn nhμ cung cÊp (CompanyName) trong b¶ng Suppliers .......................... 27

Upload: vu-nguyen-van

Post on 22-Jan-2018

163 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Bai giang-lap-trinh-web-bang-asp

môc lôc môc lôc............................................................................................................................................ 1

PHÇN 1: c¬ b¶n vÒ html vμ VBSCRIPT ............................................................................... 3

I. C¸C THÎ §Ó T¹O PHÇN Tö HTML C¥ B¶N ........................................................................ 3 1. Có ph¸p chung: ............................................................................................................................. 3 2. T¹o mét sè phÇn tö c¬ b¶n ............................................................................................................ 3

II. Ng«n ng÷ VBScript (ng ...................................................................................................... 6 1. Nhóng c©u lÖnh VBSCRIPT vµo trang web................................................................................... 6 2. G¾n kÕt m· lÖnh VBSCRIPT lªn c¸c sù kiÖn ................................................................................ 6 3. Ghi vµ ®äc d÷ liÖu trong TextBox ................................................................................................. 7 4. §äc d÷ liÖu trong ComboBox: Gièng nh− Listbox ....................................................................... 7 5. §äc / Ghi gi¸ trÞ trong CheckBox ................................................................................................. 7

PhÇn II : ASP .................................................................................................................................... 9 I. ASP là g× ? ..................................................................................................................................... 9 II. CÊu tróc cña mét file ASP ............................................................................................................ 9 2. Mét sè l−u ý: ................................................................................................................................. 9

§èi t−îng Response ................................................................................................................. 9 0. VÊn ®Ò giao tiÕp (nhËp xuÊt) gi÷a ng−êi dïng vµ webserver. ....................................................... 9 1. Chøc n¨ng (ChÝnh) ........................................................................................................................ 9 2. Mét sè ph−¬ng thøc dïng: ............................................................................................................ 9

2.1 Ph−¬ng thøc write ................................................................................................................... 9 T−¬ng ®−¬ng víi: ........................................................................................................................ 10 2.2 Ph−¬ng thøc Redirect ............................................................................................................ 10

®èi t−îng Request ................................................................................................................. 10 1. Chøc n¨ng ................................................................................................................................... 10 2. Mét sè thuéc tÝnh vµ ph−¬ng thøc th−êng dïng .......................................................................... 11

2.1 Thuéc tÝnh Form .................................................................................................................... 11 2.2 Thuéc tÝnh QueryString ......................................................................................................... 14

®èi t−îng server .................................................................................................................... 18 1. Ph−¬ng thøc Mappath ................................................................................................................. 18 2. Ph−¬ng thøc CreateObject ........................................................................................................... 20

®èi t−îng session – biÕn sesstion ................................................................................. 20 1. BiÕn Sesstion ............................................................................................................................... 20 2. §èi t−îng Session ....................................................................................................................... 20

®èi t−îng application ........................................................................................................ 23 1. Kh¸i niÖm biÕn toµn øng dông .................................................................................................... 23 2. §èi t−îng Application ................................................................................................................. 24 3. VÝ dô tæng hîp ............................................................................................................................ 24

chÌn file vμo trang asp ..................................................................................................... 25 1. ý nghÜa:........................................................................................................................................ 25 2. Có ph¸p chÌn file: ....................................................................................................................... 25 3. VÝ dô tæng hîp ............................................................................................................................ 25

kÕt nèi vμ thao t¸c víi csdl trong asp .................................................................. 26 1. Qui t¾c chung .............................................................................................................................. 26 2. T¹o ®èi t−îng Connection vµ kÕt nèi ®Õn CSDL ......................................................................... 26 3. T¹o ®èi t−îng Recordset ............................................................................................................. 27 4. Mét sè vÝ dô ................................................................................................................................ 27

4.1 HiÓn thÞ toµn bé tªn nhµ cung cÊp (CompanyName) trong b¶ng Suppliers .......................... 27

Page 2: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 2

4.2.1 HiÓn thÞ danh s¸ch c¸c s¶n phÈm trong mét b¶ng .............................................................. 29

PHô LôC 1: DANH S¸CH C¸C THÎ TRONG JAVASCRIPT ............................................... 30

PHô lôc 2: DANH S¸CH C¸C HμM TRONG VBSCRIPT .................................................... 34

PHô LôC 3: MéT Sè C¢U LÖNH SQL TH¦êng dïNG Vμ VÝ Dô .................................... 36 I. §äc th«ng tin (C©u lÖnh SELECT) .............................................................................................. 36 II. ChÌn thªm b¶n ghi (Bæ sung) – C©u lÖnh Insert into .................................................................. 37 III. Xãa b¶n ghi – C©u lÖnh Delete ................................................................................................. 37 IV. CËp nhËt b¶n ghi – C©u lÖnh Update ......................................................................................... 37

PHô LôC 4: CμI §ÆT IIS (WEBSERVER) Vμ CH¹Y C¸C TRANG ASP ........................... 38 I. Cµi ®Æt Internet Information service (IIS) – web server ............................................................... 38 II. CÊu h×nh tr×nh duyÖt ®Ó ch¹y c¸c file ASP ................................................................................. 38 III. Copy c¸c file ASP võa so¹n th¶o vµo th− môc web ®Ó ch¹y. .................................................... 40 IV.Ch¹y file ASP ............................................................................................................................. 41

phô lôc 5 h−íng dÉn t¹o domain trong m¸y côc bé ....................................... 41

phô lôc 6: cμi ®Æt ftp ®Ó ®−a trang web lªn server........................................ 46 I. Cµi ®Æt cuteFTP............................................................................................................................ 46 II. Sö dông FTP ............................................................................................................................... 46

PhÇn III: Thùc hμnh BμI THùC hμNH Sè 1 ...................................................................... 49

bμi thùc hμnh sè 2................................................................................................................... 51

bμi thùc hμnh sè 3................................................................................................................... 54

bμi thùc hμnh sè 4................................................................................................................... 58

Page 3: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 3

PHÇN 1: c¬ b¶n vÒ html vμ VBSCRIPT I. C¸C THÎ §Ó T¹O PHÇN Tö HTML C¥ B¶N

1. Có ph¸p chung:

<Tên_Loại_Phần_Tử <Thuộc tính 1> = “Giá trị” <Thuộc Tính> = “Giá trị”… > <Tên_Loại_Phần_Tử Style = “Thuộc_tính: giá_trị; thuộc_tính : giá trị ;….; > Kết hợp cả hai cách.

Trong đó :

Tên loại phần tử HTML Thuộc tính Button Name Text VALUEFile MAXLENGTHHidden ReadOnly Select Disable TextArea Cols, Rows CheckBox Multiple TYPE

Phần “giá trị” có thể đặt trong cặp ngoặc kép hoặc cặp ngoặc đơn hoặc không cần !! Nếu đặt thuộc tính theo cách 2, thì có thể tham chiếu bảng sau (gọi là theo cú pháp CSS)

2. T¹o mét sè phÇn tö c¬ b¶n Tạo nút nhấn

<Input name="KiemTra" TYPE="button" VALUE="Kiểm tra dữ liệu"> <Input TYPE="Submit" VALUE="Đăng nhập">

Tạo ô nhập <Input name="HoVaTen" TYPE="text" VALUE="Nguyễn Văn A" size="20" MAXLENGTH="30"> <Input name="Khoa" TYPE="text" VALUE="Khoa Công nghệ thông tin" size="40" MAXLENGTH="50" readonly="true"> <Input name="Truong" TYPE="text" VALUE="Trường Đại học sư phạm kỹ thuật Hưng Yên" size="40" MAXLENGTH="50" Disabled="true">

Tạo vùng nhập (Textarea) <textarea name="GhiChu" cols="50" rows="5"> Nội dung ghi chú: </textarea>

Tạo ô nhập Password <Input name="MatKhau" type="password" value="123456" size="10" maxlength="20">

Tạo listbox <select name="MonHoc" size="5" > <option>Visual Basic</option> <option>Lập trình .NET</option> <option>Lập trình ASP</option>

Page 4: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 4

</select>

Tạo ComboBox (chỉ cần bỏ thuộc tính size) <select name="Mon" size = 1 onChange="Call DocGiaTriListBox">

<option value = "Visual Basic">Visual Basic</option> <option value = "DOT_NET">Lập trình .NET</option> <option value = "ASP">Lập trình ASP</option>

</select>

Tạo hộp kiểm <Input name="chkVB" type="checkbox" value="Visual Basic" checked> Visual Basic <Input name="chkASP" type="checkbox" value="ASP "> Active Server Pages

Tạo nút Radio <Input name="GioiTinh" type="radio" value="Nam" checked> <Input name="GioiTinh" type="radio" value="Nữ" > <Input name="TinhTrang" type="radio" value="Đã lập gia đình" > <Input name="TinhTrang" type="radio" value="Độc thân" checked > Tên giống nhau thì sẽ thuộc về cùng một nhóm (Groups)

Phần tử chọn File <Input name="ChonFile" type="file" size="30">

Tạo textbox ẩn (Hidden). <Input name="PhanTuAn" type="hidden" value=""> Tạo các phần tử và đặt thuộc tính: + Tạo một textbox và đặt thuộc tính font: <FONT FACE = “Times New Roman”> <Input type = text value = “Font chữ Unicode đây !”> </FONT> + Tạo một textbox và đặt thuộc tính thông qua phong cách CSS: <Input type = text value = “Font Unicode” Style = “Font-Family:Times new roman”> + Tạo một nhãn có font chữ xanh, có hiệu ứng: <P Style =”Color:Blue; font-size:20; Text-Align:center”>Xin chào </p> + Tạo một nút nhấn có màu nền đỏ:

<Input type = button style=”font-family:arial; background-color:red” value = “Đỏ”>

Page 5: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 5

Kết quả

Page 6: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 6

II. Ng«n ng÷ VBScript (ng

1. Nhóng c©u lÖnh VBSCRIPT vµo trang web Sử dụng thẻ <script Language = VBScript> Ví dụ 1: <script language="VBScript"> MsgBox "Xin chào các bạn lớp T08A !" </SCRIPT> Ví dụ 2: <script language="VBScript"> Sub Chao MsgBox "Xin chào các bạn lớp T08A!" End Sub '/// Gọi thủ tục Chao. Viết là Call Chao hoặc Chao đều được Call Chao </SCRIPT> Ví dụ 3: <script language="VBScript">

Function Tong(a, b) Tong = a + b End Function Msgbox "Tổng của 2 + 3 = " & Tong(2,3)

</SCRIPT> *** Chú ý: Trong cặp thẻ <Script> …. </Script> Chỉ có thể chứa các câu lệnh VBScript, không được chứa các thẻ HTML.

2. G¾n kÕt m∙ lÖnh VBSCRIPT lªn c¸c sù kiÖn Mỗi phần tử trên form có thể có các sự kiện như OnClick, OnChange, OnKeyUp … Khi đó ta có thể yêu cầu trình duyệt thực thi các câu lệnh hoặc thủ tục VBScript khi các sự kiện này xảy ra. Cú pháp: <…. Tên_Sự_Kiện = "Câu lệnh VBScript" ….>

- Câu lệnh có thể là một lệnh đơn hoặc một lời gọi Hàm/ thủ tục - Thông thường, ta nên gọi một thủ tục hoặc hàm

Ví dụ 1: Đưa ra lời chào khi người dùng click vào nút nhấn: <Input type = Button Value = "Click here..." OnClick = 'MsgBox "Xin chào lớp T08A !" '> Ví dụ 2: Thực hiện đưa ra lời chào khi người dùng click bằng việc gọi thủ tục

<script language="VBScript"> Sub Chao MsgBox "Xin chào các bạn lớp T08A!" End Sub </SCRIPT> <Input type = Button Value = "Click here..." OnClick = "Chao"> HOẶC

Page 7: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 7

<Input type = Button Value = "Click here..." OnClick = "Call Chao"> I. Đọc và ghi dữ liệu trong các phần tử HTML Nhìn chung, để đọc hay thay đổi nội dung của một phần tử HTML, thông thường ta đọc hay thay đổi thuộc tính Value của nó. Cú pháp là : Đọc : <Tên>.Value Ghi (Thay đổi): <Tên>.Value [= Giá trị mới] Chú ý: Để đọc / ghi giá trị nằm trong phần tử HTML thì bắt buộc khi tạo phần tử đó cần có thuộc tính NAME

3. Ghi vµ ®äc d÷ liÖu trong TextBox <Input type = Text name = “HoVaTen” Value = “Nguyễn Văn A”>

<script language="VBScript"> HoVaten.Value = "Trần Thị B" '// Ghi Msgbox "Giá trị trong hộp HoVaTen bây giờ là : " &HoVaTen.Value '// Đọc </SCRIPT> 1. Đọc dữ liệu trong Listbox

<script language="VBScript"> '/// thủ tục này được gọi khi người dùng Click chọn ListBox Sub DocGiaTriListBox Dim MucChon MucChon = Mon.Value Msgbox "Bạn đã chọn mục : " & MucChon End Sub </SCRIPT> <select name="Mon" size = 1 onChange="Call DocGiaTriListBox"> <option value = "Visual Basic">Visual Basic</option> <option value = "DOT_NET">Lập trình .NET</option> <option value = "ASP">Lập trình ASP</option> </select> <Input type="button" value="Đọc giá trị trong Listbox" onClick="DocGiaTriListBox">

4. §äc d÷ liÖu trong ComboBox: Gièng nh− Listbox

5. §äc / Ghi gi¸ trÞ trong CheckBox <HTML> <BODY> <script language=vbscript> Sub HT IF vb.checked=true Then Msgbox "VB đã được chọn" IF asp.checked=true Then msgbox "ASP đã được chọn" End Sub </SCRIPT> <Input type=button value ="Click đây !" onclick="HT" /> VB : <Input name="VB" type=checkbox checked /> <br /> ASP <Input name ="ASP" type=checkbox /> <br />

Page 8: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 8

</BODY> </HTML>

Page 9: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 9

PhÇn II : ASP

I. ASP là g× ?

II. CÊu tróc cña mét file ASP <%@ Language = "VBScript"%> … C¸c thÎ HTML…. <% …….. C¸c c©u lÖnh viÕt theo có ph¸p tùa Visual Basic …… %> … C¸c thÎ HTML…. <% …….. C¸c c©u lÖnh viÕt theo có ph¸p tùa Visual Basic …… %> … C¸c thÎ HTML…. <% …….. C¸c c©u lÖnh viÕt theo có ph¸p tùa Visual Basic …… %> … C¸c thÎ HTML….

2. Mét sè l−u ý: - PhÇn më réng cña file ph¶i lµ ASP - Cã thÓ viÕt nhiÒu ®o¹n <% … %> trong mét file aSP - Trong ®o¹n <% … %> ph¶i lµ c¸c c©u lÖnh asp, kh«ng ®−îc chøa c¸c thÎ. NÕu muèn in C¸c thÎ -

§−a vµo c©u lÖnh response.write. - C¸c c©u lÖnh n»m trong phÇn <% …. %> lµ c¸c c©u lÖnh viÕt gièng nh− Visual Basic.(Vßng lÆp for, do while, do … loop, c¸c hµm nh− Left, right, month, abs, year, mid, …..sö dông gièng nh− trong VB) §Ó "READ" trong ASP sö dông ®èi t−îng REQUEST §Ó "WRITE" trong ASP - Sö dông ®èi t−îng RESPONSE

§èi t−îng Response

0. VÊn ®Ò giao tiÕp (nhËp xuÊt) gi÷a ng−êi dïng vµ webserver.

1. Chøc n¨ng (ChÝnh) Dïng ®Ó tr¶ (write) kÕt qu¶ vÒ cho m¸y kh¸ch (Tr×nh duyÖt)

2. Mét sè ph−¬ng thøc dïng:

2.1 Ph−¬ng thøc write ViÕt kÕt qu¶ tr¶ vÒ cho tr×nh duyÖt (m¸y kh¸ch).

+ Có ph¸p : Response.write(<X©u>/BiÓu thøc) Trong ®ã <X©u> lµ mét x©u ký tù, cã thÓ chøa c¸c thÎ HTML. BiÓu thøc cã thÓ lµ h»ng, biÕn, hµm, biÓu thøc chøa c¶ h»ng, biÕn, hµm ….

+VÝ dô: Göi x©u “Hello world” vÒ cho tr×nh duyÖt. <%@ Language = vbscript %> <HTML>

Page 10: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 10

<BODY> <%

Response.write(“Hello world”) %> </BODY> </HTML>

T−¬ng ®−¬ng víi:

<%@ Language = vbscript %> <HTML> <BODY>

Hello world </BODY> </HTML>

2.2 Ph−¬ng thøc Redirect H−íng ng−êi dïng sang mét trang web kh¸c. VÝ dô khi ng−êi dïng gâ www.abc.com/Trang1.asp th× chóng ta cã thÓ h−íng (më) sang trang Trang2.asp ®Ó hiÓn thÞ. + Có ph¸p: Response.Redirect URL (§Þa chØ/ siªu liªn kÕt) + VÝ dô: Khi ng−êi dïng nhËp vµo trang Trang1.asp, ta sÏ hiÓn thÞ trang Trang2.Asp. Khi ®ã néi dung cña trang1.asp sÏ nh− sau: <%@ Language = vbscript %> <HTML> <head> <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"> <title>Redirect</title> </head> <BODY> .... B¹n ph¶i th¨m trang2.asp tr−íc ®· ! <BR> <% '..............

Response.redirect "Trang2.asp" '.............. %> </BODY> </HTML> Mét vÝ dô cÇn sö dông ®Õn ph−¬ng thøc nµy ®ã lµ, khi ng−êi dïng ch−a thùc hiÖn ®¨ng nhËp vµ vµo ngay trang thao t¸c víi CSDL th× ta cÇn redirect ®Õn trang ®¨ng nhËp.

®èi t−îng Request M« h×nh nhËp liÖu tõ ng−êi dïng vµ tiÕp nhËn d÷ liÖu cña webserver: 2 con ®−êng.

1. POST: Göi c¶ mét form nhËp d÷ liÖu tíi webserver 2. GET : Göi th«ng qua liªn kÕt URL

1. Chøc n¨ng NhËn (lÊy / ®äc) vÒ c¸c gi¸ trÞ khi ng−êi dïng Submit (göi) ®i. (VÝ dô khi ng−êi dïng ®iÒn c¸c th«ng tin ®¨ng ký tµi kho¶n vµ nhÊn vµo nót Submit th× th«ng tin ®ã sÏ ®−îc nhËn vÒ th«ng qua ®èi t−îng Request).

Page 11: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 11

Cã hai c¸ch ®Ó ng−êi dïng göi th«ng tin ®i Cã 2 c¸ch t−¬ng øng ®Ó tiÕp nhËn (®äc) . C¸ch 1: Ng−êi dïng nhËp th«ng tin trong c¸c textbox, sau ®ã göi c¸c th«ng tin trong c¸c textbox nµy tíi mét trang asp kh¸c. Khi ®ã ng−êi ta gäi c¸ch göi ®ã lµ göi theo kiÓu “POST”. C¸ch 2: Th«ng tin cã thÓ göi tíi mét trang kh¸c b»ng c¸ch g¾n vµo sau mçi URL cña trang ®ã. VÝ dô ®Ó göi hai th«ng tin lµ HoTen vµ Tuoi víi gi¸ trÞ t−¬ng øng lµ T08A vµ 2 cho trang XuLy.asp th× cã thÓ thùc hiÖn nh− sau: XuLy.asp?HoTen=T08A&Tuoi=2 Có ph¸p ®Ó g¾n vµo sau trang nhËn nh− sau: TrangNhan.asp ? Thuéc_TÝnh 1 = Gi¸ trÞ1 & Thuéc_TÝnh 2 = Gi¸ trÞ 2 & …. C¸ch göi nµy gäi lµ ph−¬ng thøc göi kiÓu ”GET”

2. Mét sè thuéc tÝnh vµ ph−¬ng thøc th−êng dïng

2.1 Thuéc tÝnh Form Dïng ®Ó lÊy gi¸ trÞ cña tõng thuéc tÝnh mµ trang kh¸c göi tíi b»ng ph−¬ng thøc POST Có ph¸p: Request.Form(“Tªn_Thuéc_TÝnh_CÇn_LÊy”) VÝ dô: Trang1.asp cã 2 « textbox tªn lµ HoTen vµ Tuoi. cho phÐp ng−êi dïng nhËp vµo vµ khi ng−êi dïng göi ®i (Submit) tíi trang Trang2.asp. th× trang2.asp sÏ hiÓn thÞ lêi chµo tíi ng−êi ®ã. Néi dung 2 file nµy sÏ nh− sau:

Trang1.asp <HTML> <head> <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"> <title>Göi d÷ liÖu sang trang kh¸c</title> </head> <BODY> Trang nhËp th«ng tin : <br>

<FORM name="NhapLieu" action ="Trang2.asp" method="post"> Hä và tªn : <Input type ="text" name="HoTen"> <br> Tuæi : <Input type="text" name ="Tuoi"> <br> <Input type="Submit" value="Göi ®i" name="cmdGui">

</FORM> </BODY> </HTML>

Trang2.asp <HTML> <head> <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"> <title>NhËn d÷ liÖu göi tõ trang kh¸c </title> </head>

Page 12: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 12

<BODY> <% Dim HT , Tuoi HT = Request.Form(“HoTen”) Tuoi = Request.Form(“Tuoi”) Response.write(“Chào b¹n “ & HT &”. Tuæi cña b¹n : “ &Tuoi) %> </BODY> </HTML>

Chó ý: + Muèn göi th«ng tin trong c¸c ®iÒu khiÓn (c¸c textbox, textarea, checkbox, list…) ®i th× c¸c ®iÒu khiÓn ®ã ph¶i ®Æt trong mét Form (cÆp thÎ <Form> …. </Form>) nµo ®ã. + Trang web tiÕp nhËn th«ng tin ®ã sÏ ®−îc ®Æt trong thuéc tÝnh Action cña Form. + Ph−¬ng thøc göi ®i ®−îc chØ ®Þnh th«ng qua thuéc tÝnh method. §Æt cho thuéc tÝnh nµy gi¸ trÞ hoÆc lµ POST hoÆc lµ GET. + Mét trang cã thÓ göi (Post) ®Õn chÝnh trang ®ã. §iÒu nµy th−êng ®−îc ¸p dông khi néi dung trang web lµ ®¬n gi¶n (vÝ dô trang Login), cßn ®èi víi c¸c trang phøc t¹p (nhiÒu xö lý) th× nªn göi ®Õn mét trang riªng. VÝ dô 2: Cho ng−êi dïng nhËp vµo n¨m sinh, sau ®ã tÝnh to¸n vµ hiÓn thÞ tuæi cña ng−êi ®ã. C¸ch thøc ë ®©y lµ : Trang cho ng−êi dïng nhËp n¨m sinh vµ trang ®Ó hiÓn thÞ kÕt qu¶ lµ gièng nhau.

Trang TinhTuoi.asp - Version 1 <%@language = vbscript %> <HTML> <head> <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"> <title>Tinh tuoi</title> </head> <BODY> <% IF Request.Form("NamSinh")="" THEN Response.write (“<form name=Form1 action='TinhTuoi.asp' method=POST>”) Response.write (“Nhap nam sinh cua ban : <Input type=text name=’NamSinh’>”) Response.write (“<Input type=Submit value=’Gui di’>”) Response.write (“</form>”) ELSE Response.write ("Tuoi cua ban la : " & (year(now) - Request.Form("NamSinh"))) END IF %> </BODY> </HTML>

Page 13: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 13

Trang TinhTuoi.asp - Version 2 <%@language = vbscript %> <HTML> <head> <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"> <title>Tinh tuoi</title> </head> <BODY> <% IF Request.Form("NamSinh")="" THEN %> <FORM name=Form1 action="TinhTuoi.asp" method=POST> Nhap nam sinh cua ban : <Input type=text name="NamSinh" > <Input type=Submit value="Gui di"> </FORM> <table> <% ELSE Response.write("Tuoi cua ban la : " & (year(now) - Request.Form("NamSinh"))) END IF %> </BODY> </HTML>

Version 3 – Sö dông c¸c trang xö lý riªng biÖt

- ý t−ëng: Ta t¸ch lµm 2 trang, mét trang "Chuyªn" hiÓn thÞ form nhËp n¨m sinh, sau ®ã göi tíi mét trang "chuyªn" xö lý vµ hiÓn thÞ kÕt qu¶.

- Trang hiÓn thÞ form nhËp do kh«ng cã xö lý g×, do vËy ta chØ cÇn t¹o trang ®ã lµ trang HTM th«ng th−êng – NhapNamSinh.htm.

- Trang xö lý do ph¶i dïng c¸c c©u lÖnh ASP nªn ta sÏ t¹o trang ASP- TinhTuoi.asp

Trang NhapNamSinh.htm <HTML> <head> <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"> <title>Nhap nam sinh </title> </head> <BODY> <FORM Action="TinhTuoi.asp" method=POST> Nhap nam sinh cua ban : <Input type=text name=NamSinh> <Input type=Submit value="Gui di"> </FORM> </BODY> </HTML>

Trang TinhTuoi.asp <%@language = vbscript %> <HTML> <head> <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"> <title>Tinh tuoi</title> </head>

Page 14: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 14

<BODY> <% IF Request.Form("NamSinh")= "" THEN Response.Redirect("NhapNamSinh.htm") ELSE Response.write ("Tuoi cua ban la: " & (year(now)-Request.Form("NamSinh"))) END IF %> </BODY> </HTML>

C¸ch (version) nµo dÔ dµng h¬n ®èi víi b¹n ? 3 version cã −u vµ nh−îc ®iÓm g× ? rót KL !

2.2 Thuéc tÝnh QueryString Dïng ®Ó ®äc d÷ liÖu do trang kh¸c göi tíi th«ng qua ph−¬ng thøc GET (Th−êng lµ göi d÷ liÖu b»ng c¸ch g¾n vµo ngay sau liªn kÕt - URL). + Có ph¸p ®äc d÷ liÖu göi ®Õn th«ng qua ph−¬ng thøc nµy nh− sau:

Request.QueryString("Tªn_Thuéc_TÝnh_CÇn_LÊy") + VÝ dô 1 : Göi tíi trang TinhTuoi.ASP n¨m sinh (®Æt tªn lµ NamSinh) cã gi¸ trÞ lµ 1980 ë d¹ng GET. Khi ®ã, Hyperlink göi ®i cã d¹ng :

http://www.T08A.com/TinhTuoi.asp?NamSinh=1980 Dßng ®Þa chØ trªn cã thÓ t¹m dÞch lµ "Göi mét th«ng tin cã tªn lµ NamSinh víi gi¸ trÞ 1980

®Õn trang TinhTuoi.ASP Chó ý: §Ó göi d÷ liÖu theo kiÓu GET th× cã thÓ göi b»ng c¸ch gâ trùc tiÕp vµo hép ®Þa chØ (address) cña tr×nh duyÖt hoÆc cã thÓ x©y dùng mét trang riªng, sau ®ã míi göi. §Ó tiÕp nhËn vµ xö lý d÷ liÖu nµy, néi dung trang TinhTuoi.asp sÏ nh− sau:

TinhTuoi.asp - Version 1 <%@language = vbscript %> <HTML> <head> <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"> <title>Tinh tuoi</title> </head> <BODY> <% IF Request.QueryString("NamSinh")= "" THEN Response.write ("B¹n gâ ®Þa chØ cã d¹ng: Domain/TinhTuoi.asp?NamSinh=So") ELSE Response.write ("Tuæi cña b¹n: " &(year(now)-Request.QueryString("NamSinh"))) END IF %> </BODY> </HTML>

Víi phiªn b¶n nµy, râ rµng khi muèn göi d÷ liÖu cho mét trang chóng ta ph¶i gâ mét c¸ch thñ c«ng ! Cã thÓ göi theo c¸ch nµy nh−ng dÔ dµng ®−îc h¬n kh«ng ? VÝ dô nh− cho ng−êi dïng nhËp vµo

c¸c « textbox ch¼ng h¹n ?

Page 15: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 15

TinhTuoi.asp - Version 2 <%@language = vbscript %> <HTML> <head> <meta http-equiv="Content-Type" content="text/HTML; charset=utf-8"> <title>Tinh tuoi</title> </head> <BODY> <% IF Request.QueryString("NamSinh") = "" THEN %> <FORM name=Form1 action="TinhTuoi.asp" method=GET> Nhap nam sinh cua ban : <Input type=text name="NamSinh" > <Input type=SUBMIT value="Gui di"> </FORM> <% ELSE Response.write ("Tuæi cña b¹n : " & (year(now)-Request.QueryString("NamSinh"))) END IF %> </BODY> </HTML>

KÕt qu¶ hiÓn thÞ trªn tr×nh duyÖt:

Khi lÇn ®Çu tiªn më trang TinhTuoi.asp

Sau khi nhËp 1977 vµo « textbox (h·y ®Ó ý trªn thanh ®Þa chØ)

VÝ dô 2: Gi¶ lËp mét øng dông ®Ó hiÓn thÞ c¸c s¶n phÈm vµ cho phÐp ng−êi dïng xem chi tiÕt mÆt hµng khi ng−êi dïng click chän hyperlink t−¬ng øng.

Page 16: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 16

Trong øng dông gi¶ lËp nµy, ta sÏ hiÓn thÞ 3 ®Çu môc s¶n phÈm cã d¹ng :

HDD Seagate 40 GB Xem chi tiÕt HDD Seagate 80 GB Xem chi tiÕt HDD Seagate 160 GB Xem chi tiÕt

Khi ng−êi dïng click vµo Hyperlink "Xem chi tiÕt" ë bªn c¹nh mçi s¶n phÈm th× ta hiÓn thÞ th«ng tin t−¬ng øng vÒ s¶n phÈm ®ã.

Khi ng−êi dïng chän mét môc th× cÇn ph¶i cã th«ng tin göi tr¶ l¹i trang xö lý ®Ó biÕt hä ®· chän s¶n phÈm nµo ®Ó hiÓn thÞ th«ng tin phï hîp Èn chøa trong mçi Hyperlink ph¶i cã nh÷ng th«ng tin cÇn thiÕt, vÝ dô mét m· s¶n phÈm (MaSanPham) ch¼ng h¹n Dïng h×nh thøc göi GET lµ phï hîp !

Trang ShowProduct.asp - Hiển thị sản phẩm và chi tiết sản phẩm: 2 in 1 <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Hien thi san pham</title> </head> <BODY> <% IF Request.QueryString("MaSanPham") = "" THEN %> <table border=0 cols=2 width="100%"> <TR> <TD>HDD Seagate 20 GB </td> <TD> <a href="ShowProduct.asp?MaSanPham=hdd20">Xem chi tiÕt</a> </td> </TR> <TR> <TD>HDD Seagate 40 GB </td> <TD> <a href="ShowProduct.asp?MaSanPham=hdd40">Xem chi tiÕt</a> </td> </TR> <TR> <TD>HDD Seagate 80 GB </td> <TD> <a href="ShowProduct.asp?MaSanPham=hdd80">Xem chi tiÕt</a> </td> </TR> </table> <% ELSE SELECT CASE Request.QueryString("MaSanPham") CASE "hdd20" Response.write("æ c�ng Seagate 20 GB, gi¸ 40 $") CASE "hdd40" Response.write("æ c�ng Seagate 40 GB, gi¸ 80 $") CASE "hdd80" Response.write("æ c�ng Seagate 80 GB, gi¸ 100 $") END SELECT END IF %> </BODY> </HTML>

Page 17: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 17

??? Request.QueryString("MaSanPham") = "" cã nghÜa g× ? Phiªn b¶n ë trªn : Sö dông mét trang võa hiÓn thÞ võa xö lý d÷ liÖu göi ®Õn (kiÓu 2 in 1). Ta cã thÓ sö dông c¬ chÕ 1 in 1, tøc lµ: Trang hiÓn thÞ riªng vµ trang hiÓn thÞ chi tiÕt riªng:

Trang HienThiSP.htm <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>HiÓn thÞ s¶n phÈm</title> </head> <BODY> <table border=0 cols=2 width="100%"> <TR> <TD>HDD Seagate 20 GB </td> <TD> <a href=" ShowDetail.asp?MaSanPham=hdd20">Xem chi tiÕt</a> </td> </TR> <TR> <TD>HDD Seagate 40 GB </td> <TD> <a href=" ShowDetail.asp?MaSanPham=hdd40">Xem chi tiÕt</a> </td> </TR> <TR> <TD>HDD Seagate 80 GB </td> <TD> <a href=" ShowDetail.asp?MaSanPham=hdd80">Xem chi tiÕt</a> </td> </TR> </table> </BODY> </HTML>

Trang ShowDetail.asp <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>HiÓn thÞ chi tiÕt s¶n phÈm </title> </head> <BODY> <% IF Request.QueryString("MaSanPham") <> "" THEN SELECT CASE Request.QueryString("MaSanPham") CASE "hdd20" Response.write("æ cøng Reagate 20 GB, gi¸ 40 $") CASE "hdd40" Response.write("æ cøng Seagate 40 GB, gi¸ 80 $") CASE "hdd80" Response.write("æ cøng Seagate 80 GB, gi¸ 100 $") END SELECT ELSE Response.write("B¹n vào trang ShowProduct.asp tr−íc ®· ! <BR>") Response.write ("<a href = 'HienThiSP.htm'> &lt; &lt Quay trë l¹i </a>")

Page 18: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 18

END IF %> </BODY> </HTML>

NhËn xÐt : Göi d÷ liÖu theo kiÓu POST khi nµo ? vµ GET khi nµo ?

Mét sè bµi tËp: (Sö dông c¶ ph−¬ng ph¸p göi POST vµ GET)

1. ViÕt trang web tra cøu tõ ®iÓn. Cho ng−êi dïng nhËp vµo mét tõ tiÕng Anh, trang web sÏ hiÓn thÞ nghÜa tiÕng viÖt t−¬ng øng.

2. ViÕt trang web thùc hiÖn tÝnh to¸n víi c¸c phÐp to¸n, hµm ®¬n gi¶n.

®èi t−îng server Lµ mét ®èi t−îng cung cÊp mét sè hµm th−êng dïng trong øng dông. Cã 2 ph−¬ng thøc ®−îc cung cÊp bëi ®èi t−îng server lµ Mappath vµ CreateObject.

1. Ph−¬ng thøc Mappath Tr¶ vÒ ®−êng dÉn vËt lý tõ ®−êng dÉn (th− môc) ¶o. + Có ph¸p: Server.Mappath(“§−êng dÉn ¶o/ t−¬ng ®èi”) + VÝ dô: Cã mét ®Þa chØ nh− sau: http://localhost/HienThiSP.htm

VÞ trÝ ¶o cña tÖp Hienthisp.htm trªn webserver

Trang web HienThiSP.htm cã ®−êng dÉn ¶o lµ Localhost/HienThiSP.htm. §−êng dÉn vËt lý (n»m trªn æ cøng cña trang nµy) lµ: c:\inetpub\wwwroot\HienThisp.htm

Page 19: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 19

VÞ trÝ vËt lý cña tÖp Hienthisp.htm trªn æ cøng.

Trong tr−êng hîp nµy, Server.Mappath(“HienThiSP.htm”) sÏ cho ta kÕt qu¶ lµ

c:\inetpub\wwwroot\HienThisp.htm.

Nh− vËy hµm Mappath thùc hiÖn ¸nh x¹ tõ ®−êng dÉn ¶o ®−êng dÉn vËt lý. Hµm nµy ®Æc biÖt hay dïng khi chóng ta tham chiÕu ®Õn ®−êng dÉn vËt lý cña c¸c tÖp CSDL khi kÕt nèi. VÝ dô:

Trang Mappath_Demo.asp <%@ language = vbscript %> <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Mappath</title> </head> <BODY> Duong dan vat ly cua mot so trang web : <br> <% Response.write (server.mappath("HienThiSP.htm")) Response.write ("<BR>") Response.write (server.mappath("/HienThiSP.htm")) Response.write ("<BR>") Response.write (server.mappath("/data/nwind.mdb")) Response.write ("<BR>") %> </BODY> </HTML>

Page 20: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 20

KÕt qu¶:

KÕt qu¶

L−u ý: NÕu tÖp kh«ng tån t¹i hoÆc ®−êng dÉn ¶o ®−a vµo sai th× hµm tr¶ vÒ sÏ lµ mét x©u gåm ®−êng dÉn tíi th− môc wwwroot céng víi x©u ®Æt trong mappath. Hái : Kh«ng cÇn dïng ®Õn Mappath cã ®−îc kh«ng ?

2. Ph−¬ng thøc CreateObject T¹o ra mét sè ®èi t−îng. VÝ dô t¹o ra c¸c ®èi t−îng truy xuÊt ®Õn CSDL. + Có ph¸p: Set <Tªn_BiÕn> = Server.CreateObject(“X©u m« t¶ ®èi t−îng cÇn t¹o”) X©u th−êng dïng (®èi t−îng th−êng ®−îc t¹o): ADODB.Connection vµ ADODB.Recordset. + VÝ dô : T¹o mét ®èi t−îng Connection vµ ®èi t−îng Recordset

Dim Conn, Rs Set Conn = Server.CreateObject("ADODB.Connection") Set Rs = Server.CreateObject("ADODB.Recordset")

®èi t−îng session – biÕn sesstion §èi t−îng Session : Dïng ®Ó qu¶n lý c¸c th«ng tin liªn quan ®Õn mét phiªn lµm viÖc. Mét phiªn (Session) lµm viÖc lµ g× ?: Mçi khi më tr×nh duyÖt (lÇn ®Çu tiªn) vµo website øng dông, ta ®· t¹o ra mét phiªn lµm viÖc. Phiªn lµm viÖc kÕt thóc khi ta ra khái website øng dông hoÆc khi tÊt c¶ c¸c cöa sæ tr×nh duyÖt bÞ ®ãng.

1. BiÕn Sesstion Khi vµo mét website, ng−êi dïng cã thÓ duyÖt rÊt nhiÒu trang web cña website ®ã. NÕu muèn

l−u tr÷ th«ng tin vÒ kh¸ch th¨m nµy trong c¶ phiªn lµm viÖc th× cã thÓ l−u vµo c¸c biÕn, gäi lµ biÕn Session.

2. §èi t−îng Session Lµ ®èi t−îng dïng ®Ó qu¶n lý (t¹o, ®äc, ghi) c¸c biÕn sesstion vµ mét sè th«ng sè kh¸c. + Có ph¸p ®Ó t¹o biÕn Session nh− sau: Session(“Tªn_BiÕn”) = <Gi¸ trÞ> L−u ý: Tªn biÕn ph¶i ®Æt trong cÆp dÊu nh¸y kÐp. <Gi¸ trÞ> cã thÓ lµ x©u ký tù hoÆc sè. VÝ dô : T¹o mét biÕn tªn lµ MaNguoiDung vµ g¸n gi¸ trÞ lµ T08A

Page 21: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 21

Session(“MaNguoiDung”) = “T08A” + Có ph¸p ®Ó ®äc gi¸ trÞ cña mét biÕn sesstion nh− sau: Session(“Tªn_BiÕn”) + Có ph¸p ®Ó ghi (thay ®æi) gi¸ trÞ cña biÕn session: Session(“Tªn_BiÕn”) = <Gi¸ trÞ> VÝ dô: Response.write(“M· ng−êi dïng lµ : “ &Session(“MaNguoiDung”))

Riªng víi ®èi t−îng Session, nã cßn cã c¸c sù kiÖn. C¸c sù kiÖn nµy tù ®éng ®−îc gäi mçi khi mét phiªn lµm viÖc ®−îc t¹o ra. C¸c sù kiÖn nµy cã tªn lµ On_Start vµ On_End. C¸c sù kiÖn nµy ®−îc ®Æt trong file Global.asa.

File Global.asa <script LANGUAGE = "VBScript" RUNAT = Server> '/// Thñ tôc nµy ®−îc gäi khi b¾t ®Çu mét phiªn SUB Session_OnStart '........ Session("MaNguoiDung") = "Kh¸ch_L¹" '......... END SUB '/// Thñ tôc nµy ®−îc gäi khi kÕt thóc mét phiªn SUB Session_OnEnd '........ END SUB </SCRIPT>

VÝ dô ®äc gi¸ trÞ biÕn Session:

File Session_Demo.asp <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>§äc gi¸ trÞ cña biÕn Session cã tªn lµ MaNguoiDung</title> </head> <BODY> <% Response.write("<BR>B¹n lµ : " &Session("MaNguoiDung")) %> </BODY> </HTML>

VÝ dô: ChØ hiÓn thÞ c¸c trang chñ (Home.asp) nÕu ng−êi dïng cã tªn (UserName) lµ T08A vµ mËt khÈu lµ 123456. NÕu kh«ng th× hiÓn thÞ trang Login.asp ®Ó ng−êi dïng ®¨ng nhËp.

Trang Global.asa <script LANGUAGE = "VBScript" RUNAT = Server> '/// Thu tuc nay duoc goi khi bat dau mot phien SUB Session_OnStart '........

Page 22: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 22

Session("MaNguoiDung") = "" Session("MatKhau") = "" Session("TrangThaiDangNhap") = "ch−a" '......... END SUB '/// Thu tuc nay duoc goi khi ket thuc phien lam viec SUB Session_OnEnd '........ END SUB </SCRIPT>

Page 23: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 23

Trang Login.asp <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Dang nhap</title> </head> <BODY> <% IF Request.Form("MaNguoiDung")= "T08A" and Request.Form("MatKhau")="123456" THEN Session("MaNguoiDung") = Request.Form("MaNguoiDung") Session("MatKhau") = Request.Form("MatKhau") Session("TrangThaiDangNhap") = "råi" Response.write("B¹n ®· ®¨ng nhËp thµnh c«ng ! B¹n cã thÓ vµo ") Response.write("<a href = 'Home.asp'>Trang chñ </a>") ELSE ‘/// T¹o form ®¨ng nhËp Session("TrangThaiDangNhap") = "ch−a" Response.write("<form action='Login.asp' method = 'Post'>") Response.write("Tªn ®¨ng nhËp: <Input type = text name = MaNguoiDung> <BR>") Response.write("MËt khÈu : <Input type = password name = MatKhau> <BR>") Response.write("<Input type = Submit value = '§¨ng nhËp'>") Response.write("</form>") END IF %> </BODY> </HTML>

Trang Home.asp <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Trang chñ</title> </head> <BODY> <% IF Session("TrangThaiDangNhap") = "råi" THEN Response.write("<h2>§©y lµ trang chñ cña líp T08A !</h2>") Response.write("<h1>Chµo mõng b¹n ®· ghÐ th¨m website cña chóng t«i !") ELSE Response.write("B¹n ch−a ®¨ng nhËp ! <a href = 'Login.asp'> §¨ng nhËp. </a>") END IF %> </BODY> </HTML>

*L−u ý: Cã thÓ t¹o biÕn Session ë bÊt kú ®©u chø kh«ng nhÊt thiÕt ë trong file Global.asa

??? Dïng biÕn Session khi nµo ?

®èi t−îng application Dïng ®Ó qu¶n lý c¸c biÕn cã ph¹m vi toµn øng dông.

1. Kh¸i niÖm biÕn toµn øng dông BiÕn toµn øng dông lµ biÕn cã t¸c dông ®èi víi mäi ng−êi dïng truy cËp vµo website.

Page 24: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 24

2. §èi t−îng Application Dïng ®Ó qu¶n lý (T¹o, ®äc, ghi) c¸c biÕn cã ph¹m vi toµn øng dông. + Có ph¸p t¹o biÕn Application: Application(“Tªn_BiÕn”) = <Gi¸ trÞ> + VÝ dô: T¹o biÕn So_Nguoi_Truy_Cap Application(“So_Nguoi_Truy_Cap”) = 0 + VÝ dô : §äc vµ ghi biÕn Application Application(“So_Nguoi_Truy_Cap”)= Application(“So_Nguoi_Truy_Cap”) + 1

Response.write(“B¹n lµ vÞ kh¸ch thø: “ & Application(“So_Nguoi_Truy_Cap”))

L−u ý: Khi biÕn ®· tån t¹i th× lÖnh trªn ®−îc hiÓu lµ g¸n gi¸ trÞ míi, cßn nÕu ch−a tån t¹i th× ®−îc hiÓu lµ t¹o biÕn. §èi t−îng Application còng cã 2 sù kiÖn ®ã lµ Application_OnStart vµ Application_OnEnd. Sù kiÖn OnStart chØ ®−îc kÝch ho¹t duy nhÊt mét lÇn khi yªu cÇu ®Çu tiªn ph¸t sinh. Sù kiÖn OnEnd ®−îc kÝch ho¹t khi dÞch vô web dõng (unload). §èi t−îng Application cã 2 ph−¬ng thøc lµ Lock vµ Unlock. Khi gäi ph−¬ng thøc Lock (khãa) th× tÊt c¶ c¸c øng dông kh«ng ®−îc phÐp thay ®æi c¸c gi¸ trÞ Application. §Ó c¸c øng dông kh¸c ®−îc phÐp thay ®æi c¸c biÕn Application th× gäi ph−¬ng thøc Unlock. M· lÖnh viÕt cho 2 sù kiÖn nµy còng ®−îc ®Æt trong file Global.asa.

3. VÝ dô tæng hîp Mçi khi ng−êi dïng truy cËp vµo website th× hiÓn thÞ cho ng−êi ®ã biÕt lµ vÞ kh¸ch thø bao nhiªu – ch¼ng h¹n hiÓn thÞ trong trang Home.asp. Trang Global.asa <script LANGUAGE = "VBScript" RUNAT = Server> '/// Thu tuc nay duoc goi duy nhat mot lan SUB Application_OnStart Application("SoKhachTruyCap") = 0 END SUB '/// Thu tuc nay duoc goi khi IIS stop SUB Application_OnEnd Application("SoKhachTruyCap") = 0 END SUB '/// Thu tuc nay duoc goi khi bat dau mot phien SUB Session_OnStart '........ Application("SoKhachTruyCap") = Application("SoKhachTruyCap") + 1 '......... END SUB </SCRIPT> Trang Home.asp <HTML> <head>

Page 25: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 25

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Trang chu</title> </head> <BODY> <% Response.write("<h2>Day la trang chu cua lop T08A !</h2>") Response.write("<h1>Chao mung ban da ghe tham website cua chung toi !") Response.write("<hr>") Response.write("Ban la vi khach thu : " &application("SoKhachTruyCap")) %> </BODY> </HTML>

chÌn file vμo trang asp 1. ý nghÜa: RÊt nhiÒu trang cã nh÷ng phÇn th«ng tin gièng hÖt nhau (VÝ dô phÇn §Çu trang, ch©n trang hay phÇn kÕt nèi ®Õn CSDL) §Ó nhanh chãng, dÔ dµng söa ®æi, b¶o tr×, ASP cho phÐp ng−êi dïng chÌn mét trang vµo trang web hiÖn t¹i.

2. Có ph¸p chÌn file: <!-- #include Lo¹i_§−êng_DÉn = Tªn_File --> + Lo¹i_§−êng_DÉn cã thÓ lµ File hoÆc Virtual. NÕu Lo¹i_§−êng_DÉn = File th× Tªn_File lµ ®−êng dÉn t−¬ng ®èi tÝnh tõ th− môc hiÖn hµnh. NÕu Lo¹i_§−êng_DÉn = Virtual th× Tªn_File sÏ lµ ®−êng dÉn ¶o ®Çy ®ñ. VÝ dô 1:

<!-- #include File = “Home.asp” --> VÝ dô 2 :

<!-- #include Virtual = “/Data/KetNoi.asp” -->

3. VÝ dô tæng hîp T¹o mét trang web chøa footer cung cÊp th«ng tin liªn hÖ. Footer nµy xuÊt hiÖn trong tÊt c¶ c¸c trang, trong ®ã cã trang Home.asp. C¸c b−íc tiÕn hµnh: T¹o mét trang chøa néi dung footer, ®Æt tªn lµ Footer.asp Sau ®ã Include vµo c¸c trang – vÝ dô trang Home.asp Trang Footer.asp <hr> <h4 style="text-align:center"> &copy by T08A - UTEHY 2009. Telephone: 0321-123456/ Fax: 0321-713015; E-Mail: [email protected] </h4> L−u ý:

- Th−êng th× c¸c trang ®−îc Include nh− thÕ nµy cã ®u«i më réng lµ *.inc - Néi dung c¸c trang Include cã thÓ chøa c¶ thÎ HTML vµ c¶ m· lÖnh asp

Page 26: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 26

Trang Home.asp (Cã Include trang Footer.asp) <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Trang chu</title> </head> <BODY> <% Response.write("<h2>Day la trang chu cua lop T08A !</h2>") Response.write("<h1>Chao mung ban da ghe tham website cua chung toi !") Response.write("<BR>") Response.write("Ban la vi khach thu : " &application("SoKhachTruyCap")) %>

<!-- #include file = "Footer.asp" --> </BODY> </HTML>

KÕt qu¶ khi hiÓn thÞ trang home.asp

kÕt nèi vμ thao t¸c víi csdl trong asp

1. Qui t¾c chung - T¹o ®èi t−îng Connection vµ Recordset sö dông ph−¬ng thøc Server.CreateObject - KÕt nèi ®Õn CSDL - Thùc thi c¸c c©u lÖnh SQL th«ng qua ph−¬ng thøc Execute cña ®/t−îng Connection - §äc d÷ liÖu tõ Recordset sö dông vßng lÆp - KÕt hîp víi ®èi t−îng Response ®Ó göi tr¶ kÕt qu¶ vÒ cho tr×nh duyÖt.

2. T¹o ®èi t−îng Connection vµ kÕt nèi ®Õn CSDL Qui −íc: TÖp c¬ së d÷ liÖu dïng trong suèt c¸c vÝ dô lµ tÖp nwind.mdb vµ ®−îc ®Æt t¹i th− môc gèc cña øng dông. Trang KetNoi.asp <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=Utf-8"> <title>Ket noi </title>

Page 27: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 27

</head> <BODY> <% Dim Conn '// T¹o ®èi t−îng Connection Set Conn = Server.CreateObject("ADODB.Connection") Conn.ConnectionString = "Provider=Microsoft.Jet.oledb.4.0; Data Source = " & Server.Mappath("nwind.mdb") Conn.CursorLocation = 3 on error resume next '/// Më kÕt nèi Conn.Open IF Conn.State = 1 THEN Response.write("Da ket noi thanh cong !") ELSE Response.write("Khong the ket noi den CSDL !") END IF '/// §ãng kÕt nèi cn.Close %> </BODY> </HTML> §èi t−îng Connection nµy gièng nh− ®èi t−îng Connection trong Visual Basic. §Ó thùc hiÖn c¸c c©u lÖnh SQL, sö dông có ph¸p: Cn.Execute (<C©u lÖnh SQL>); víi Cn lµ mét ®èi t−îng Connection

3. T¹o ®èi t−îng Recordset Dim Rs Set Rs = Server.createObject(“ADODB.Recordset”)

§èi t−îng Recordset nµy gièng nh− ®èi t−îng Recordset trong Visual Basic. ViÖc phèi hîp gi÷a ®èi t−îng Connection vµ Recordset còng gièng nh− trong VB. 3.2 Thùc thi c©u lÖnh SQL:

<BiÕn_Connection>.Execute ("C©u_LÖnh_SQL") + C©u lÖnh SQL : Select ®Ó ®äc (Chän) ra c¸c b¶n ghi + C©u lÖnh : Insert ®Ó chÌn thªm c¸c b¶n ghi + C©u lÖnh: Delete ®Ó xãa b¶n ghi + C©u lÖnh Update ®Ó cËp nhËt c¸c b¶n ghi.

4. Mét sè vÝ dô

4.1 HiÓn thÞ toµn bé tªn nhµ cung cÊp (CompanyName) trong b¶ng Suppliers <HTML> <head>

Page 28: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 28

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Danh sach nha cung cap </title> </head> <BODY> <% Dim Conn, Rs '// T¹o ®èi t−îng Connection Set Conn = Server.CreateObject("ADODB.Connection") Conn.ConnectionString = "Provider=Microsoft.Jet.oledb.4.0; Data Source = " & Server.Mappath("nwind.mdb") Conn.CursorLocation = 3 '//// Më kÕt nèi ®Õn CSDL on error resume next Conn.Open '/// T¹o mét biÕn Recordset Set Rs = Server.CreateObject("ADODB.Recordset") '/// L−u kÕt qu¶ select vµo biÕn Recordset : RS Set Rs = Conn.Execute("SELECT CompanyName from Suppliers") '/// DuyÖt c¸c b¶n ghi trong biÕn kÕt qu¶ RS vµ write ra tr×nh duyÖt Do while not Rs.eof Response.write(Rs("CompanyName")) Response.write ("<BR>") Rs.MoveNext loop Conn.Close %> </BODY> </HTML> Version 2: KÕt nèi vµ ®äc d÷ liÖu sö dông ph−¬ng thøc Open cña ®èi t−îng Recordset. §äc d÷ liÖu th«ng qua ph−¬ng thøc Open <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Danh sach nha cung cap </title> </head> <BODY> <% Dim Conn, Rs Set Conn = Server.CreateObject("ADODB.Connection") Conn.ConnectionString = "Provider=Microsoft.Jet.oledb.4.0; Data Source = " & Server.Mappath("nwind.mdb") Conn.CursorLocation = 3 on error resume next

Page 29: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 29

Conn.Open Set Rs = Server.CreateObject("ADODB.Recordset") Rs.Open "SELECT CompanyName from Suppliers", Conn, 1,3 Do while not Rs.eof Response.write(Rs("CompanyName")) Response.write ("<BR>") Rs.MoveNext Loop Conn.Close %> </BODY> </HTML> Dïng c¸ch nµy, vÒ sau ta cã thÓ thªm vµ cËp nhËt CSDL th«ng qua Rs.

4.2.1 HiÓn thÞ danh s¸ch c¸c s¶n phÈm trong mét b¶ng Th«ng tin hiÓn thÞ gåm: Tªn s¶n phÈm, gi¸, … 4.2.2 Thªm b¶n ghi vµo trong CSDL X©y dùng trang asp cho phÐp ng−êi dïng thªm c¸c nhµ cung cÊp vµo 4.3 HiÓn thÞ danh s¸ch c¸c nhµ cung cÊp trong mét ComboBox 4.4 HiÓn thÞ Tªn c¸c nhµ cung cÊp (Companyname), vµ bªn c¹nh tªn nhµ cung cÊp cã thªm cét “Xem c¸c s¶n phÈm” do nhµ cung cÊp ®ã s¶n xuÊt ra. Khi ng−êi dïng click vµo Hyperlink nµy th× hiÓn thÞ tªn c¸c s¶n phÈm do nhµ cung cÊp ®ã ®· s¶n xuÊt ra. 4.5 T¹o mét form nhËp ®Ó cho phÐp ng−êi dïng nhËp thªm nhµ cung cÊp. 4.6 T¹o mét form ®Ó t×m kiÕm th«ng tin chi tiÕt nhµ cung cÊp. Th«ng tin nhËp vµo lµ m· nhµ cung cÊp (SupplierID) 4.7 T¹o mét trang cËp nhËt th«ng tin vÒ nhµ cung cÊp (b¶ng Suppliers) 4.8 T¹o mét trang cho phÐp xãa b¶n ghi trong b¶ng Suppliers 4.9 T¹o mét trang hiÓn thÞ thªm 3 cét “Add”, “Update”, “Delete” ®Ó cho ng−êi dïng cã thÓ thªm, söa ®æi vµ xãa b¶n ghi trong b¶ng Suppliers. 4.10 T¹o mét b¶ng Users, chøa tµi kho¶n ng−êi dïng. Sau ®ã x©y dùng trang Login.asp thùc hiÖn viÖc ®¨ng nhËp. 4.10 T¹o mét trang hiÓn thÞ danh môc c¸c lo¹i s¶n phÈm, mçi khi ng−êi dïng click vµo mét chñng lo¹i th× hiÓn thÞ c¸c s¶n phÈm thuéc chñng lo¹i ®ã. 4.11 HiÓn thÞ danh s¸ch s¶n phÈm theo tõng trang – 10 b¶n ghi / 1 trang.

Page 30: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 30

PHô LôC 1: DANH S¸CH C¸C THÎ TRONG JAVASCRIPT

- Các thuộc tính áp dụng cho Font chữ Thuộc tính Các giá trị hợp lệ Ví dụ

font-family [Tên font hoặc kiểu] font-family: Verdana, Arial;

font-style normal hoặc italic font-style:italic;

font-variant normal hoặc small-caps font-variant:small-caps;

font-weight normal ho bold font-weight:bold;

font-size [ xx-large | x-large | large | medium | small | x-small | xx-small ] | [ larger | smaller ] | phần trăm hoặc length

font-size:12pt;

Font [ font-style || font-variant || font-weight ] ? font-size [ / line-height ] ? font-family

font: bold 12pt Arial;

- Các thuộc tính màu và nền (Color and background properties) Thuộc tính Các giá trị hợp lệ Ví dụ

Color Màu color: red

background-color Màu hoặc transparent background-color: yellow

background-image Địa chỉ (url) hoặc Không đặt gì background-image: url(house.jpg)

background-repeat repeat | repeat-x | repeat-y | no-repeat background-repeat: no-repeat

background-attachment scroll hoặc fixed background-attachment: fixed

background-position [ position | length ] | {1,2} | [ top | center | bottom ] || [ left | center | right ]

background-position: top center

background transparent | color || url || repeat || scroll || position

background: silver url(house.jpg) repeat-y

* Lưu ý: Các giá trị in nghiêng khi sử dụng bạn phải thay bằng giá trị cụ thể, ví dụ viết phần trăm hay lenght thì bạn phải thay các giá trị dạng phần trăm, ví dụ 50% đối với thuộc tính phần trăm (percentage) và 10, 20 .... cho thuộc tính length.

Page 31: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 31

- Các thuộc tính áp dụng cho Text Thuộc tính Giá trị hợp lệ Ví dụ

Letter-spacing normal | length letter-spacing:5pt

text-decoration none | underline | overline | line-through text-decoration:underline

vertical-align Sub | super | vertical-align:sub

text-transform capitalize | uppercase | lowercase | none text-transform:lowercase

text-align left | right | center | justify text-align:center

text-indent length | percentage text-indent:25px

line-height normal | number | length | percentage line-height:15pt - Các thuộc tính áp dụng cho các ô trong một bảng Thuộc tính Giá trị hợp lệ Ví dụ

margin-top length | percentage | auto margin-top:5px

margin-right length | percentage | auto margin-right:5px

margin-bottom length | percentage | auto margin-bottom:1em

margin-left length | percentage | auto margin-left:5pt

Margin length | percentage | auto {1,4} margin: 10px 5px 10px 5px

padding-top length | percentage padding-top:10%

padding-right length | percentage padding-right:15px

padding-bottom length | percentage padding-bottom:1.2em

padding-left length | percentage padding-left:10pt; }

Padding length | percentage {1,4} padding: 10px 10px 10px 15px

border-top-width thin | medium | thick | length border-top-width:thin

border-right-width thin | medium | thick | length border-right-width:medium

border-bottom-width thin | medium | thick | length border-bottom-width:thick

border-left-width thin | medium | thick | length border-left-width:15px

border-width thin | medium | thick | length {1,4} border-width: 3px 5px 3px 5px

border-top-color color border-top-color:navajowhite

border-right-color Color border-right-color:whitesmoke

border-bottom-color Color border-bottom-color:black

border-left-color Color border-left-color:#C0C0C0

border-color color {1,4} border-color: green red white blue; }

border-top-style none | solid | double | groove | ridge | inset | outset

border-top-style:solid

border-right-style none | solid | double | groove | ridge | border-right-style:double

Page 32: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 32

inset | outset

border-bottom-style none | solid | double | groove | ridge | inset | outset

border-bottom-style:groove

border-left-style none | solid | double | groove | ridge | inset | outset

border-left-style:none

border-style none | solid | double | groove | ridge | inset | outset

border-style:ridge; }

border-top border-width | border-style | border-color

border-top: medium outset red

border-right border-width | border-style | border-color

border-right: thick inset maroon

border-bottom border-width | border-style | border-color

border-bottom: 10px ridge gray

border-left border-width | border-style | border-color

border-left: 1px groove red

Border border-width | border-style | border-color

border: thin solid blue

Float none | left | right float:none

clear none | left | right | both clear:left - Các thuộc tính phân loại - classification Properties Thuộc tính Giá trị hợp lệ Ví dụ

Display none | block | inline | list-item display:none

list-style-type disk | circle | square | decimal | lower-roman | upper-roman | lower-alpha | upper-alpha | none

list-style-type:upper-alpha

list-style-image url | none list-style-image:url(icFile.gif)

list-style-position inside | outside list-style-position:inside

list-style keyword || position || url list-style: square outside url(icFolder.gif)

- Các thuộc tính định vị trí cho các phần tử Thuộc tính Giá trị hợp lệ Ví dụ Có thể áp dụng cho

Clip Toạ độ của một hình chữ nhật| auto

clip:rect(0px 200px 200px 0px)

tất cả các phần tử (all elements)

Height length | auto height:200px DIV, SPAN và các ptử bị thay thế

Left length | percentage | auto

left:0px Các phần tử được định vị tuyệt đối và tương đối

Overflow visible | hidden | scroll | auto

overflow:scroll tất cả các phần tử

position absolute| relative | position:absolute tất cả các phần tử

Page 33: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 33

static

Top length | percentage | auto

top:0px Các phần tử được định vị tuyệt đối và tương đối

Visibility visible | hidden | inherit

visibility:visible tất cả các phần tử

Width length | percentage | auto

width:80% DIV, SPAN and replaced elements

z-index auto | integer z-index:-1 Các phần tử được định vị tuyệt đối và tương đối

- Thuộc tính liên quan đến in ấn - Printing Properties Thuộc tính Giá trị hợp lệ Ví dụ

page-break-before auto | always || left | right page-break-before:always

page-break-after auto | always || left | right page-break-before:auto -Pseudo Classes

Thuộc tính Giá trị hợp lệ Ví dụ

Cursor auto | crosshair | default | hand | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | text | wait | help

{ cursor:hand; }

Active, hover, link, visited

n/a a:hover { color:red; }

first-letter, first-line any font manipulating declaration p:first-letter{ float:left;color:blue }

Một số ví dụ áp dụng: Ví dụ 1: Tạo một dòng văn bản “Welcome to CSS” có font chữ là Arial, in nghiêng và kích thước font chữ là 16 point. <HTML> <HEAD> </HEADS> <BODY> <P style=“font-family:arial; font-style:italic; font-size:16pt”>Welcome to </P> </BODY> </HTML> <Xem kết quả> Ví dụ 2: Tạo một textbox với màu nền là màu tím (magenta). <HTML> <HEAD> </HEADS> <BODY> <Input type = text style = “background-color:magenta”> </BODY> </HTML> <Xem kết quả> Ví dụ 3: Đặt 3 file ảnh nền tương ứng vào tài liệu, vào textbox và vào textarea <HTML> <HEAD> </HEAD> <BODY style="background-image:url('anh1.jpg');background-repeat:no-repeat">

Page 34: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 34

<Input style = "background-image:url('anh2.jpg');background-repeat:repeat-x; width:100%"> <P> <textarea style = "background-image:url('anh3.jpg');background-repeat:repeat-y" cols = 80 rows = 25> </textarea> </BODY> </HTML> <Xem kết quả> *Ghi chú: -Khi ta đặt là repeat-x thì ta có một dãy ảnh được xếp liên tiếp theo chiều ngang -Khi ta đặt là repeat-y thì ta có một dãy ảnh được xếp liên tiếp theo chiều dọc Ví dụ 4: Tạo một dòng văn bản, chứa xâu: "Trang chu cua HY-Aptech", trong đó từ "Trang chu" có màu xanh (blue) và khi người dùng di chuyển chuột đến chữ "Trang chu" thì chuột chuyển thành hình bàn tay, và khi chuột click lên chữ này thì trang http://www.aptech.ute sẽ được mở. <HTML> <HEAD> </HEAD> <BODY> <TITLE>Tạo liên kết và xử lý sự kiện</TITLE> <font style ="cursor:hand;color:blue" onclick="window.open('http://www.aptech.ute');">Trang chu </font> cua HY-Aptech </BODY> </HTML> ===> Xem kết quả Ghi chú: Khi muốn áp dụng các kiểu cho một số phần tử các bạn chỉ cần viết : style="Tên_Thuộc_tính : Giá_Trị;" trong định nghĩa thẻ. Trong đó cặp "Tên_Thuộc_tính : Giá_Trị;" có thể viết như cột ví dụ đã chỉ ra ở các bảng trên.

PHô lôc 2: DANH S¸CH C¸C HμM TRONG VBSCRIPT

Language Element Description Abs Function Returns the absolute value of a number. Array Function Returns a Variant containing an array. Asc Function Returns the ANSI character code corresponding to the first letter in a string. Atn Function Returns the arctangent of a number. CBool Function Returns an expression that has been converted to a Variant of subtype Boolean. CByte Function Returns an expression that has been converted to a Variant of subtype Byte. CCur Function Returns an expression that has been converted to a Variant of subtype Currency. CDate Function Returns an expression that has been converted to a Variant of subtype Date. CDbl Function Returns an expression that has been converted to a Variant of subtype Double. Chr Function Returns the character associated with the specified ANSI character code. CInt Function Returns an expression that has been converted to a Variant of subtype Integer. CLng Function Returns an expression that has been converted to a Variant of subtype Long. Cos Function Returns the cosine of an angle. CreateObject Function Creates and returns a reference to an Automation object. CSng Function Returns an expression that has been converted to a Variant of subtype Single. CStr Function Returns an expression that has been converted to a Variant of subtype String. Date Function Returns the current system date. DateAdd Function Returns a date to which a specified time interval has been added. DateDiff Function Returns the number of intervals between two dates. DatePart Function Returns the specified part of a given date. DateSerial Function Returns a Variant of subtype Date for a specified year, month, and day. DateValue Function Returns a Variant of subtype Date. Day Function Returns a whole number between 1 and 31, inclusive, representing the day of the month.

Page 35: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 35

Eval Function Evaluates an expression and returns the result. Exp Function Returns e (the base of natural logarithms) raised to a power. Filter Function Returns a zero-based array containing subset of a string array based on a specified filter

criteria. Fix Function Returns the integer portion of a number. FormatCurrency Function Returns an expression formatted as a currency value using the currency symbol defined in

the system control panel. FormatDateTime Function Returns an expression formatted as a date or time. FormatNumber Function Returns an expression formatted as a number. FormatPercent Function Returns an expression formatted as a percentage (multiplied by 100) with a trailing %

character. GetLocale Function Returns the current locale ID value. GetObject Function Returns a reference to an Automation object from a file. GetRef Function Returns a reference to a procedure that can be bound to an event. Hex Function Returns a string representing the hexadecimal value of a number. Hour Function Returns a whole number between 0 and 23, inclusive, representing the hour of the day. InputBox Function Displays a prompt in a dialog box, waits for the user to input text or click a button, and

returns the contents of the text box. InStr Function Returns the position of the first occurrence of one string within another. InStrRev Function Returns the position of an occurrence of one string within another, from the end of string. Int Function Returns the integer portion of a number. IsArray Function Returns a Boolean value indicating whether a variable is an array. IsDate Function Returns a Boolean value indicating whether an expression can be converted to a date. IsEmpty Function Returns a Boolean value indicating whether a variable has been initialized. IsNull Function Returns a Boolean value that indicates whether an expression contains no valid data (Null).IsNumeric Function Returns a Boolean value indicating whether an expression can be evaluated as a number. IsObject Function Returns a Boolean value indicating whether an expression references a valid Automation

object. Join Function Returns a string created by joining a number of substrings contained in an array. LBound Function Returns the smallest available subscript for the indicated dimension of an array. LCase Function Returns a string that has been converted to lowercase. Left Function Returns a specified number of characters from the left side of a string. Len Function Returns the number of characters in a string or the number of bytes required to store a

variable. LoadPicture Function Returns a picture object. Available only on 32-bit platforms. Log Function Returns the natural logarithm of a number. LTrim Function Returns a copy of a string without leading spaces. Mid Function Returns a specified number of characters from a string. Minute Function Returns a whole number between 0 and 59, inclusive, representing the minute of the hour. Month Function Returns a whole number between 1 and 12, inclusive, representing the month of the year. MonthName Function Returns a string indicating the specified month. MsgBox Function Displays a message in a dialog box, waits for the user to click a button, and returns a value

indicating which button the user clicked. Now Function Returns the current date and time according to the setting of your computer's system date

and time. Oct Function Returns a string representing the octal value of a number. Replace Function Returns a string in which a specified substring has been replaced with another substring a

specified number of times. RGB Function Returns a whole number representing an RGB color value. Right Function Returns a specified number of characters from the right side of a string. Rnd Function Returns a random number.

Page 36: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 36

Round Function Returns a number rounded to a specified number of decimal places. RTrim Function Returns a copy of a string without trailing spaces. ScriptEngine Function Returns a string representing the scripting language in use. ScriptEngineBuildVersion Function

Returns the build version number of the scripting engine in use.

ScriptEngineMajorVersion Function

Returns the major version number of the scripting engine in use.

ScriptEngineMinorVersion Function

Returns the minor version number of the scripting engine in use.

Second Function Returns a whole number between 0 and 59, inclusive, representing the second of the minute.SetLocale Function Sets the global locale and returns the previous locale. Sgn Function Returns an integer indicating the sign of a number. Sin Function Returns the sine of an angle. Space Function Returns a string consisting of the specified number of spaces. Split Function Returns a zero-based, one-dimensional array containing a specified number of substrings. Sqr Function Returns the square root of a number. StrComp Function Returns a value indicating the result of a string comparison. String Function Returns a repeating character string of the length specified. StrReverse Function Returns a string in which the character order of a specified string is reversed. Tan Function Returns the tangent of an angle. Time Function Returns a Variant of subtype Date indicating the current system time. Timer Function Returns the number of seconds that have elapsed since 12:00 AM (midnight). TimeSerial Function Returns a Variant of subtype Date containing the time for a specific hour, minute, and

second. TimeValue Function Returns a Variant of subtype Date containing the time. Trim Function Returns a copy of a string without leading or trailing spaces. TypeName Function Returns a string that provides Variant subtype information about a variable. UBound Function Returns the largest available subscript for the indicated dimension of an array. UCase Function Returns a string that has been converted to uppercase. VarType Function Returns a value indicating the subtype of a variable. Weekday Function Returns a whole number representing the day of the week. WeekdayName Function Returns a string indicating the specified day of the week. Year Function Returns a whole number representing the year.

PHô LôC 3: MéT Sè C¢U LÖNH SQL TH¦êng dïNG Vμ VÝ Dô

*** C¬ së d÷ liÖu ®−îc sö dông lµ nwind.mdb (Cã s½n khi cµi Office hoÆc lÊy trªn AptechServer) *** §Ó ch¹y c¸c c©u lÖnh ë d−íi, më nwind.mdb trong MS Access vµ vµo phÇn Query.

I. §äc th«ng tin (C©u lÖnh SELECT) 1. Chän tÊt c¶ c¸c s¶n phÈm trong b¶ng Products

SELECT * from Products

2. Chän tªn s¶n phÈm (Productname) vµ gi¸ (UnitPrice) trong b¶ng products SELECT Productname, UnitPrice FROM Products 3. Chän ra tªn c«ng ty cña nhµ cung cÊp (CompanyName) vµ tªn c¸c s¶n phÈm (ProductName) mµ nhµ cung cÊp ®ã ®· s¶n xuÊt.

Page 37: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 37

SELECT CompanyName, ProductName FROM Suppliers, Products WHERE Suppliers.SupplierID=Products.SupplierID 4. §−a ra th«ng tin cña s¶n phÈm cã m· s¶n phÈm (ProductID) lµ 3

SELECT * FROM Products WHERE ProductID=3 5. §−a ra th«ng tin vÒ s¶n phÈm cã ProductID < 10

SELECT * FROM Products WHERE ProductID < 10 6. §−a ra th«ng tin vÒ s¶n phÈm mµ tªn cña nã (ProductName) cã Chøa tõ "Coffee" SELECT * FROM Products WHERE ProductName LIKE '*Coffee*' 7. §Õm sè b¶n ghi (sè l−îng s¶n phÈm) trong b¶ng Products)

SELECT Count(*) from Products 8. TÝnh tæng sè l−îng ®¬n vÞ s¶n phÈm cã trong b¶ng Products SELECT SUM(UnitsInStock) from Products

II. ChÌn thªm b¶n ghi (Bæ sung) – C©u lÖnh Insert into 1. Bæ sung thªm mét nhµ cung cÊp cã CompanyName lµ FPT vµ Address lµ Hµ Néi vµo b¶ng Suppliers. INSERT INTO Suppliers(CompanyName, Address) VALUES ('Cong ty FPT','Ha Noi') 2. Bæ sung thªm mét s¶n phÈm cã (SupplierID=30, ProductName lµ "M¸y tÝnh", UnitPrice lµ 500, UnitsInstock lµ 10) vµo b¶ng Products INSERT INTO Products(SupplierID, ProductName, UnitPrice, UnitsInstock) VALUES (30, 'May tinh', 500, 10)

III. Xãa b¶n ghi – C©u lÖnh Delete 1. Xãa s¶n phÈm cã m· s¶n phÈm (ProductID) b»ng 78 DELETE FROM Products WHERE ProductID = 78 2. Xãa c¸c s¶n phÈm cã tªn s¶n phÈm (ProductName) lµ "May tinh" DELETE FROM Products WHERE ProductName = 'May tinh'

IV. CËp nhËt b¶n ghi – C©u lÖnh Update 1. Thay ProductName = 'Cocacola' ®èi víi nh÷ng s¶n phÈm cã m· s¶n phÈm b»ng 1 UPDATE Products SET ProductName = 'Cocacola' where ProductID = 1

2. T¨ng thªm 5 $ cho tÊt c¶ c¸c s¶n phÈm UPDATE Products SET UnitPrice = UnitPrice+5 3. T¨ng 5 $ cho nh÷ng s¶n phÈm cã UnitPrice <20 vµ t¨ng 3 $ cho nh÷ng s¶n phÈm cã UnitPrice

>= 20. - UPDATE Products SET UnitPrice = UnitPrice+5 where UnitPrice < 20 - UPDATE Products SET UnitPrice = UnitPrice+3 where UnitPrice >= 20

Page 38: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 38

PHô LôC 4:

CμI §ÆT IIS (WEBSERVER) Vμ CH¹Y C¸C TRANG ASP

I. Cµi ®Æt Internet Information service (IIS) – web server Click start Setting Control panel Add/Remove programs Add/remove windows components

Chọn IIS

II. CÊu h×nh tr×nh duyÖt ®Ó ch¹y c¸c file ASP 1. Máy tính ở nhà: B1. Mở Internet explorer B2. Vào Menu tools Internet options

Page 39: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 39

Đóng các cửa sổ lại.

2. Máy tính ở phòng thực hành - Nếu mỗi máy đều cài đặt IIS, thì tiến hành cấu hình IE như phần I - Nếu chỉ có một máy cài IIS chung cho cả phòng thì tiến hành như sau:

+ Giả sử máy tính đó có địa chỉ IP là 192.168.1.1 B1: Mở IE B2: Vào menu Tools Internet options

Bỏ lựa chọn này nếu có

Page 40: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 40

Gõ giá trị như hình : Chọn OK , OK để đóng các cửa sổ

(Hoặc để trống như phần I).

III. Copy c¸c file ASP võa so¹n th¶o vµo th− môc web ®Ó ch¹y. B1: Chọn các file (thư mục) cần copy và nhấn Ctrl-C (Copy) B2: Chuyển đến thư mục C:\inetpub\wwwroot B3: Nhấn Ctrl-P (Paste)

Page 41: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 41

IV.Ch¹y file ASP *** Lưu ý: Không Click đúp chuột để chạy như những file thông thường !!! B1: Mở trình duyệt IE B2: + Gõ vào địa chỉ sau: http://127.0.0.1 (ở nhà) + Gõ vào địa chỉ sau: http://192.168.9.251 (Nếu thông qua máy khác) B3: Click chọn file cần chạy

phô lôc 5 h−íng dÉn t¹o domain trong m¸y côc bé

§Ó cã thÓ lµm viÖc gièng nh− hÖ thèng thËt (Cã tªn miÒn d¹ng www.abc.com.cn, ....) nh−ng l¹i kh«ng cã ®iÒu kiÖn kÕt nèi internet hay cã server riªng, th× hoµn toµn cã thÓ thùc hiÖn ®−îc b»ng c¸c b−íc sau ®©y (Gi¶ sö muèn t¹o tªn miÒn www.T08A.com):

Më Control Panel

Click chọn file cần chạy

Page 42: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 42

Më Administative tools

Click ®óp chuét vµo IIS

(NÕu b¸o lçi th× vÒ desktop, click chuét ph¶i vµo My computer Manage)

Click chuét ph¶i vµ chän Properties

Page 43: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 43

Chän Advance

Chän Edit ®Ó ®Æt tªn miÒn mong muèn

Page 44: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 44

NhËp tªn miÒn theo së thÝch

Chän OK ë c¸c hép tho¹i ®ang më . Khi ®· t¹o tªn miÒn nh− trªn Ph¶i cÊu h×nh (thiÕt lËp th«ng sè) cho tr×nh duyÖt ! B1: Më IE B2. Vµo menu Tools Internet options

§Æt Proxy ®Ó tªn miÒn võa ®Æt cã t¸c dông

Gâ tªn miÒn tïy ý !

Page 45: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 45

§Ó domain www.T08A.com cã t¸c dông th× b¾t buéc

Ph¶i ®Æt th«ng sè Proxy trong Lan Settings lµ 127.0.0.1 hoÆc Localhost Chän OK ®Ó ®ãng c¸c hép tho¹i. B3. Test thö Më IE vµ nhËp ®Þa chØ:

Më website võa ®Æt trong cöa sæ tr×nh duyÖt

Page 46: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 46

phô lôc 6: cμi ®Æt ftp ®Ó ®−a trang web lªn server

Trong tr−êng hîp khi web server kh«ng ph¶i lµ m¸y côc bé mµ cã thÓ lµ trªn Internet th× viÖc ®−a c¸c trang web lªn ®ã th−êng dïng mét phÇn mÒm riªng biÖt, gäi lµ phÇn mÒm FTP Client. HiÖn nay cã kh¸ nhiÒu phÇn mÒm nh− vËy nh−ng hay dïng lµ CuteFTP.

I. Cµi ®Æt cuteFTP Ch¹y file CuteFTP.Exe (NÕu kh«ng cã th× download trªn m¹ng hoÆc vµo Aptechserver ®Ó lÊy) vµ lµm theo c¸c h−íng dÉn trong qu¸ tr×nh cµi ®Æt.

II. Sö dông FTP - §Ó cã thÓ ®−a c¸c trang web lªn web server th× b¹n cÇn ph¶i ®−îc cÊp mét tµi kho¶n (bao gåm user name vµ Password). Tµi kho¶n nµy do ng−êi qu¶n trÞ cung cÊp hoÆc do Nhµ cung cÊp dÞch vô Hosting cung cÊp khi mua. Ngoµi ra, b¹n cßn ph¶i biÕt chÝnh x¸c ®Þa chØ vµ sè hiÖu cæng cña server mµ ta sÏ ®−a trang web lªn. Gi¶ sö, b¹n ®· ®−îc cung cÊp c¸c sè liÖu nh− sau:

STT Th«ng sè Gi¸ trÞ 1 user name utehy 2 password utehyaptech 3 ftp Server Address (®Þa chØ) utehy.vn (hoÆc ®Þa chØ IP) 4 ftp Port (Sè hiÖu cæng) 21 (§©y lµ gi¸ trÞ mÆc ®Þnh)

Sau khi ®· cã ®Çy ®ñ c¸c th«ng sè nµy, ta míi cã thÓ tiÕn hµnh c¸c b−íc tiÕp theo sau ®©y: - Ch¹y FTP Client

- Vµo menu File, chän new FTP site hoÆc nhÊn phÝm t¾t Ctrl-N

T¹o mét kÕt nèi ®Õn FTP server

Page 47: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 47

Mét hép tho¹i sÏ më ra ®Ó b¹n nhËp c¸c th«ng tin ë trªn vµo

B¹n nhËp c¸c th«ng tin trong b¶ng trªn nh− sau:

§Æt c¸c th«ng sè kÕt nèi.

*** Riªng sè hiÖu cæng, mÆc ®Þnh lµ 21 nªn kh«ng ph¶i nhËp. NÕu nhµ cung cÊp ®−a cho ta sè hiÖu kh¸c th× chän tab bªn c¹nh ("Type"), sau ®ã ®Æt l¹i sè hiÖu cæng.

Page 48: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 48

T¹i ®©y, ng−êi sö dông dÔ dµng thùc hiÖn viÖc upload, download

ViÖc Upload (®−a lªn) hay download (lÊy vÒ) ®¬n gi¶n nh− trong cöa sæ Explorer KÓ c¶ c¸c thao t¸c nh− T¹o th− môc, xãa file, ®æi tªn file,....

Page 49: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 49

PhÇn III: Thùc hμnh BμI THùC hμNH Sè 1

MỤC TIÊU: Kết thúc bài thực hành sinh viên có thể

• Xây dựng trang Web theo cấu trúc Frame • Hiển thị trang web trong một frame chỉ định • Tạo các hiệu ứng cho liên kết

NỘI DUNG:

Yêu cầu: Tạo một trang Web có 3 frame với tên lần lượt là : frameTren, frameTrai, framePhai. frameTren sẽ nạp trang Banner.htm, frameTrai sẽ nạp trang Menu.htm, framePhai dùng để hiển thị trang Web mà liên kết được đặt trong frameTrai, ban đầu frame này sẽ nạp trang GioiThieu.htm. Tạo trang Banner.htm

1. Mở chương trình soạn thảo, ví dụ FrontPage 2. Gõ nội dung như sau

<HTML> <HEAD> <TITLE>Trang Banner.htm</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> </HEAD> <BODY> <H1 STYLE="width:100%; filter:glow(); text-align:center;">Siêu thị máy tính </H1> </BODY> </HTML> Tạo trang GioiThieu.htm

<HTML> <HEAD> <TITLE>Trang Giới thiệu</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> </HEAD> <BODY> <H1 Style="text-align:center;">Giới thiệu về công ty tại đây</H1> <H1 Style=”text-align:center”>Tham khảo các trang Web trên mạng </H1> </BODY> </HTML>

Page 50: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 50

Trang Menu.htm (Minh hoạ tạo 2 liên kết đến trang GioiThieu.htm và SanPham.asp)

<HTML> <HEAD> <TITLE>Trang Liên kết</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> </HEAD> <BODY> <A Href = “GioiThieu.htm” Target = “Main”>Giới thiệu </A> <A Href =”SanPham.asp” Target = “Main”>Sản phẩm </A> </BODY> </HTML> Trang Menu.htm (Version 2 - tạo hiệu ứng)

<HTML> <HEAD> <TITLE>Trang liên kết - tạo hiệu ứng</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> </HEAD> <Style Type = “Text/CSS”> A { Text-decoration: None} // Bỏ gạch chân dưới mỗi liên kết .MenuThuong {color : Blue; Background-color: White} // Định nghĩa lớp .MenuKichHoat {color : White; Background-color : Red} // Định nghĩa lớp </Style> <BODY> <A onMouseOver="this.className='MenuKichHoat'" onMouseOut ="this.className='MenuThuong' " href = “GioiThieu.htm” Target = “Main”>Giới thiệu </A> <BR> <A onMouseOver="this.className='MenuKichHoat' " onMouseOut ="this.className='MenuThuong' " href = “SanPham.asp” Target = “Main”>Sản phẩm </A> </BODY> </HTML> Trang Index.htm (Chú ý : Thêm các thẻ <BODY>

<Frameset rows = "20%,*"> <Frame name = Banner Src = "Banner.htm"> <FrameSet Cols= "20%,*"> <Frame name = Menu Src = "Menu.htm"> <Frame name = Main Src = "GioiThieu.htm"> </FrameSet> </FrameSet>

Page 51: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 51

bμi thùc hμnh sè 2

MỤC TIÊU: Sau bài thực hành này Sinh viên có thể - Viết lệnh đọc và hiển thị dữ liệu trong một bảng trên trang Web - Bổ sung dữ liệu vào trong bảng CSDL - Cập nhật dữ liệu vào trong bảng CSDL - Truyền dữ liệu giữa các trang bằng URL (Dạng Request.QueryString(…))

NỘI DUNG THỰC HÀNH Tạo CSDL tên là Book.mdb, CSDL này có 1 bảng là tblSach gồm các trường như sau:

1. Đọc dữ liệu trong bảng CSDL và hiển thị trên trang Web

Tạo một trang HienThiSach.asp có nội dung như sau:

<%@LANGUAGE="VBSCRIPT" %> <HTML> <title>Đọc dữ liệu từ file CSDL</title> <body style="font-family:arial"> <% Dim Cn, Rs Dim strCn '///// Tạo kết nối đến CSDL ///////////////////////////////////////////////////////// Set Cn = Server.CreateObject("ADODB.Connection") '/// Tạo đối tượng Connection Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &Server.Mappath("Book.mdb") Cn.CursorLocation = 3 Cn.Open '/// Thực sự mở kết nối đến CSDL Book.mdb Set Rs = Cn.Execute("Select * from tblSach") '/// Mở bảng và lưu trong biến RS '//// Đọc dữ liệu và hiển thị ra Bảng//////////////////////////////////////////// Response.Write("<Table border = 1 style='width:100%'>") Response.Write("<TR><TH>Mô tả <TH>Tên sách <TH> Tên Tác giả <TD>”) Response.Write(“Tên NXB <TD> Năm XB <TD>Số trang <TD> Giá ") Do while not Rs.EOF Response.Write("<TR>") Response.Write("<TD><img width=100px src='" & Rs("DuongDan") &"'>") Response.Write("<TD>" &Rs("TenSach")) Response.Write("<TD>" &Rs("TenTacgia")) Response.Write("<TD>" &Rs("TenNXB")) Response.Write("<TD>" &Rs("NamXB")) Response.Write("<TD>" &Rs("SoTrang")) Response.Write("<TD>" &Rs("Gia")) Rs.MoveNext Loop Response.Write("</Table>") '/// Đóng thẻ Table </BODY> </HTML>

Page 52: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 52

2. Cập nhật dữ liệu (Cập nhật thông tin về một cuốn sách nào đó) Ý tưởng: Để cập nhật dữ liệu cho thuận tiện, chúng ta sẽ xây dựng 3 trang: Một trang gọi là “DanhMucSach.asp” để hiển thị các sách hiện có. Mỗi một cuốn sách trong trang này sẽ có một liên kết tên là “Cập nhật”, liên kết này chỉ đến trang “SoanThao.asp”, Khi người dùng click vào liên kết thì trong liên kết có chứa “MaSach” sẽ được gửi đến trang “SoanThao.asp”. Trang “SoanTHao.asp” sẽ hiển thị các thông tin trong các textbox về cuốn sách có mã bằng mã do trang “DanhMucSach.asp” gửi tới và cho người dùng thay đổi tại đây. Thông tin soạn xong sẽ được gửi đến trang “Capnhat.asp” để thực hiện việc cập nhật. Sơ đồ mô tả như hình dưới đây: File: DanhMucSach.asp

<%@LANGUAGE="VBSCRIPT" %> <title>Danh mục sách trong file CSDL</title> <body style="font-family:arial"> <!-- #Include file= "KetNoi.inc" --> ‘/// Nội dung file Ketnoi.inc xin xem ở phần dưới <h1 align="center">Danh mục sách trong kho </h1> <% Set Rs = Cn.Execute("Select * from tblSach") '/// Mở bảng và lưu trong biến RS '//// Đọc dữ liệu và hiển thị ra Bảng//////////////////////////////////////////// Response.Write("<Table border = 1 style='width:100%'>") Response.Write("<TR> <TH>Mô tả <TH>Tên sách <TH> Tên Tác giả <TD>Tên NXB <TD> Sửa đổi") do while not Rs.EOF Response.Write("<TR>") Response.Write("<TD><img width=100px src='" & Rs("DuongDan") &"'>") Response.Write("<TD>" &Rs("TenSach")) Response.Write("<TD>" &Rs("TenTacgia")) Response.Write("<TD>" &Rs("TenNXB")) Response.Write("<TD><A href = 'SoanThao.asp?MaSach=" &Rs("MaSach") &"'>Sửa") Rs.MoveNext Loop Response.Write("</Table>") '/// Đóng thẻ Table %> </BODY> </HTML>

File: “KetNoi.inc” <% Dim Cn, Rs Dim strCn

Set Cn = Server.CreateObject("ADODB.Connection") ' /// Tạo đối tượng Connection Cn.ConnectionString= "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.Mappath("Book.mdb") Cn.CursorLocation = 3 Cn.Open ' /// Thực sự mở kết nối đến CSDL Book.mdb

%>

TênS TGiả ~~ Pascal QTN ~~ ~~~ ~~~ ~~

DanhMucSach.asp Mã sách: Tên sách: Tên tác giả: ~~~~~~~~ ~~~~~~~~

SoanThao.asp Dim Tensach TenSach= Request.QueryString (“TenSach”) ……………..

tblSach

CapNhat.asp

Page 53: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 53

File: SoanThao.asp

<%@LANGUAGE="VBSCRIPT" %> <HTML> <head> <title>Hiển thị dữ liệu cho người dùng soạn thảo</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body style="font-family:arial"> <!-- #Include file= "KetNoi.inc" --> ‘// File KetNoi.inc xin xem ở trang trên <h1 align="center">Thay đổi các trường và nhấn nút "Cập nhật"</h1> <% Dim MaSach MaSach = Request.QueryString("MaSach") ‘// Lấy mã sách do trang DanhMucSach gửi tới 'Chọn sách có Mã sách = Mã sách mà người dùng muốn sửa đổi Set Rs = Cn.Execute("Select * from tblSach where Masach = '" &Masach & "'") Response.Write("<FORM Action = 'CapNhat.asp' method = Post>")

Response.Write("Mã sách : <Input type=text value ='" &Rs("MaSach") &"' name = MaSach> <BR>") Response.Write("Tên sách : <Input type=text value='" &Rs("TenSach") &"' name = TenSach> <BR>") Response.Write("Tên tác giả : <Input type=text value='" &Rs("TenTacGia") &"' name = TenTacGia> <BR>") Response.Write("Tên nhà xuất bản: <Input type=text value='" &Rs("TenNXB") &"' name= TenNXB> <BR>") Response.Write("<Input type = Submit value = 'Cập nhật'>")

Response.Write("</FORM>") %> </BODY> </HTML>

File: CapNhat.asp

<%@LANGUAGE="VBSCRIPT" %> <HTML> <head> <title>Cập nhật dữ liệu từ file CSDL</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <BODY style="font-family:arial"> <!-- #Include file= "KetNoi.inc" --> ‘// File KetNoi.inc xin xem ở trang trên <% Dim MaSach, TenSach, TenTacGia, TenNXB MaSach = Request.Form("MaSach") '// Lấy mã sách mà người dùng muốn TenSach = Request.Form("TenSach") TenTacGia = Request.Form("TenTacGia") TenNXB = Request.Form("TenNXB") Cn.execute "Update tblSach Set TenSach = '" &TenSach & "', TenTacGia = '" & TenTacGia & "',TenNXB = '" &TenNXB & "' Where MaSach = '" &MaSach & "'" Response.Write("Thông tin đã được cập nhật ! <a href=DanhMucSach.asp>Danh mục sách</A>") %> </BODY> </HTML>

Page 54: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 54

bμi thùc hμnh sè 3

MỤC TIÊU: Sau bài thực hành này Sinh viên có thể - Khai báo và sử dụng biến Session và biến Application

- Sử dụng biến toàn cục Application để đếm số lượng người truy cập

- Sử dụng biến Session để lưu tình trạng đăng nhập của người dùng

- Tạo trang đăng nhập cho người dùng

NỘI DUNG THỰC HÀNH

I. Tạo biến toàn cục 1. Biến Application Biến Application là biến có phạm vi ảnh hưởng đến tất cả mọi người dùng. Nó tồn tại từ khi IIS Server chạy. Biến này thường được dùng để lưu các thông tin mang ý nghĩa toàn cục, ví dụ như số lượng người truy cập v.v… Bài 01: Tạo biến toàn cục có tên là SoNguoiTruyCap, và hiển thị giá trị của nó trong trang có tên là : Test.asp Bước 1: Tạo trang Global.asa có nội dung như sau (Lưu ý: Tên phải là Global.asa): Bước 2: Tạo trang Test.asp để hiển thị và thay đổi giá trị của biến toàn cục, có nội dung như sau :

<Script language = VBScript Runat = Server> Sub Application_OnStart Application(“SoNguoiTruyCap”) = 0 ‘// Tạo biến toàn cục tên là SoNguoiTruyCap

End Sub </SCRIPT>

Trang Global.asa

<%@ Language = VBScript %> <HTML> <BODY> <%

Response. Write("Giá tr� c�a bi�n toàn c�c là : " &Application("SoNguoiTruyCap")) Applicathon("SoNfuoiTruyCap") = Application("SoNguoiTruyCap") + 1

Response. Write("<BR> Giá tr� c�a bi�n bây gi� là : " &Application("SoNguoiTruyCap")) %> </BODY> </HTML>

Trang Test.asp

Page 55: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 55

*** Nhận xét***: - Vì SoNguoiTruyCap là một biến toàn cục, do vậy nó vẫn tồn tại ngay cả khi bạn đã đóng tất cả các cửa sổ trình duyệt. Sự thay đổi này có tác dụng đối với mọi người dùng truy nhập vào Website. - Để tạo một biến toàn cục, chúng ta viết: Application("<Tên biến>") = <Giá trị> như ở trên. - Thủ tục sự kiện Application_OnStart và Session_OnStart được gọi mỗi khi một trang ASP được mở, trong các thủ tục này chúng ta có thể viết các câu lệnh ASP, kể cả việc truy cập vào CSDL. Bài 02: Đếm số lượt người truy cập vào Website Yêu cầu: Xây dựng một trang Web có tên là Index.asp. Trong trang này sẽ hiển thị số lượng người đã truy cập.

Lưu ý: Vì mỗi một khách vào thăm trang Web thì thủ tục sự kiện Session_OnStart được gọi một lần, do vậy để đếm số lượng người truy cập thì trong thủ tục này ta chỉ cần tăng biến toàn cục SoNguoiTruyCap lên 1 đơn vị là đủ. Tức là trong tệp Global.asa bạn cần thêm các câu lệnh sau:

2. Biến Session Biến Session là biến toàn cục dùng để lưu thông tin hoặc trạng thái của một người dùng cụ thể nào đó trong một phiên làm việc, Ví dụ: Dùng để lưu trạng thái đăng nhập (Thành công hay không thành công) của một người dùng.

<%@ Language = VBScript %> <HTML> <BODY> <H1 Align = Center> Chào m�ng b�n �ã ��n v�i Website c�a l�p chúng tôi ! </H1> <BR><BR><HR>

<% Response. Write("<H2> B�n là v� khách th� " &Application("SoNguoiTruyCap"))

%> </BODY> </HTML>

Trang Index.asp

<Script language = VBScript Runat = Server> Sub Application_OnStart Application(“SoNguoiTruyCap”) = 0 ‘/// Tạo biến toàn cục tên là SoNguoiTruyCap

End Sub

Sub Sesstion_OnStart '/// Thủ tục này được gọi khi có 1 người mới viếng thăm Application(“SoNguoiTruyCap”) = Application(“SoNguoiTruyCap”) + 1

End Sub </SCRIPT>

Trang Global.asa

Page 56: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 56

Biến Session chỉ tồn tại trong thời gian Session được tạo ra, nó không ảnh hưởng đến các Session khác. Để tạo biến Session, cần đặt câu lệnh trong file Global.asa và trong thủ tục Sub Session_OnStart lệnh sau: Session(“<Tên biến>”) = <Giá trị> Sau đây chúng ta sẽ sử dụng biến Session để lưu trạng thái đăng nhập của người dùng. Và tạo 1

trang đăng nhập.

Bài 02: Xây dựng 2 trang ASP có tên lần lượt là : Xoa.asp và trang Login.asp. Trang xoá có nội dung như sau (Thực tế giống như trang Xoa.asp trong Project01): “Loại bỏ sản phẩm “. Và trang này chỉ hiển thị nếu người dùng đã đăng nhập với Tên là “tk33” và mật khẩu là “123”. Nếu người dùng chưa đăng nhập thì mở trang Login.asp để đăng nhập.

Khai báo biến Session(“DaDangNhap”) trong file Global.asa như sau:

Xây dựng trang Login.asp <HTML> <TITLE>Đăng nhập hệ thống </TITLE> <BODY> <FORM ACTION="Login.asp" METHOD="POST"> <TABLE BGCOLOR="#FF9966" ALIGN="CENTER"> <TR STYLE="color:white" BGCOLOR="#660000"> <TD COLSPAN="2" ALIGN="CENTER"> Thông tin đăng nhập</TR> <TR> <TD>Tên đăng nhập : <TD> <Input TYPE="TEXT" NAME="UserName"> <TR> <TD>Mật khẩu: <TD> <Input TYPE="PASSWORD" name = Password> <TR> <TD>&nbsp; <TD> <Input TYPE="SUBMIT" VALUE="Đăng nhập"> </TABLE> </FORM> <% IF Request.Form(“UserName”) = “tk33” And Request.Form(“Password”) = “123” Then Session(“DaDangNhap”) = “roi” ‘// Ghi nhớ lại là đã đăng nhập thành công rồi. Response.write(“Bạn đã đăng nhập thành công ! <a href = ‘index.htm’>Về trang chủ </a>”) Else Response.write(“Tên và mật khẩu sai ! Xin hãy nhập lại.”) End IF %> </BODY> </HTML>

Thực tế, việc kiểm tra người dùng ở trên, chúng ta sẽ so sánh với chi tiết người dùng trong CSDL.

<Script language = VBScript Runat = Server> Sub Sesstion_OnStart '/// Thủ tục này được gọi khi có 1 người mới viếng thăm Session(“DaDangNhap”) = “chua” ‘/// Biến Đã đăng nhập khởi tạo = “chưa”

End Sub </SCRIPT>

Trang Global.asa File Global.asa

Page 57: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 57

Trang Xoa.asp

Nâng cấp trang Login.asp <HTML> <TITLE>Đăng nhập hệ thống </TITLE> <BODY> <FORM ACTION="Login.asp" METHOD="POST"> <TABLE BGCOLOR="#FF9966" ALIGN="CENTER"> <TR STYLE="color:white" BGCOLOR="#660000"> <TD COLSPAN="2" ALIGN="CENTER"> Thông tin đăng nhập</TR> <TR> <TD>Tên đăng nhập : <TD> <Input TYPE="TEXT" NAME="UserName"> <TR> <TD>Mật khẩu: <TD> <Input TYPE="PASSWORD" name = Password> <TR> <TD>&nbsp; <TD> <Input TYPE="SUBMIT" VALUE="Đăng nhập"> </TABLE> </FORM> <!-- #Include File = “KetNoi.Inc” --> <% Dim Ten, MatKhau, strSQL Ten = Request.Form(“UserName”)

MatKhau = Request.Form(“Password”) IF Ten <> “” Then ' /// Chỉ kiểm tra nếu người dùng đã nhập Username & Password strSQL =“Select* from tblUserDetail Where Ten=’” &Ten & “’ AND MatKhau =’“ &MatKhau &”’”

Set Rs = Cn.Execute(strSQL) IF Rs.RecordCount > 0 Then Session(“DaDangNhap”) = “roi” Response.write(“Bạn đã đăng nhập thành công ! <a href = ‘index.htm’>Về trang chủ </a>”) Else Response.write(“Tên và mật khẩu sai ! Xin hãy nhập lại.”) End IF End IF %> </BODY> </HTML>

trang Login.asp

<HTML> <BODY> <% IF Session(“DaDangNhap”) = “roi” Then ‘// Thực hiện các câu lệnh ở đây Response.write(“Bản ghi đã bị xoá ! “) Response.write(“Bạn muốn xoá tiếp hay không ?”) Else Response.write(“Bạn chưa đăng nhập. <a href =’Login.asp’>Login</a>”) End IF %> </BODY> </HTML>

Trang Global.asa Xoa.sp

Page 58: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 58

bμi thùc hμnh sè 4

Mục tiêu: Kết thúc bài thực hành, Sinh viên có thể: • Tích hợp cơ chế bảo mật (Login) vào ứng dụng Web • Xử lý được các mục dữ liệu truyền đi và nhận về với số lượng lớn • Mô phỏng được hệ thống bán hàng trực tuyến.

Nội dung: Xây dựng 3 trang có tên lần lượt là: DatHang.asp, Thongke.asp và ThanhToan.asp. Được mô tả theo chức năng như sau: Trang Dathang.asp có chức năng hiển thị các mặt hàng và cho phép người dùng đặt số lượng tương ứng. Sau khi người dùng click vào nút "Đặt hàng" thì toàn bộ Tên sách, số lượng cũng như giá của mỗi loại sách sẽ được gửi sang trang ThongKe.asp. Trang Thongke.asp sẽ tiếp nhận các thông tin này đồng thời hiển thị thêm cột thành tiền và tổng số tiền mà khách hàng đã đặt mua để khách hàng xem lại một lần nữa trước khi thực hiện thanh toán. Trang này cũng một nút "Chấp nhận" và Sau khi người click vào nút này thì tổng số tiền mua sẽ được gửi đến trang ThanhToan.asp để thực hiện khấu trừ tiền của khách hàng và cộng thêm vào tài khoản của người bán (Giả định là mã số của người bán là 'seller'). Cơ sở dữ liệu sách có 2 bảng như sau:

tblSach tblUserDetail Tên trường Mô tả Tên trường Mô tả MaSach Mã sách MaNguoiDung Mã người dùng TenSach Tên sách MatKhau Mật khẩu TenTacGia Tên tác giả SoDuTaiKhoan Số dư tài khoản TenNXB Tên NXB SoTrang Số trang Gia Giá

Trang KetNoi.Inc có nội dung như sau: <% Dim Cn, Rs Dim strCn '///// Tạo kết nối sau đó thực hiện kết nối đến CSDL ///////////////////////

Set Cn = Server.CreateObject("ADODB.Connection") ' /// Tạo đối tượng Connection Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.Mappath("Book.mdb") Cn.CursorLocation = 3 Cn.Open ' /// Thực sự mở kết nối đến CSDL Book.mdb %>

Page 59: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 59

<HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Đặt hàng trực tuyến</title> </head> <BODY> <!-- #Include file = "KetNoi.inc" --> <h1 align =center> ĐẶT MUA SÁCH TRỰC TUYẾN </h1> <HR> <Form action = Thongke.asp method = post> <TABLE Border = 1> <TR> <TH>Tên sách <TH>Số lượng <TH> Đơn giá <% Dim i i=1 Set Rs = Cn.Execute("Select * from tblSach") Do while not Rs.EOF Response.write("<TR>") Response.write("<TD><Input NAME=TENSACH" & i &" Value='" &Rs("TenSach") & "'>") Response.write("<TD> <Input NAME=SL" & i & " Value = 0>") Response.write("<TD> <Input NAME=Gia" & i & " Value = " &RS("Gia") & ">") i = i + 1 Rs.MoveNext Loop %> </TABLE>

<HR> <Input type = hidden Name = SoLuongSach value = <%=(Rs.RecordCount)%> > <Input type = Submit Value= " Đặt hàng ">

</Form> </BODY> </HTML>

Trang DatHang.asp

<Script language = VBScript Runat = Server> Sub Sesstion_OnStart '/// Thủ tục này được gọi khi có 1 người mới thăm Session(“DaDangNhap”) = “chua” ‘/// Biến DaDangNhap khởi tạo=“chưa” Session(“UserName”) = “” ‘/// Biến tên của người dùng End Sub

</SCRIPT>

Trang Global.asa Global.asa

Page 60: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 60

<HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Đặt hàng trực tuyến</title> </head> <BODY> <h1 align =center> CÁC CUỐN SÁCH BẠN ĐÃ ĐẶT MUA </h1> <H2 ALIGN=CENTER>Nếu bạn đồng ý mua, hãy click vào nút "Đồng ý mua" </H2> <HR> <Form action = Thanhtoan.asp method = post> <TABLE Border = 1 Width=100%> <TR><TD>Tên sách <TD>Số lượng <TD> Đơn giá <TD> Thành tiền <% Dim i, TenSach, TongSoCuonSach, TongTien, Gia, SoLuong, ThanhTien TongTien = 0 TongSoCuonSach = Request.form("SoLuongSach") For i = 1 to TongSoCuonSach TenSach = Request.Form("TenSach" &i) SoLuong = Request.form("SL" &i) Gia = Request.form("Gia" &i) IF SoLuong > 0 Then ' /// Chỉ hiển thị và tính toán khi số lượng> 0 ThanhTien = SoLuong * Gia TongTien = TongTien + ThanhTien Response.Write("<TR>") Response.Write("<TD>" & TenSach) Response.Write("<TD>" & SoLuong) Response.Write("<TD>" & Gia) Response.Write("<TD>" & ThanhTien) End IF Next Response.Write("<TR><TD Colspan = 4>Tổng số tiền là : " & TongTien) %> <HR> <Input type = hidden Name = TongTienMua value = <%=(TongTien)%> > <Input type = Submit Value= " Đồng ý mua "> </TABLE> </Form> </BODY> </HTML> Trang này có nhiệm vụ thông kê lại toàn bộ những cuốn sách và số tiền tương ứng. Sau đó chuyển tổng số tiền sang trang ThanhToan.asp.

Trang ThongKe.asp

Page 61: Bai giang-lap-trinh-web-bang-asp

http://www.ebook.edu.vn 61

<HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Thanh toán trực tuyến</title> </head> <BODY> <!-- #Include file = "KetNoi.inc" --> <h1 align =center> KẾT QUẢ THANH TOÁN </h1> <HR> <% IF Session("DaDangNhap") = "roi" Then Dim TongTienMua, SoDuTaiKhoan, MaKhachHang, strSQL '/// Lấy mã khách hàng từ biến session khi Login MaKhachHang = Session("UserName") Set Rs = Cn.Execute("Select * from tblUserDetail Where MaNguoiDung = '" & MaKhachHang & "'") '/// Lấy số tiền còn dư trong tài khoản của khách hàng SoDuTaiKhoan = Rs("SoDuTaiKhoan") '/// Lấy tổng số tiền mua sách do trang thongke.asp gửi sang TongTienMua = Request.Form("TongTienMua") IF int(SoDuTaiKhoan) >= int(TongTienMua) Then '/// Thực hiện Thanh toán '/// Cộng tiền vào số dư tài khoản cho người bán strSQL = "UPDATE tblUserDetail Set SoDuTaiKhoan = SoDuTaiKhoan + " &TongTienMua strSQL = strSQL & " WHERE MaNguoiDung = 'Seller'" Cn.Execute strSQL '/// Trừ tiền vào số dư tài khoản của người mua hàng strSQL = "UPDATE tblUserDetail Set SoDuTaiKhoan = SoDuTaiKhoan - " &TongTienMua strSQL = strSQL & " WHERE MaNguoiDung = '" & MaKhachHang & "'" Cn.Execute strSQL '// Thông báo thanh toán thành công Response.Write("Cảm ơn bạn đã mua hàng." ) Else '/// Không đủ tiền thanh toán Response.Write("Rất tiếc, Bạn không đủ thanh toán <BR>") Response.write("Bạn hiện có: " &SoDuTaiKhoan & "<BR>") Response.write("Số tiền bạn phải thanh toán là : " &TongTienMua) End IF Else Response.Write("Bạn chưa đăng nhập ! <a href=DangNhap.asp>Đăng nhập </a>") End IF %> </BODY> </HTML> *** Hàm int (s) để chuyển một xâu thành số. Ví dụ: int(“100”) 100 ++ Seller là tài khoảncủa người bán hàng. (CHÚ Ý: CÁC BÀI TẬP BỔ SUNG SẼ ĐƯỢC CẬP NHẬT VÀ UPLOAD THƯỜNG XUYÊN

TẠI: WWW.UTEHY.VN/FORUM )

Trang ThanhToan.asp