Më ®Çu Trë vÒ qu¸ khø, c¸ch mµ c¸c øng dông phÇn mÒm ®îc ¸p dông vµo thùc tÕ lµ lËp tr×nh ra nã trong mét ng«n ng÷ lËp tr×nh, sau ®ã ®îc cµi vµo c¸c m¸y kh¸c nhau. ChØ cã mét phiªn b¶n nh vËy ®îc ch¹y trong cïng mét thêi ®iÓm. §ã lµ m« h×nh mét øng dông mang tÝnh tËp trung. Ngµy nay, khi c«ng nghÖ Internet ra ®êi tõ lóc cßn s¬ khai cho ®Õn khi ®ang ë giai ®o¹n ®Ønh ®iÓm th× c¸c øng dông phÇn mÒm cã mét quan niÖm kh¸c. §Æc biÖt lµ khi c«ng nghÖ Web ®îc coi lµ “søc sèng” cña m¹ng Internet ra ®êi th× viÖc sö dông c¸c øng dông ph©n t¸n díi d¹ng øng dông Web ®îc coi lµ phæ biÕn. Nã cho phÐp cïng mét øng dông cã thÓ ®îc sö dông bëi nhiÒu ngêi trong cïng mét thêi ®iÓm. Vµ do ®ã dÉn tíi mét xu thÕ hiÖn nay lµ “H·y ngåi ë nhµ, víi chiÕc m¸y tÝnh cña b¹n, ®Ó giao tiÕp víi thÕ giíi bªn ngoµi qua c¸c trang Web”. Qua ®ã ta thÊy r»ng, Web vµ Internet lµ hai thuËt ng÷ kh¸ phæ biÕn hiÖn nay. B¾t ®Çu tõ c¸c trang Web tÜnh HTML cho phÐp hiÓn thÞ c¸c th«ng tin cè ®Þnh th× tiÕp tôc n¶y sinh vÊn ®Ò ph¶i t¹o ra ®îc c¸c trang Web biÓu thÞ c¸c th«ng tin thay ®æi theo yªu cÇu cña ngêi dïng. §ã lµ c¸c trang Web ®éng. Bµi viÕt nµy ®îc chia lµm 4 phÇn : PhÇn PhÇn PhÇn PhÇn
1 2 3 4
: : : :
Tæng quan vÒ Web. ASP. X©y dùng øng dông Web VTV1. Listing.
PhÇn 1 : Tæng Quan vÒ Web I. Web lµ g× ? Web lµ c«ng nghÖ trªn Internet cho phÐp thÓ hiÖn c¸c th«ng tin mét c¸ch sinh ®éng, gÇn gòi víi con ngêi h¬n trªn 1 trang th«ng tin gäi lµ trang Web. Trang Web ®îc tr×nh bµy trªn c¸c bé duyÖt Web (Browser) trªn c¸c m¸y Client. Trang Web chÝnh lµ c¸c file v¨n b¶n d¹ng Text ®îc cÊu tróc ho¸ theo ng«n ng÷ HTML.
II. HTML lµ g× ? HTML lµ ng«n ng÷ ®¸nh dÊu siªu v¨n b¶n (HyperText Markup Language). HTML ®îc cÊu t¹o bëi c¸c thÎ gäi lµ c¸c Tab. C¸c thÎ nµy lµ c¸c tõ ®îc ®¸nh trong 2 dÊu < vµ >. CÊu tróc chung 1 trang Web HTML : <TITLE>Tiªu ®Ò cña trang Web
III. C¸c lo¹i trang Web : C¸c trang Web ®îc ph©n thµnh 3 lo¹i nh sau : Trang Web tÜnh (trang .HTML) : Lµ trang ®· ®îc lu tr÷ trªn Server tõ tríc. Khi cã yªu cÇu tõ phÝa Client, trang nµy sÏ ®îc t¶i vÒ Client vµ ®îc hiÓn thÞ trªn Server . •
Trang Web ®éng (DHTML : Dynamic HTML ): Lµ c¸c file ch¬ng tr×nh ®îc ch¹y trªn Server. Sau khi ch¹y xong, Server sÏ sinh ra trang Web tÜnh HTML t¬ng øng víi ch¬ng tr×nh ®ã vµ göi vÒ Client. Nh vËy ®Õn ®©y ta cã thÓ coi r»ng trang Web ®éng lµ c¸c trang Web HTML kh«ng tån t¹i tõ tríc trªn Server mµ tr¸i l¹i tuú theo yªu cÇu tõ phÝa Client, trang Web nµy sÏ ®îc t¹o ra sau khi ch¹y ch¬ng tr×nh trªn Server . C¸c trang Web ®éng cã thÓ t¹o ra b»ng c¸c c¸ch sau : •
+ CGI (Common Gateway Interface) : Lµ chuÈn chung phæ biÕn nhÊt ®Ó c¸c browser cã thÓ ch¹y 1 ch¬ng tr×nh trªn server, cã thÓ cµi ®Æt trªn mäi hÖ ®iÒu hµnh vµ Web server. Nã lµ tªn gäi ®Ó chØ c¸c ch¬ng tr×nh ch¹y trªn
Server mµ ®Çu vµo lµ c¸c th«ng tin tõ phÝa Client, ®Çu ra lµ c¸c trang HTML ®Ó göi vÓ phÝa Client.
CGI cho c¸ch t¹o c¸c trang Web ®éng 1 c¸ch “ch¾c ch¾n” nhÊt trong ®ã mäi hÖ ®iÒu hµnh ®Òu hç trî. Tuy nhiªn viÖc dïng CGI lµ kh¸ phøc t¹p. + ASP (Active Server Page) : Lµ thµnh phÇn ®îc cµi thªm vµo Web Server ®Ó t¹o ra c¸c trang Web ®éng. §Çu vµo lµ c¸c file.asp cã cÊu tróc t¬ng tù nh trang .HTML nhng cã thªm c¸c lÖnh Script ®Ó t¹o ra trang Web. C¸c file .asp nµy ®îc ch¹y trªn Server. §Ó ch¹y ®îc ASP b¾t buéc ph¶i cµi nã trªn c¸c Web Server cña MicroSoft. Ta sÏ nãi râ thªm vÒ ASP ë phÇn sau. + JSP (Java Server Page) : Lµ c«ng nghÖ míi c«ng bè cña riªng h·ng Sun MicroSystem. Nã lµ sù tÝch hîp cña c¶ Web Server vµ JSP ®Ó t¹o trang Web ®éng. Nã kh«ng phô thuéc vµo møc Web Server vµ hÖ ®iÒu hµnh ë díi. Trang Web cã nhóng c¸c Applet vµ Script : Lµ c¸c trang HTML cã nhóng c¸c c©u lÖnh Script vµ Applet ®îc viÕt b»ng ng«n ng÷ JavaScript , VBScript , Perl ...C¸c Applet nµy ®îc ch¹y bªn phÝa Client. §Ó c¸c Applet , Script cã thÓ ch¹y ®îc , c¸c Browser ph¶i hç trî c¸c bé dÞch ng«n ng÷ Script, Applet t¬ng øng. C¸c lo¹i Applet ch¹y trªn Browser (Client) : •
+ Java Applet : X©y dùng dùa trªn ng«n ng÷ Java. + ActiveX : Lµ c¸c ®èi tîng díi d¹ng modul cã s½n. ChØ ch¹y trªn hÖ ®iÒu hµnh Window. + Plug-In : C¸c thµnh phÇn bæ trî cho c¸c chøc n¨ng míi cña Browser.
IV. M« h×nh giao t¸c Client/Server : Tríc hÕt ta cÇn hiÓu c¸c kh¸i niÖm vÒ Client, Server : Server : + §îi c¸c yªu cÇu (Request) tõ c¸c m¸y Client. Ph©n tÝch c¸c yªu cÇu ®ã ®Ó xö lý. Göi kÕt qu¶ tr¶ lêi (Response)vÒ Client. + Chøa c¸c phÇn mÒm Web Server, Database Server... + Lu«n trong tr¹ng th¸i On-Line. Client : + T¹o c¸c kÕt nèi. Göi c¸c yªu cÇu ®Õn m¸y Server vµ chê nhËn kÕt
qu¶ tõ Server. + Chøa c¸c phÇn mÒm Web Browser nh IE, Nestcape... + Cã thÓ ë tr¹ng th¸i BËt/T¾t bÊt cø lóc nµo. Nh vËy m« h×nh mét giao t¸c gi÷a Client vµ Server nh sau : §Çu tiªn, Client göi mét yªu cÇu kÕt nèi ®Õn Server theo ®Þa chØ URL mµ nã cÇn kÕt nèi. Server t¬ng øng sÏ “nghe” vµ kiÓm tra xem c¸c kªnh kÕt nèi dµnh cho nã cã kªnh nµo rçi kh«ng. NÕu cã kªnh rçi nã sÏ thiÕt lËp liªn kÕt vµ göi kÕt qu¶ tr¶ vÒ Client t¬ng øng. §èi víi c¸c yªu cÇu kh¸c hoÆc d÷ liÖu mµ Client göi tíi, Server sÏ lµm t¬ng tù.
M« h×nh Client/Server trong ASP :
PhÇn 2 : ASP (Active Server Page) I.ASP lµ g× ? ASP lµ mét thµnh phÇn ®îc cµi t¹i Web Server ®Ó hç trî viÖc dïng c¸c trang Web ®éng .asp. øng dông ASP lµ tËp hîp c¸c trang ASP vµ c¸c thµnh phÇn ActiveX. C¸c file ASP (.asp) gåm phÇn v¨n b¶n (text), HTML vµ c¸c lÖnh script. Mçi khi browser göi yªu cÇu vÒ mét file .asp cho Web Server, ASP xö lý phÇn lÖnh script råi tr¶ l¹i cho browser kÕt qu¶ lµ mét trang HTML. C¸c script lµ c¸c c©u lÖnh cã nghÜa b»ng bÊt cø ng«n ng÷ scripting nµo, ®îc ng¨n c¸ch víi phÇn HTML b»ng cÆp dÊu <% vµ %>. Ng«n ng÷ t¹o kÞch b¶n (scripting language) Scripting lµ ng«n ng÷ kÕt hîp gi÷a HTML vµ c¸c ng«n ng÷ lËp tr×nh nh J, C++, VB.. Trong ®ã: + HTML t¹o v¨n b¶n vµ kÕt nèi c¸c trang. + C¸c ng«n ng÷ lËp tr×nh t¹o ra nh÷ng lÖnh phøc t¹p cho m¸y tÝnh. - Ng«n ng÷ scripting chñ yÕu t¹o ra c¸c v¨n b¶n d¹ng text vµ gäi ®Õn c¸c component ®· ®îc biªn dÞch s½n viÕt b»ng c¸c ng«n ng÷ lËp tr×nh trªn. - Server míi lµ bªn ®äc vµ xö lý c¸c script trong ASP, v× thÕ chØ c¸c Web server míi cÇn hç trî cho ng«n ng÷ nµy. - Client browser chØ cÇn ®a ra yªu cÇu vÒ c¸c trang .asp vµ chê ®îc ®¸p øng, nã kh«ng cÇn hç trî c¸c ng«n ng÷ scripting. - Scripting engine: lµ ch¬ng tr×nh xö lý c¸c lÖnh viÕt b»ng ng«n ng÷ scripting nµo ®ã. ASP cã hai scripting engine lµ VBScript vµJScript. - Ng«n ng÷ scripting c¬ së: lµ ng«n ng÷ ®îc mÆc ®Þnh ®Ó xö lý c¸c lÖnh trong cÆp dÊu <% vµ %>. §iÒu nµy phô thuéc vµo tõng server cô thÓ. Cã thÓ ®Æt ng«n ng÷ cho mét trang hoÆc tÊt c¶ c¸c trang cña øng dông. VÝ dô nh - §Æt ng«n ng÷ cho mét trang: b»ng chØ dÉn <% @ LANGUAGE = tªn ng«n ng÷ %>
II. C¸c ®Æc ®iÓm cña ASP : •
• •
Cã thÓ thùc hiÖn ®îc c¸c Script trªn Web Server mµ kh«ng ph¶i thùc hiÖn trªn c¸c Browser. Do ®ã Browser kh«ng hç trî c¸c ng«n ng÷ Script vÉn cã thÓ thùc hiÖn ®îc c¸c Script b»ng c¸ch göi c¸c yªu cÇu cho Server thùc hiÖn. §iÒu nµy t¹o ra mét ®Æc tÝnh tiÖn lîi mµ Ýt ai nhËn ra lµ cã thÓ thùc hiÖn ®îc c¸c trang Web sinh ®éng mµ cã thÓ dïng c¸c tr×nh duyÖt Web ®¬n gi¶n kh«ng cã hç trî c¸c Script. C¸c file .asp chØ ®îc lu tr÷ trªn Web Server mµ kh«ng tån t¹i ë m¸y Client. C¸c trang Web .asp sÏ ®îc thùc hiÖn (biªn dÞch) bëi thµnh phÇn
Script Engine cµi trong ASP ë Web Server. • ViÖc sö dông ASP cho phÐp t¹o ra c¸c øng dông Web m¹nh vµ linh ho¹t, cã giao diÖn th©n thiÖn víi ngêi dïng qua trang HTML.
III. C¸c thµnh phÇn cña ASP : Thµnh phÇn chñ yÕu trong ASP ®îc gäi lµ ActiveX Server Components ActiveX lµ mét c«ng cô m¹nh ®Ó x©y dùng c¸c øng dông Web v× nã cung cÊp c¸c ®èi tîng ®Ó b¹n cã thÓ sö dông trong script cña m×nh. B¹n cã thÓ x©y dùng c¸c øng dông Web ®éng, cã t¬ng t¸c nhê sö dông c¸c component do server cung cÊp. C¸c component nµy ®îc sö dông nh lµ nh÷ng khèi c¬ b¶n trong script hoÆc c¸c øng dông Web, chóng thùc hiÖn nh÷ng c«ng viÖc th«ng thêng ®Ó b¹n kh«ng cÇn ph¶i viÕt l¹i m· lÖnh n÷a. Component lµ m· lÖnh ®· ®îc dÞch, s½n sµng ®Ó ch¹y, ®îc ®Æt díi d¹ng c¸c file .dll hoÆc .exe. B¹n cã thÓ dïng c¸c component do ASP cung cÊp hoÆc lÊy tõ mét nguån nµo ®ã hay t¹o ra c¸c component cho m×nh. ASP cung cÊp 5 thµnh phÇn (components) c¬ b¶n: Advertisement Rotator T¹o ®èi tîng AdRotator tù ®éng quay c¸c dßng qu¶ng c¸o hiÖn trªn mét trang theo mét lÞch tr×nh ®Þnh tríc. Browser Capabilities T¹o ®èi tîng BrowserType quyÕt ®Þnh kiÓu, kh¶ n¨ng vµ version cña mçi browser truy nhËp ®Õn Web site cña b¹n Database Access Cung cÊp c¸c truy nhËp ®Õn c¬ së d÷ liÖu sö dông ActiveX Data Objects (ADO). Content Linking T¹o ®èi tîng NextLink ®Ó t¹o ra b¶ng néi dung cña trang Web vµ nèi chóng l¹i nh lµ c¸c trang trong mét quyÓn s¸ch. File Access Cung cÊp c¸c truy nhËp ®Õn c¸c file.
IV. B¹n ph¶i lµm g× ®Ó t¹o ®îc trang Web ®éng .asp : - L¾p ®Æt hÖ thèng phÇn cøng vÒ m¹ng (nèi c¸c m¸y, cµi ®Æt hÖ ®iÒu hµnh..) • Cµi ®Æt phÇn mÒm Web Server trªn m¸y mµ b¹n ®Þnh chän lµm Server. C¸c phÇn mÒm phæ biÕn cã thÓ lµ : + IIS (Internet Information Server) : Web Server ( cña Microsoft ) dïng ®Ó cµi trªn Window NT. Thêng ®îc cµi trong thùc tÕ ®Ó lµm Web Server trªn Internet. + PWS (Personal Web Server) : Web Server ( cña Microsoft ) dïng ®Ó cµi trªn Window 9x. Thêng ®îc cµi trªn m¸y tÝnh c¸ nh©n ®¬n lÎ ®Ó test øng dông Web .asp. Nã m« pháng m« h×nh Client/Server trªn mét m¸y
•
®¬n lÎ. + FTS (FastTrack Server) : Web Server cña Netscape. Còng thêng ®îc cµi trong thùc tÕ ®Ó lµm Web Server trªn Internet. + Ngoµi ra cßn mét sè c¸c phÇn mÒm Web Server kh¸c. Cµi ASP
§Õn ®©y b¹n hoµn toµn cã thÓ t¹o c¸c trang ASP b»ng mét bé so¹n th¶o v¨n b¶n bÊt kú. Sau ®ã copy file .asp võa so¹n th¶o vµo th môc InetPub hoÆc WebShare trªn Server. Tuy nhiªn ®Ó cã thÓ t¹o ra c¸c øng dông Web cã trang Web ®éng .asp mét c¸ch dÔ dµng vµ chuyªn nghiÖp h¬n, b¹n nªn cµi thªm c¸c thµnh phÇn sau : •
• •
FrontPage Server Extensions : Cho phÐp copy c¸c file HTML vµ ASP tõ th môc project (cña FrontPage hoÆc Visual Interdev) vµo th môc InetPub hoÆc WebShare cña Web Server mét c¸ch tù ®éng. Visual InterDev (trong bé Visual Studio cña MicroSoft): PhÇn mÒm cho phÐp t¹o øng dông Web ASP mét c¸ch dÔ dµng. FrontPage : PhÇn mÒm so¹n th¶o trang HTML.
V. C¬ chÕ Submit mét form trong ASP : Submit lµ thuËt ng÷ ®Ó chØ mét giai ®o¹n khi Web Browser trªn m¸y Client göi c¸c th«ng tin mµ ngêi sö dông ®iÒn trong mét form vÒ Web Server. VÝ dô khi ngêi sö dông ®iÒn th«ng tin trong mét Text Box vµ bÊm Submit. Nh vËy cã thÓ hiÓu theo c¸ch kh¸c lµ khi Browser göi yªu cÇu (Request) ®Õn Server th× gäi lµ Submit. Cã 2 method Submit : Get vµ Post. + Post Method : Th«ng tin sÏ n»m trong phÇn th©n cña form göi vÒ Server. Bªn Server dïng Collection Form cña ®èi tîng Request ®Ó lÊy gi¸ trÞ nµy. + Get Method : Th«ng tin sÏ ®îc g¾n vµo sau ®Þa chØ URL ®îc ng¨n c¸ch bëi dÊu ? díi d¹ng mét chuçi Query. D¹ng cña chuçi nµy nh sau : §Þa_ChØ_URL?Name1=Value1,.. Bªn Server dïng Collection QueryString cña ®èi tîng Request ®Ó lÊy gi¸ trÞ nµy. Mét qu¸ tr×nh truyÒn th«ng tin vÒ Server (Submit) thêng kÌm theo ®Þa chØ cña trang ASP sÏ tiÕp nhËn th«ng tin ®ã, xö lý th«ng tin ®ã vµ t¹o ra kÕt qu¶ lµ trang HTML göi tr¶ vÒ Browser. §Þa chØ cña trang ASP nµy ®îc x¸c ®Þnh bëi thuéc tÝnh Action trong Tab Form cña trang HTML chøa form. VÝ dô : Cã mét trang HTML nh sau :
Khi form ®îc Submit vÒ Server nã sÏ göi gi¸ trÞ cña NAME1 ®ång thêi link tíi trang ReceiveParam.asp. Do ®ã ®Ó lÊy ®îc gi¸ trÞ cña NAME1 bªn Server ta ph¶i t¹o mét file ReceiveParam.asp vµ dïng Collection Form cña ®èi tîng Request nh sau : <%@ Language = VBScript %> <% Set ReceivedValue = Request.Form(“NAME1”) %> <%=ReceivedValue%> §Ó Test kÕt qu¶ ë trªn h·y thùc hiÖn c¸c bíc sau trªn m¸y ®· cµi Web Server vµ ASP : • T¹o mét th môc Test trong InetPub(hoÆc WebShare víi PWS)\WWWROOT • T¹o mét file Test.htm trong th môc Test vµ Paste nh÷ng dßng trang HTML ë trªn vµo file ®ã. • T¹o mét file ReceiveParam.asp trong th môc Test vµ Paste nh÷ng dßng trang ASP ë trªn vµo file ®ã. • Trªn Browser bÊt kú ®¸nh ®Þa chØ URL : http://Server_Name/Test/test.htm.
VI. Mét vÝ dô ®¬n gi¶n vÒ trang Web ®éng ASP : H·y trë l¹i víi mét vÝ dô ®¬n gi¶n vÒ trang HTML “Hello World” :
Hello World ! NÕu chØ hiÓn thÞ 1 dßng nh vËy th× sÏ kh«ng cã vÊn ®Ò x¶y ra. Tuy nhiªn gi¶ sö ta ph¶i tr×nh bµy dßng Hello World ! trªn nhiÒu dßng vµ víi cì ch÷ to dÇn. C¸ch lµm ë ®©y lµ viÕt lÆp l¹i 2 dßng , Hello World víi i t¨ng dÇn. §iÒu ®ã sÏ lµm cho viÖc ®¸nh trë nªn cång kÒnh vµ “con ong ch¨m chØ”, kh«ng tËn dông ®îc c¸c chøc n¨ng lÆp cña 1 ng«n ng÷ lËp tr×nh b×nh thêng. Gi¶i ph¸p ë ®©y lµ x©y dùng 1 trang Web ®éng .asp nh sau : <%@ Language = VBScript %>
<% For i = 10 To 20 %> > Hello World ! <%Next%> ChØ víi 8 dßng ë trªn ta cã thÓ thay cho 24 dßng trong trang Web tÜnh HTML. BÝ quyÕt lµ giao cho Server thùc hiÖn c¸c lÖnh trªn ®Ó nã t¹o ra 24 dßng HTML vµ göi vÒ Client (yªu cÇu trang .asp ë trªn).
PhÇn 3 : X©y dùng øng dông Web VTV1. I.Yªu cÇu vÒ øng dông Web : • • •
Dùa trªn m« h×nh øng dông Web Client/Server. Truy cËp ®îc c¬ së d÷ liÖu tõ xa trªn m¸y Server. óng dông Web ®éng dïng c«ng nghÖ ASP.
II.Giíi thiÖu vÒ trang Web VTV01 : VTV01 lµ trang Web cho phÐp qu¶n lý vµ theo dâi lÞch ph¸t sãng cña kªnh VTV1 §µi TruyÒn H×nh ViÖt Nam. Nã cã c¸c chøc n¨ng chÝnh sau : + Theo dâi lÞch ph¸t sãng. + CËp nhËt, söa ®æi c¸c ch¬ng tr×nh ®· lªn kÕ ho¹ch tõ tríc. + Lªn kÕ ho¹ch c¸c ch¬ng tr×nh míi. + B¸o c¸o ch¬ng tr×nh ®· lªn kÕ ho¹ch theo tõng th¸ng. VTV01 ®îc x©y dùng trªn nÒn m¹ng LAN cña c«ng ty FPT. PhÇn mÒm lµ IIS cña MicroSoft vµ hÖ ®iÒu hµnh Window NT. VTV01 dïng thµnh phÇn Database Access cña ASP ®Ó truy cËp c¬ së d÷ liÖu VTV.mdb ®îc t¹o trªn Access 97. Ngoµi ra cã 2 ng«n ng÷ Script ®îc dïng trong øng dông lµ VBScript ®Ó truy vÊn c¬ së d÷ liÖu vµ JavaScript ®Ó thùc hiÖn c¸c kÕt qu¶ b¸o c¸o in ra...
III. C¬ së d÷ liÖu cña trang Web VTV1 : VTV01 cã 1 file c¬ së d÷ liÖu duy nhÊt lµ VTV.mdb ®îc t¹o ra trªn Access. Nã gåm 2 b¶ng cã cÊu tróc nh sau : •
B¶ng LÞch :
Field Name ID Ngay GioPhut The_Loai h×nh Ten_Chuong_Trinh Bien_Tap Bien_Dich Thoi_Luong Vung_SX He_So_Qui_Doi Thu_Lao_BT
Data Type Description 1 b¶n ghi trong b¶ng AutoNumber 2 Date/Time Ngay phat song 4/24/99 Date/Time Gio phat song 11:30 Text The loai chuong trinh Ho¹t Text Text Text Number Text Number Number
Ten chuong trinh Phim ho¹t h×nh WaltDisney Ten nguoi bien tap Dhh Ten nguoi bien dich neu co Haidh So phut phat song 20 Vung san xuat V2 He so qui doi 2 Thu lao cho BT 0
Thu_Lao_DD Thu_Lao_QP Thu_Lao_CTV •
Number Number Number
Thu lao cho DD Thu lao cho QP Thu lao cho CTV
0 0 0
B¶ng The_Loai :
Field Name Data Type Description ID Auto Number 1 The_Loai Text The loai chuong trinh LiÖu Ho¹t H×nh T¹p ChÝ
BG1 BG2 BG3 BG4 2 3 4 5 TG§V VQTG PKH
BG5 BG6 6 Phim Tµi
Quan hÖ gi÷a 2 b¶ng :
IV. C¸c trang Web trong VTV01 : - Default.htm : Trang Web mÆc ®Þnh t¬ng øng víi ®Þa chØ URL : Http://Server_Name/VTV01 Lµ trang t¹o ra 3 frame ®Ó hiÓn thÞ cïng 1 lóc 3 trang Web kh¸c nhau. • Global.asa (File Active Server Application): Lµ file kh«ng bao gåm nh÷ng néi dung göi vÒ phÝa Client. Nã lµ file lùa chän cho phÐp khai b¸o c¸c ®èi tîng ë møc phiªn vµ møc øng dông ®Ó dïng trong øng dông Web ASP. Nã lu tr÷ c¸c th«ng tin vÒ c¸c sù kiÖn vµ c¸c ®èi tîng ®îc sö dông mét c¸ch toµn côc trong øng dông. §îc lu tr÷ trong th môc gèc cña øng dông Web vµ mçi øng dông chØ cã duy nhÊt mét file Global.asa. Trong øng dông VTV01 c¸c ®èi tîng møc phiªn dïng Database Access ®îc khai b¸o ë ®©y. Trong th môc (Folder) Code : • About.htm : Trang Web giíi thiÖu. §îc hiÓn thÞ lóc ®Çu trong Default.htm. • Header.htm : Trang Web ¶nh cña VTV1 vµ FPT. HiÓn thÞ trªn phÇn ®Çu trang. • LeftBat.htm : Trang Web link ®Õn c¸c trang ®éng .asp kh¸c. HiÓn thÞ ë khung bªn tr¸i. • ScheduleInit.asp : Tr×nh bµy form ®Ó User nhËp th«ng tin vÒ th¸ng cÇn xem lÞch ph¸t sãng. • Schedule.asp : VÏ lÞch ph¸t sãng t¬ng øng víi th¸ng mµ User yªu
cÇu.
ListOne.asp : HiÓn thÞ néi dung mét ch¬ng tr×nh. UpdateElm.asp : Tr×nh bµy form ®Ó söa ®æi néi dung mét ch¬ng tr×nh. • UpdateAsp.asp : Thùc hiÖn viÖc cËp nhËt c¬ së d÷ liÖu vµ tr×nh bµy kÕt qu¶ thay ®æi néi dung ch¬ng tr×nh. • DeleteAsp.asp : Xo¸ mét ch¬ng tr×nh khái c¬ së d÷ liÖu vµ tr×nh bµy kÕt qu¶ xo¸. • Input.asp : Tr×nh bµy form ®Ó t¹o mét ch¬ng tr×nh míi. • InputAsp.asp : Thùc hiÖn viÖc thªm mét ch¬ng tr×nh míi vµo c¬ së d÷ liÖu vµ tr×nh bµy kÕt qu¶ thªm. • MonthReport.asp : Tr×nh bµy form ®Ó nhËp th«ng tin vÒ th¸ng cÇn b¸o c¸o. • BKTTCT.asp : VÏ b¸o c¸o c¸c ch¬ng tr×nh trong mét th¸ng theo mÉu cña §µi TruyÒn H×nh ViÖt Nam. Trong th môc (Folder) Inc : - FieldNull.inc : File include trong BKTTCT.asp. Chøa c¸c hµm chuyÓn ®æi ngµy giê.. • •
V. S¬ ®å liªn kÕt gi÷a c¸c trang Web trong VTV01 :
VI. NhËn xÐt : øng dông ®îc cµi ®Æt trªn nÒn Web Server : MicroSoft Internet Information Server vµ hÖ ®iÒu hµnh Window NT 4.0. Nh×n chung ®· ®¶m b¶o ®îc c¸c yªu cÇu ®Ò ra ë trªn. Tuy nhiªn cßn mét sè h¹n chÕ lµ cha cã kh¶ n¨ng kiÓm tra lçi th«ng tin nhËp vµ kh¶ n¨ng t¬ng thÝch víi c¸c Web Server vµ hÖ ®iÒu hµnh kh¸c lµ cha ®îc ®¶m b¶o.
PhÇn 4 : Listing • Global.asa : <SCRIPT LANGUAGE=VBScript RUNAT=Server> 'You can add special event handlers in this file that will get run automatically when 'special Active Server Pages events occur. To create these handlers, just create a 'subroutine with a name from the list below that corresponds to the event you want to 'use. For example, to create an event handler for Session_OnStart, you would put the 'following code into this file (without the comments): 'Sub Session_OnStart '**Put your code here ** 'End Sub 'EventName Description 'Session_OnStart Runs the first time a user runs any page in your application 'Session_OnEnd Runs when a user's session times out or quits your application 'Application_OnStart Runs once when the first page of your application is run for the first time by any user 'Application_OnEnd Runs once when the web server shuts down <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Application_OnStart '==Visual InterDev Generated - startspan== '--Project Data Connection Application("Connection_ConnectionString") = "DSN=VTV;DBQ=D:\PROJECTS\vtv\Database\vtv.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5;" Application("Connection_ConnectionTimeout") = 15 Application("Connection_CommandTimeout") = 30 Application("Connection_CursorLocation") = 3 Application("Connection_RuntimeUserName") = "" Application("Connection_RuntimePassword") = "" '-- Project Data Environment 'Set DE = Server.CreateObject("DERuntime.DERuntime") 'Application("DE") = DE.Load(Server.MapPath("Global.ASA"), "_private/DataEnvironment/DataEnvironment.asa") '==Visual InterDev Generated - endspan== End Sub <SCRIPT LANGUAGE=JScript RUNAT=Server> function Session_OnStart() { //Create ADO Object Session("objConnection") = new ActiveXObject("ADODB.Connection"); Session("objConnection").ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=VTV;DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5;"; Session("objConnection").ConnectionTimeOut = 30; Session("objConnection").open(); }
• Default.htm : VTV Program <meta name="GENERATOR" content="Microsoft FrontPage 3.0"> • About.htm : <meta NAME="GENERATOR" Content="Microsoft Developer Studio"> Document Title VTV - ver 1.0 B¶n quyÒn cña C«ng ty FPT
VTV lµ ch¬ng tr×nh cho phÐp c¸c c¸n bé cña ®µi tryÒn h×nh qu¶n lý vµ theo dâi lÞch ph¸t sãng cña ®µi. Ch¬ng tr×nh gåm c¸c chøc n¨ng chÝnh sau:
Xem lÞch : Theo dâi lÞch ph¸t sãng
Ch¬ng tr×nh míi : NhËp c¸c ch¬ng tr×nh sÏ ph¸t cña ®µi
Söa ®æi lÞch : Thay ®æi ch¬ng tr×nh ®· lªn kÕ ho¹ch tríc
• Header.htm : <meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0"> Document Title • LeftBar.htm : <meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0"> Document Title • BKTTCT.asp : <%@ Language=VBScript %> <% MyMonth = Request.Form("Month") MyYear = Request.Form("Year") 'QFromDate = request("QFromDate") 'QToDate = request("QToDate") 'connect to database 'sql = "select * from Lich"' where Ngay>=#"+QFromDate+"# and Ngay<=#"+QToDate+"#" MyStartDate = MyMonth + "/1/" + MyYear MyEndDate = CStr(MyMonth+1) + "/1/" + MyYear
sql = "select * from Lich where Ngay>=#" + MyStartDate + "# and Ngay<#" + MyEndDate + "#" 'Response.Write(sql) Set rs = Session("objConnection").Execute (sql) %> <Script Language="JScript" RUNAT="Server"> function getNgay() { var d=new Date(); return d.getDate(); } function getThang() { var d=new Date(); return d.getMonth()+1; } function getNam() { var d=new Date(); var s=new String(d.getYear()); if (s.length==2) return "19"+s; else return s; } <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> §µi truyÒn h×nh ViÖt Nam | B¶ng kª thanh to¸n ch¬ng tr×nh |
Ban Khoa gi¸o | TiÓu ban :. Ngo¹i ng÷. . . ..... . |
|
Th¸ng <%=MyMonth%> n¨m <%=MyYear%> |
TT | Tªn ch¬ng tr×nh | Ngµy ph¸t sãng | Biªn tËp | Vïng SX | ThÓ lo¹i | Thêi lîng | BËc | Thï lao nhuËn bót | Thï lao CTV |
BT | DD | QP | Céng |
<%Dim i i=0 do while not rs.EOF i=i+1%> <%=i%> | <%=strNull(rs("Ten_Chuong_Trinh"))%> | <%=strNgay(rs("Ngay"))%> | <%=strNull(rs("Bien_Tap"))%> | <%=strNull(rs("Vung_SX"))%> | <%=strNull(rs("The_Loai"))%> | <%=numNull(rs("Thoi_Luong"))%> | <%=numNull(rs("He_So_Qui_Doi"))%> | <%=numNull(rs("Thu_Lao_BT"))%> | <%=numNull(rs("Thu_Lao_DD"))%> |
<%=numNull(rs("Thu_Lao_QP"))%> | <%=numNull(rs("Thu_Lao_BT")+rs("Thu_Lao_DD")+rs("Thu_Lao_QP"))%> | <%=numNull(rs("Thu_Lao_CTV"))%> |
<%rs.MoveNext loop%>
<% set rs=Nothing %> • DeleteASp.asp : <% sql="Delete * from Lich" sql=sql+" where id="+request("ID") 'Response.Write(sql) Session("objConnection").Execute (sql) %> <Script Language="JScript"> function back() { window.history.go(-3); //document.a.location.reload(); //window.alert(document.url); } B¶n ghi ®· ®îc xo¸. TiÕp tôc
• InputASp.asp : <%@ Language=VBScript %> <% 'connect to database sql = "select The_Loai from The_Loai" 'Response.Write(sql) Set rs = Session("objConnection").Execute (sql) %>
<SCRIPT LANGUAGE="JScript"> function insert() { document.frmInput.submit(); } <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> • InputASp.asp : <%@ Language=VBScript %> <% sql="Insert into Lich (Ngay,GioPhut,The_Loai, Ten_Chuong_Trinh, Bien_Tap, Bien_Dich)" sql=sql+" Values (" sql=sql+"'"+request("Ngay")+"'," 'Ngay sql=sql+"'"+request("GioPhut")+"'," 'GioPhut sql=sql+"'"+request("The_Loai")+"'," 'TheLoai sql=sql+"'"+request("Ten_Chuong_Trinh")+"'," 'Ten Chuong trinh sql=sql+"'"+request("Bien_Tap")+"'," 'Bien Tap sql=sql+"'"+request("Bien_Dich")+"'" 'Bien Dich sql=sql+")" 'Response.Write(sql) Session("objConnection").Execute (sql) %> Mét b¶n ghi ®· ®îc bæ xung. TiÕp tôc
• ListOne.asp: <%@ Language=VBScript %> <% ID = request("ID") 'connect to database sql = "select * from Lich where ID="+ID 'Response.Write(sql) Set rs = Session("objConnection").Execute (sql) %> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <em><strong>LÞch ph¸t sãng VTV
<STRONG>Ngµy : <%=rs("Ngay")%>
<STRONG>Giê : <%=rs("GioPhut")%>
<STRONG>ThÓ lo¹i : <%=rs("The_Loai")%>
<STRONG>Tªn ch¬ng tr×nh : <%=rs("Ten_Chuong_Trinh")%>
<STRONG>Biªn tËp : <%=rs("Bien_Tap")%>
<STRONG>Biªn dÞch : <%=rs("Bien_Dich")%>
<STRONG>Thêi lîng : <%=rs("Thoi_Luong")%>
<STRONG>Vïng s¶n xuÊt : <%=rs("Vung_SX")%>
<STRONG>HÖ sè qui ®æi : <%=rs("He_So_Qui_Doi")%>
<STRONG>Thï lao BT : <%=rs("Thu_Lao_BT")%>
<STRONG>Thï lao DD
: <%=rs("Thu_Lao_DD")%>
<STRONG>Thï lao QP : <%=rs("Thu_Lao_QP")%>
<STRONG>Thï lao CTV : <%=rs("Thu_Lao_CTV")%> <% set rs=Nothing %>
• MonthReport.asp: <%@ Language=VBScript %> <meta name="GENERATOR" content="Microsoft FrontPage 3.0"> <Script language="JScript"> function getCurrentYear() { var d = new Date(); var s = String(d.getYear()); if (s.length<=2) s="19"+s; document.frm.Year.value=s; } <script language="JavaScript">
<em><strong> B¸o c¸o lÞch ph¸t sãng VTV theo th¸ng <SCRIPT LANGUAGE="JScript"> <script> getCurrentYear(); • Schedule.asp: <%@ Language=JavaScript %> <% var month = Request("month"); var year = Request("year");
function drawCalendar(month,year) { var startDay=new Date(year,month-1,1); var endDay=new Date(year,month-1,31); i=31; while (endDay.getMonth()>month-1) { endDay=new Date(year, month-1,i-1); i--; } startDate=1; endDate=endDay.getDate(); //mang lu lich var luoi=new Array(42); for (i=0;i<42;i++) luoi[i]=0; //how many week in month var numWeek; //ngay dau thang la thu may n=endDay.getDate(); var Week=new Array(); // So ngay cua tung tuan if (startDay.getDay()==0) Week[0]=1; else Week[0]=7-startDay.getDay()+1; for (j=6;j>6-Week[0];j--) luoi[j]=j-6+Week[0]; n=n-Week[0]; i=0; while (n>0) { i++; if (n>=7) Week[i]=7; else Week[i]=n; for (j=0;j<Week[i];j++) luoi[j+7*i]=(i-1)*7+j+1+Week[0]; n=n-Week[i]; } //ve bang Response.Write("LÞch ph¸t sãng th¸ng "+month+" n¨m "+year+"
"); Response.Write(""); //Tinh chieu rong va cao o var CellWidth=(840-60)/(Week.length); // Hang chi so tuan Response.Write(""); for (j=-1;j<Week.length;j++) { Response.Write(""); switch (j) { case -1: Response.Write("TuÇn"); break; case 0: Response.Write("I"); break; case 1: Response.Write("II"); break; case 2: Response.Write("III"); break; case 3: Response.Write("IV"); break; case 4: Response.Write("V"); break; case 5: Response.Write("VI"); break;
} Response.Write(" | "); } Response.Write("
"); // vong lap viet ra ngay for (i=0;i<7; i++) { Response.Write(""); // viet thu Response.Write(""); switch (i) { case 0: Response.Write("Thø hai"); break; case 1: Response.Write("Thø ba"); break; case 2: Response.Write("Thø t"); break; case 3: Response.Write("Thø n¨m"); break; case 4: Response.Write("Thø s¸u"); break; case 5: Response.Write("Thø b¶y"); break; case 6: Response.Write("Chñ nhËt"); break; } Response.Write(" | "); for (j=0;j<Week.length;j++) { Response.Write(""); if (luoi[i+7*j]!=0) Response.Write(luoi[i+7*j]); else Response.Write(" "); Response.Write(" | "); } Response.Write("
"); Response.Write(""); for (j=0;j<Week.length;j++) { Response.Write(""); if (luoi[i+7*j]==0) Response.Write(" "); else { var day=luoi[i+7*j]; sql="Select * from Lich where Ngay=#"+month+"/"+day+"/"+year+"#"; var rs = Session("objConnection").Execute(sql); while (!rs.EOF) { Response.Write(" "+rs("Ten_Chuong_Trinh")+" "); rs.MoveNext(); } rs.close(); } Response.Write(" | "); } Response.Write("
"); } Response.Write("
"); } %>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <%drawCalendar(month,year);%>
• ScheduleInit.asp: <%@ Language=VBScript %> <Script language="JScript" RUNAT="SERVER"> function selectMonth(month) { var d = new Date(); if (month==(d.getMonth()+1)) return "Selected"; else return ""; } <Script language="JScript"> function getCurrentYear() { var d = new Date(); var s = String(d.getYear()); if (s.length<=2) s="19"+s; document.frm.year.value=s; } <meta name="GENERATOR" content="Microsoft FrontPage 3.0"> <script language="JavaScript"> <em><strong>
LÞch ph¸t sãng theo th¸ng <SCRIPT LANGUAGE="JScript"> <Script> getCurrentYear(); • UpdateAsp.asp: <%@ Language=VBScript %> <% sql="Update Lich set " sql=sql+"Ngay='"+request("Ngay")+"'," sql=sql+"GioPhut='"+request("GioPhut")+"'," sql=sql+"The_Loai='"+request("The_Loai")+"'," 'TheLoai sql=sql+"Ten_Chuong_Trinh='"+request("Ten_Chuong_Trinh")+"'," 'Ten Chuong trinh sql=sql+"Bien_Tap='"+request("Bien_Tap")+"'," 'Bien Tap sql=sql+"Bien_Dich='"+request("Bien_Dich")+"'" 'Bien Dich
sql=sql+" where id="+request("ID") 'Response.Write(sql) Session("objConnection").Execute (sql) %> <Script Language="JScript"> function back() { window.history.go(-2); //document.a.location.reload(); //window.alert(document.url); } B¶n ghi ®· ®îc cÆp nhËt. TiÕp tôc
• UpdateElm.asp: <%@ Language=VBScript %> <% ID = request("ID") 'connect to database sql = "select * from Lich where ID="+ID 'Response.Write(sql) Set rs = Session("objConnection").Execute (sql) 'connect to database sql = "select The_Loai from The_Loai" 'Response.Write(sql) Set rsTheLoai = Session("objConnection").Execute (sql) Function optionCT(s1,s2) if (s1=s2) then optionCT="selected" exit Function else optionCT="" exit Function end If End Function %> <SCRIPT LANGUAGE="JScript">
function update() { document.frmUpdate.submit(); } <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <% set rs=Nothing %> • FieldNull.inc : <Script language="JScript" RUNAT="SERVER"> function strGioPhut(GioPhut) { var g= new Date(GioPhut); return (g.getHours()+":"+g.getMinutes()); } function strNgay(Ngay) { var d= new Date(Ngay);
return (d.getDate()+"/"+(d.getMonth()+1)+"/"+d.getYear()); } function strNull(str) { var s= new String(str); if ((s=="null") || (s=="")) { return " "; } return s; } function numNull(num) { var n= new Number(num); if ((n==NaN) || (n==0)) { return " "; } return n; }