Luận văn: Xây dựng diễn đàn trên web - Web Forum

doc
Số trang Luận văn: Xây dựng diễn đàn trên web - Web Forum 44 Cỡ tệp Luận văn: Xây dựng diễn đàn trên web - Web Forum 1 MB Lượt tải Luận văn: Xây dựng diễn đàn trên web - Web Forum 0 Lượt đọc Luận văn: Xây dựng diễn đàn trên web - Web Forum 0
Đánh giá Luận văn: Xây dựng diễn đàn trên web - Web Forum
4.8 ( 20 lượt)
Nhấn vào bên dưới để tải tài liệu
Để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Nội dung

Xay dung dien dan tren web 3 Chöông 1 ÑAËT VAÁN ÑEÀ I. GIÔÙI THIEÄU CHUNG Neáu ai ñaõ töøng söû duïng Internet chaéc seõ khoâng ít laàn nghe hoaëc söû duïng dòch vuï nhoùm thaûo luaän treân Internet (NewsGroup), ñaây laø dòch vuï khaù phoå bieán hieän nay. Khi ta gaëp moät vaán ñeà thaéc maéc, hoaëc ñang tìm kieám moät thoâng tin gì ñoù, thì NewsGroup seõ laø ngöôøi trôï giuùp ñaéc löïc cho chuùng ta. Dòch vuï naøy cho pheùp ngöôøi duøng göûi leân maïng Internet nhöõng caâu hoûi hoaëc nhöõng thaéc maéc cuûa mình, sau ñoù neáu moät ngöôøi naøo ñoù, ôû ñaâu ñoù treân theá giôùi cuõng tham gia vaøo nhoùm thaûo luaän ñoù neáu hoï ñoïc ñöôïc ñöôïc maåu tin cuûa chuùng ta vaø bieát veà thoâng tin veà vaán ñeà ñoù hoï seõ traû lôøi cho ta vaø ngöôïc laïi ta cuõng coù theå trôû thaønh moät ngöôøi traû lôøi. Thaät laø thuù vò khi ñöôïc moïi ngöôøi treân toaøn caàu giuùp ta giaûi quyeát moät vaán ñeà. Ngaøy nay caùc NewsGroup thöôøng ñöôïc tích hôïp luoân treân web neân taïo ñieàu kieän thuaän lôïi hôn cho ngöôøi söû duïng vaø ngöôøi ta goïi ñoù laø caùc Dieãn ñaøn treân web (web forum). Treân maïng Internet hieän ñang coù raát nhieàu dieãn ñaøn noùi veà nhieàu chuû ñeà khaùc nhau. Ví duï trang www.deja.com ñaây laø trang web noåi tieáng veà vaán ñeà trao ñoåi thoâng tin giöõa moïi ngöôøi qua Internet. Nhö ta thaáy treân hình, ngöôøi ta chia ra raát nhieàu chuû ñeà nhö: copm. (computer): khoa hoïc veà maùy tính, rec. (recreation): hoäi thaûo veà giaûi trí ngheä thuaät... Taùc duïng lôùn nhaát cuûa Dieãn ñaøn treân web laø moïi ngöôøi Hình 1: Trang web noåi tieáng veà dieãn ñaøn khi tham gia vaøo maïng coù theå ñaët ra moät vaán ñeà gì ñoù theo (deja.com) Xay dung dien dan tren web 4 moät chuû ñeà nhaát ñònh ñeå coù theå nhaän ñöôïc caâu traû lôøi cuûa nhieàu ngöôøi treân toaøn theá giôùi. Ñeå coù theå thaáy ñöôïc lôïi ích veà tính quaûng baù vaø khoái löôïng thoâng tin, kieán thöùc ñoà soä treân dieãn ñaøn ta coù theå so saùnh dòch vuï naøy vôùi dòch vuï E-mail nhö sau: Neáu nhö noùi thoâng tin trao ñoåi qua mail chæ laø quan heä 1-1 , töùc laø chæ coù moät ngöôøi göûi vaø chæ coù moät ngöôøi, hoaëc moät nhoùm ngöôøi nhaän thö. Trong khi ñoù Dieãn ñaøn treân web laïi coù quan heä 1-n, töùc laø moät ngöôøi hoûi coù nhieàu ngöôøi traû lôøi. Nhö vaäy lôïi ích maø Dieãn ñaøn treân web ñem laïi cho ngöôøi söû duïng laø khoâng nhoû. Ngaøy nay Dieãn ñaøn treân Web ñöôïc öùng duïng raát nhieàu nôi, ví duï trong moät tröôøng ñaïi hoïc, dieãn ñaøn seõ giuùp ñôõ caùc sinh vieân trao ñoåi thaûo luaän vôùi nhau qua maïng, hay trong maïng noäi boä cuûa moät cô quan... Xuaát phaùt töø lôïi ích maø dieãn ñaøn ñem laïi, vôùi mong muoán taïo ra moät öùng duïng treân maïng, giuùp moïi ngöôøi trao ñoåi thoâng tin vôùi nhau neân em choïn ñeà taøi: “Xaây döïng dieãn ñaøn treân web - Web Forum”. Hieän nay Khoa Coâng Ngheä Thoâng Tin - Ñieän töû Vieãn thoâng chuùng ta ñang coù moät maïng cuïc boä hieän ñaïi, tuy nhieân em chöa thaáy coù nôi cho pheùp sinh vieân truy nhaäp, tìm hieåu nhöõng vaán ñeà phuïc vuï cho coâng vieäc hoïc taäp hay giaûi trí. Chöông trình Dieãn ñaøn treân Web neáu ñöôïc söû duïng treân maïng cuûa tröôøng mong seõ goùp moät phaàn vaøo vieäc trao ñoåi thoâng tin cuûa caùc baïn sinh vieân, ñem laïi moät hình thöùc trao ñoåi thoâng tin môùi vaø chaéc chaén seõ hieäu quaû. II. HÖÔÙNG XAÂY DÖÏNG CHÖÔNG TRÌNH Khi noùi ñeán dieãn ñaøn moïi ngöôøi lieân töôûng ñeán ngay ñeán caùc cuoäc baøn luaän, phaân tích veà moät vaán ñeà gì ñoù cuûa moät nhoùm ngöôøi naøo ñoù. Trong dieãn ñaøn moïi ngöôøi ñöa ra yù kieán cuûa mình, caùc caâu hoûi cuûa mình ñeå moïi ngöôøi tham gia phaân tích tìm caâu traû lôøi, ñoù laø dieãn ñaøn trong cuoäc soáng haèng ngaøy chæ dieãn ra trong noäi boä moät nhoùm ngöôøi. Ngaøy nay, vôùi söï phaùt trieån cuûa maïng Internet yù töôûng ñöa caùc cuoäc noùi chuyeän, baøn luaän xung quanh moät vaán ñeà gì ñoù cuõng ñöôïc ñöa leân maïng. Nhö vaäy, khi tham gia dieãn ñaøn treân maïng caùc thaønh vieân khoâng caàn phaûi taäp trung taïi moät ñòa ñieåm naøo ñoù maø chæ caàn ngoài taïi nhaø cuøng vôùi chieác maùy tính vaø tham gia vaøo maïng laø coù theå tham gia ñöôïc dieãn ñaøn. öu ñieåm cuûa phöông phaùp naøy laø ôû choå seõ coù nhieàu ngöôøi vaø raát nhieàu nôi treân theá giôùi tham gia vaøo dieãn ñaøn vaø vaán ñeà ñaët ra treân dieãn ñaøn chaéc chaén seõ mau choùng ñöôïc giaûi thích. Dieãn ñaøn treân web laø moät chöông trình öùng duïng ñöôïc xaây döïng döôùi daïng caùc trang web. Vôùi web, moïi ngöôøi söû duïng coù theå truy xuaát ñeán caùc trang öùng duïng naøy ñeå trao ñoåi thoâng tin vôùi ngöôøi khaùc. Xay dung dien dan tren web 5 Do chöông trình xaây döïng treân web coù trao ñoåi thoâng tin giöõa caùc ngöôøi söû duïng vôùi nhau neân caùc trang web cuûa öùng duïng nhaát thieát phaûi laø caùc trang web coù noäi dung ñoäng. Trong nhöõng naêm gaàn ñaây ñeå xaây döïng caùc trang web ñoäng ngöôøi ta thöôøng hay söû duïng caùc ngoân ngöõ nhö: VBScript, Jscript, ASP. Ngoaøi ra caùc trang web cho pheùp ngöôøi söû duïng trao ñoåi thoâng tin vôùi nhau neân phaûi coù moät cô sôû döõ lieäu ñeå löu tröõ caùc thoâng tin maø ngöôøi söû duïng trao ñoåi vôùi nhau. CHÖÔNG 2 CAÙC COÂNG CUÏ TRÔÏ GIUÙP Phaàn naøy giôùi thieäu veà caùc thaønh phaàn caàn thieát ñeå öùng duïng coù theå chaïy ñöôïc vaø caùc coâng cuï giuùp cho vieäc laäp trình. I. YEÂU CAÀU VEÀ MOÂI TRÖÔØNG LAØM VIEÄC CUÛA ÖÙNG DUÏNG Dieãn ñaøn treân Web laø moät chöông trình öùng duïng ñöôïc vieát treân giao dieän web vaø ngöôøi söû duïng coù theå ngoài taïi maùy con ñeå truy xuaát caùc trang web cuûa öùng duïng do vaäy yeâu caàu ñaàu tieân laø phaûi coù moät maùy chuû chaïy phaàn meàm web server (thoâng thöôøng laø IIS (Internet Information Server chaïy treân WinNT hay Personal Web Server chaïy treân Win98). Thöù hai, do ñaây laø trang web coù töông taùc vôùi cô sôû döõ lieäu caàn phaûi coù MS Access hay SQL Server. Thöù ba, phaûi coù moät chuaån keát noái giöõa cô sôû döõ lieäu ñeå ñöa döõ lieäu töø caùc ngöôøi söû duïng vaøo cô sôû döõ lieäu cuõng nhö truy xuaát caùc döõ lieäu töø caùc baûng cuûa cô sôû döõ lieäu. Khi xaây döïng chöông trình tuy coù nhieàu caùch löïa choïn veà moâi tröôøng laøm vieäc cuûa öùng duïng nhöng em choïn moâi tröôøng laøm vieäc cho öùng duïng goàm: - PWS (Personal Web Server) - Cô sôû döõ lieäu: Microsoft Access 98 - Chuaån keát noái: ODBC Web Server laø moät chöông trình öùng duïng. Treân web server chöùa nhöõng site maø caùc maùy con coù theå truy xuaát ñeán caùc site naøy. Thoâng thöôøng treân maùy coù heä ñieàu haønh Windows 98 thì web server laø Personal Web Server, treân maùy WindowsNT Server thì duøng phaàn meàm IIS 4.0. Veà cô sôû döõ lieäu, caùc öùng duïng thöïc teá hieän nay ngöôøi ta thöôøng hay söû duïng SQL Server. Tuy nhieân trong quaù trình xaây döïng chöông trình khoâng coù moät maùy tính coù caáu hình ñuû maïnh ñeå caøi ñaët SQL Server. Hôn nöõa trong chöông trình ta chæ duøng cô sôû döõ lieäu ñeå löu tröõ thoâng tin vaøo caùc baûng neân vieäc choïn SQL Server hay MS Access laø khoâng quan troïng. Veà chuaån ODBC, ODBC laø vieát taét cuûa Open Database Connectivity (heä thoáng keát noái CSDL môû). ODBC ñöôïc coi nhö laø Xay dung dien dan tren web 6 moät giao thöùc chuaån ñeå giao tieáp giöõa chöông trình öùng duïng vôùi heä thoáng caùc baûng cuûa cô sôû döõ lieäu. Ví duï khi ta vieát caùc chöông trình öùng duïng coù truy xuaát cô sôû döõ lieäu thoâng qua ODBC thì ODBC nhaän nhöõng yeâu caàu töø chöông trình öùng duïng vaø chuyeån thaønh ngoân ngöõ database engine ñeå truy xuaát cô sôû döõ lieäu. Vaø ñeå coù theå hình dung ñöôïc khaùi quaùt caùch chöông trình laøm vieäc cuõng nhö caùch trao ñoåi döõ lieäu töø ngöôøi söû duïng vôùi cô sôû döõ lieäu nhö theá naøoMaùy ta xem hình 2 CSDL Maùy con  Interne t chuû  ODBC Intrane Yeâu caàu moâi tröôøng laøm vieäc Theo nhö Hình hình 2: veõ t treân, ngöôøi söû duïng coù thoâng qua moâi cuûa öùng duïng tröôøng maïng Internet hay Intranet coù theå truy xuaát caùc trang cuûa öùng duïng treân web server (maùy chuû). Khi coù thao taùc vôùi cô sôû döõ lieäu nhö: göûi moät baøi, tìm kieám thoâng tin veà moät baøi naøo ñoù... thì caùc yeâu caàu naøy seõ ñöôïc web server thöïc hieän. Web server seõ thöïc thi caùc ñoaïn maõ leänh ñeå truy xuaát ñöôïc caùc baûng trong cô sôû döõ lieäu thoâng quan ODBC, tuyø theo yeâu caàu cuûa ngöôøi söû duïng web server coù theå ñöa döõ lieäu vaøo cô sôû döõ lieäu hoaëc truy xuaát caùc thoâng tin töø cô sôû döõ lieäu vaø cuoái cuøng traû veà cho ngöôøi söû duïng keát quaû maø hoï yeâu caàu. Treân laø moät soá ñieàu cô baûn veà moâi tröôøng vaø caùch thöùc hoaït ñoäng cuûa öùng duïng. II. CAÙC COÂNG CUÏ TRÔÏ GIUÙP TRONG LAÄP TRÌNH 1. Jscript (javascript): Jscript ñöôïc phaùt trieån bôûi Microsoft nhaèn laøm taêng tính naêng cho trình duyeät Internet Explorer. Tröôùc ñaây caùc trang web ñöôïc vieát baèng HTML coù khaû naêng töông taùc vôùi ngöôøi söû duïng raát keùm thì nay vôùi Jscript chuùng ta coù theå taïo ra ñöôïc nhöõng trang web ñaày soáng ñoäng vaø khaû naêng töông taùc raát maïnh. Neáu ai ñaõ töøng laäp trình vôùi Java thì vieäc hoïc Jscript seõ raát deã daøng. Maët duø chöùc naêng cuûa Jscript khoâng maïnh baèng caùc ngoân ngöõ laäp trình nhö Java hay C++ nhöng cuõng ñuû ñeå ngöôøi laäp trình vieát nhöõng chöông trình nhoû cho caùc trang web. Trong thöïc teá ngöôøi ta thöôøng hay söû duïng Jscript ñeå taïo ra nhöõng trang web töông taùc vôùi ngöôøi duøng nhö: caùc form nhaäp soá lieäu, caùc nuùt baám treân trang web, hoaëc nhöõng hình aûnh chuyeån ñoäng treân trang web..., laøm cho trang web gioáng nhö moät chöông trình thöïc thuï. 2. VBScript (visual basic script) Vbscript cuõng do Microsoft phaùt trieån. Cuõng nhö Jscript, Vbscript ñöôïc cheøn vaøo trang web ñeå laøm taêng theâm tính naêng töông taùc cho trang web. Xay dung dien dan tren web 7 Thöôøng Vbsript ñöôïc duøng ñeå vieát nhöõng ñoaïn chöông trình tính toaùn soá lieäu treân trang web, hoaëc coù theå duøng noù ñeå vieát nhöõng ñoaïn chöông trình trao ñoåi döõ lieäu giöõa trang web vaø caùc cô sôû döõ lieäu. Toùm laïi, Jscript vaø Vbscript khoâng phaûi laø phieân baûn cuûa baát kyø moät ngoân ngöõ naøo maëc duø Jscript thì troâng gaàn gioáng nhö Java hay Vbscript thì troâng gaàn gioáng nhö Visual basic. Theâm vaøo ñoù Jscript vaø VBScript khoâng duøng ñeå taïo ra ñöôïc caùc öùng duïng ñoäc laäp maø noù phaûi ñöôïc chaïy keøm vaøo trong caùc trang web vaø caùc ñoaïn maõ cuûa caùc ngoân ngöõ naøy seõ ñöôïc dòch vaø thöïc thi treân web server hay treân trình duyeät cuûa ngöôøi söû duïng. 3. ASP (active server page) Microsoft Active Server Page (ASP) laø moät moâi tröôøng kòch baûn treân maùy chuû duøng ñeå taïo ra nhöõng öùng duïng Web ñoäng vaø coù töông taùc. ASP coù moät taäp caùc ñoái töôïng coù saün vôùi nhieàu tính naêng phong phuù, khaû naêng hoã trôï VBScript vaø JScript cuøng vôùi moät soá thaønh phaàn ActiveX khaùc keøm theo. - Ñaëc ñieåm cuûa ASP Taïo ra nhöõng trang web ñoäng coù töông taùc: ASP coù hoä trôï caùc script nhö JScript vaø Vbscript, baèng caùch ñöa caùc script naøy vaøo trong trang ASP chuùng ta coù theå taïo ra nhöõng trang web ñoäng coù töông taùc. ASP coù hoã trôï caùc ñoái töôïng ñöôïc xaây döïng saün, vôùi caùc ñoái töôïng naøy cuøng vôùi caùc script chuùng ta coù theå taïo ra nhöõng trang web ña naêng. Ví duï chuùng ta coù theå duøng ñoái töôïng Request ñeå vieát nhöõng ñoaïn chöông trình yeâu caàu server cung caáp thoâng tin töø server. Ngoaøi ra ASP coøn coù nhöõng ñoái töôïng khaùc maø khi duøng ngöôøi duøng phaûi ñònh nghóa tröôùc khi duøng, caùc ñoái töôïng naøy cuõng cung caáp cho ngöôøi laäp trình coù khaû naêng taïo ra ñöôïc nhöõng trang Web höõu ích. Coù theå truy xuaát ñeán cô sôû döõ lieäu nhö MS Access hay SQL server. - Khaû naêng cuûa ASP Vôùi ASP ta coù theå taïo ñöôïc nhieàu loaïi web naøo hieän ñang coù treân Internet. Sau ñaây ta coù theå lieät keâ ra moät soá khaû naêng maø ASP coù theå laøm: Taïo nhöõng hình aûnh quaûng caùo ñoäng raát sinh ñoäng vaø ñeïp maét treân trang web. Coù theå ñöa caùc thoâng tin töø caùc form cuûa HTML leân cô sôû döõ lieäu. Coù theå taïo ra coù theå hieån thò noäi dung khaùc nhau tuyø thuoäc vaøo ngöôøi söû duïng. Coù nghóa laø ñoái vôùi ngöôøi söû Xay dung dien dan tren web 8 duïng naøy seõ coù noäi dung hieån thò treân trình duyeät khaùc vôùi ngöôøi söû duïng khaùc. Ñoái vôùi nhöõng trình duyeät web khaùc nhau, version khaùc nhau (IE hay Netscape) thì asp coù theå coù nhöõng noäi dung hieån thò khaùc nhau tuyø thuoäc vaøo khaû naêng cuûa trình duyeät. - Caùc ñoái töôïng cuûa ASP Nhaèm taïo ñieàu kieän cho ngöôøi laäp trình, ASP cung caáp cho ngöôøi laäp trình naêm ñoái töôïng ñöôïc xaây döïng saün. CLIENT CLIENT REQUEST REQUEST OBJECT OBJECT Cookies Cookies Form Form QueryString QueryString ServerVariables ServerVariables ClientCertificate ClientCertificate SERVER SERVER RESPONSE RESPONSE OBJECT OBJECT Cookies Cookies (properties) (properties) (methods) (methods) SERVER SERVER OBJECT OBJECT (methods) (methods) Hình 3: Caùc ñoái töôïng ñöôïc xaây döïng saün cuûa ASP Trong ñoù: Session Applicatio n Request Response Server APPLICATION APPLICATION OBJECT OBJECT SESSION SESSION OBJECT OBJECT (methods) (methods) (properties) (properties) (methods) (methods) (properties) (properties) Duøng ñeå löu tröõ nhöõng thoâng tin caàn thieát trong phieân laøm vieäc cuûa user. Nhöõng thoâng tin löu tröõ trong session khoâng bò maát ñi khi user di chuyeån qua caùc trang öùng duïng. Duøng ñeå chia seû thoâng tin giöõa caùc user trong cuøng moät öùng duïng. Ñoái töôïng Application thöôøng ñöôïc duøng ñeå ñeám soá laàn truy caäp ñeán öùng duïng cuûa user duøng ñeå truy caäp nhöõng thoâng tin ñöôïc chuyeån cuøng vôùi yeâu caàu HTTP. Nhöõng thoâng tin naøy goàm caùc tham soá cuûa form khi ñöôïc Submit duøng phöông thöùc POST hay GET hay caùc tham soá ñöôïc ghi cuøng vôùi trang asp trong lôøi goïi ñeán trang ñoù. Duøng ñoái töôïng Request ñeå chia seû thoâng tin giöõa caùc trang asp trong moät öùng duïng. Ngoaøi ra Request coøn ñöôïc duøng ñeå laáy giaù trò cookie löu tröõ treân maùy client göûi thoâng tin ra user, goàm caùc thoâng tin ghi tröïc tieáp ra browser, chuyeån browser ñeán moät URL khaùc hoaëc thieát laäp cookie treân maùy client cung caáp phöông tieän truy caäp ñeán nhöõng phöông Xay dung dien dan tren web 9 thöùc vaø thuoäc tính treân server. - Caùch taïo trang ASP Vôùi moät trang HTML coù saün, ta coù theå deã daøng taïo ra caùc trang ASP baèng caùch theâm vaøo caùc leänh ASP Script caàn thieát vaø ñoåi phaàn môû roäng thaønh .asp. - Caùch cheøn caùc ASP Script vaøo trang ASP: ASP Script phaûi ñöôïc ñaët giöõa kyù hieäu <% vaø %> hoaëc giöõa khoái Nhöõng leänh naèm giöõa <% %> phaûi söû duïng ngoân ngöõ scripting chính thöùc qui ñònh cho trang ñoù. Ñeå chæ ñònh ngoân ngöõ chính thöùc cho trang ASP, ta duøng chæ daãn <%language = language> ñaët ôû doøng ñaàu tieân cuûa trang ASP. Löu yù, ngoân ngöõ Vbsvript laø ngoân ngöõ chính thöùc ngaàm ñònh cho trang ASP. Duøng khoái ñeå ñònh nghóa caùc Procedure (Sub hoaëc Function) coù söû duïng trong trang ASP (caùc Procedure thöôøng ñaët ôû cuoái trang). 4. Visual InterDev (visual Internet Development) Visual InterDev laø moät phaàn meàm ñöôïc phaùt trieån bôûi Microsoft. Ñaây laø moät phaàn meàm coù hoã trôï cho laäp trình thieát keá web ñaëc bieät phaàn meàm coù cho pheùp ngöôøi laäp trình coù theå nhìn thaáy tröïc tieáp trang web cuûa mình ñang thieát keá. Visual InterDev hoã trôï raát maïnh cho vieäc laäp trình caùc trang web coù töông taùc. Taát caû caùc ñoái töôïng cuûa ASP ñeàu ñöôïc phaàm meàm naøy hoã trôï. Do taát caû caùc ñoái töôïng cuûa ASP ñöôïc phaàn meàm naøy hoå trôï neân vieäc laáy Visual Interdev ñeå soaïn thaûo caùc trang asp seõ raát nhanh vaø ít gaëp loãi. - Nhöõng öu ñieåm cuûa phaàn meàm: Hoã trôï maïnh cho ngöôøi laäp trình taïo ra nhöõng trang öùng duïng baèng ngoân ngöõ HTML hay caùc ngoân ngöõ môùi nhö DHTML. Laø moät coâng cuï laäp trình maïnh cho web, phaàn meàm coù raát nhieàu coâng cuï ñöôïc xaây döïng saün, caùc ñoái töôïng ñöôïc xaây döïng saün trong thö vieän. Ngoaøi ra ngöôøi laäp trình coù theå söû duïng ñeán caùc coâng cuï gôõ roái chöông trình, kieåm tra chöông trình hay taïo ra nhöõng trang web moät caùch nhanh choùng Tích hôïp taát caû caùc thuoäc tính, caùc ñoái töôïng cuûa caùc ngoân ngöõ nhö VBScript, JavaScript, J++ hay caùc ñoái töôïng cuûa ASP Visual InterDev coù moät trình soaïn thaûo thoâng minh, töï ñoäng hieåu ñöôïc taát caû caùc method, properties, event cuûa ñoái töôïng (ñeå thaáy roõ ñieàu naøy xin xem hình 5). Xay dung dien dan tren web 10 Moät vaøi hình veõ sau seõ cho thaáy söï thuaän tieän cuûa Visual InterDev trong vieäc laäp trình web, ñaëc bieät laø laäp trình vôùi caùc Cho pheùp taïo ra trang ASP. caùc asp... trang html, Hình 4: Choïn löïa caùc kieåu khaùc nhau ñeå Hieån thò taát caû caùc taïo trang web thuoäc tính caùc phöông thöùc cuûa moät ñoái töôïng asp Taïo ra 1 Project ñeå chöùa taát caû caùc file trong web site Cho pheùp gôõ roái chöông trình Caùc coâng cuï hoã trôï cho laäp trình caùc trang web Hình 5: Trình soaïn thaûo thoâng minh cho pheùp laäp trình thuaän lôïi Nhìn thaáy tröïc tieáp keát quaû laäp trình Xem maõ nguoàn cuûa chöông trình Hình 6: Coù theå quaûn lyù ñöôïc 1 project, thaáy ñöôïc tröïc quan keát quaû laäp trình, hoã trôï caùc coâng cuï... Xay dung dien dan tren web 11 5 . DHTML (dynamic html) - DHTML laø söï keát hôïp giöõa caùc thuoäc tính cuûa HTML, JavaScript vaø Vbscript. Tröôùc ñaây muoán laøm moät trang Web ñeïp, vôùi caùc hình aûnh ñoäng, chöõ ñoåi maøu, ñoåi kieåu chöõ hay muoán laøm moät menu treân trang web laø moät ñieàu khoù khaên. Gaàn ñaây Microsoft ñöa ra coâng ngheä DHTML (dynamic HTML), DHTML ñöôïc xaây döïng döïa treân neàn taûng cuûa HTML, nhöng khaû naêng cuûa DHTML toû ra noåi troäi hôn so vôùi HTML do khaû naêng taïo ra nhöõng trang web ñoäng vaø linh hoaït. - Khaû naêng cuûa DHTML Vôùi DHTML ta coù theå deã daøng taïo ra nhöõng hieäu öùng ñoái vôùi trang web, coâng vieäc naøy tröôùc ñaây phaûi maát raát nhieàu thôøi gian vaø coâng söùc. Coù theå daáu ñi moät doøng chöõ hay moät böùc aûnh naøo ñoù treân trang web vaø coù theå cho noù xuaát hieän baát cöù khi naøo ta muoán. Coù theå taïo ra nhöõng doøng chöõ hay nhöõng böùc tranh soáng ñoäng treân trang web Coù theå taïo ra nhöõng form treân trang web, döõ lieäu trong form coù theå cho hieån thò ngay leân chính trang web ñoù maø khoâng phaûi môû ra moät trang web khaùc (thoâng thöôøng, vôùi HTML ta muoán hieån thò moät thoâng tin khaùc leân treân trang web thì baét buoäc moät trang web khaùc phaûi ñöôïc môû ra). Coù theå duøng DHTML ñeå hieån thò thoâng tin trong cô sôû döõ lieäu. CHÖÔNG 3 PHAÂN TÍCH CHÖÔNG TRÌNH I. TOÅNG QUAÙT VEÀ CHÖÙC NAÊNG CUÛA DIEÃN ÑAØN TREÂN WEB - Göûi baøi leân dieãn ñaøn. - Xem baøi ñaõ ñöôïc göûi theo caùc chuû ñeà khaùc nhau - Traû lôøi baøi ñaõ ñöôïc göûi - Tìm kieám moät baøi - Ñaêng kyù trôû thaønh thaønh vieân cuûa dieãn ñaøn - Ñaùnh daáu baøi öa thích - Xoaù caùc baøi ñaõ coù treân dieãn ñaøn - Theâm ngöôøi söû duïng Xay dung dien dan tren web 12 - Xoaù ngöôøi söû duïng - Theâm chuû ñeà cho dieãn ñaøn - Xoaù chuû ñeà. Chöùc naêng chính cuûa Dieãn ñaøn treân web laø cho pheùp ngöôøi söû duïng ñöa ñöôïc yù kieán cuûa hoï leân maïng. Ñeå hieåu ñöôïc moät caùch khaùi quaùt web forum hoaït ñoäng nhö theá naøo chuùng ta xeùt moät ví duï veà chöùc naêng chính cuûa dieãn ñaøn laø xem vaø göûi baøi. Ví duï: Khi tham gia vaøo dieãn ñaøn ngöôøi söû duïng seõ löïa choïn moät chuû ñeà trong loaït caùc chuû ñeà cuûa dieãn ñaøn nhö trong hình 7, Ví duï ta choïn chuû ñeà “laäp trình”, sau khi choïn chuû ñeà xong, moät danh saùch caùc baøi thuoäc chuû ñeà ñoù seõ xuaát hieän nhö hình 8. Ngöôøi söû duïng seõ choïn moät trong caùc baøi trong danh saùch ñeå xem noäi dung, ví duï choïn baøi “Con troû trong C” thì noäi dung cuûa baøi naøy hieän ra nhö trong hình 9, neáu ngöôøi ñoïc thaáy coù theå traû lôøi ñöôïc thì nhaép vaøo nuùt traû lôøi vaø nhaäp noäi dung vaøo form nhö hình 10 vaø nhaép nuùt traû lôøi, baøi traû lôøi seõ naèm ngay döôùi caâu hoûi. Neáu ngöôøi söû duïng muoán göûi moät baøi môùi thì coù theå nhaép vaøo nuùt “Göûibaøimôùi”. Treân ñaây laø phaàn sô löôïc veà hoaït ñoäng cô baûn cuûa dieãn ñaøn. Ngoaøi ra noù coøn cho pheùp ngöôøi duøng coù nhieàu thao taùc khaùc khaùc nhau. Ñeå minh hoaï cho chöùc naêng chính cuûa dieãn ñaøn laø göûi vaø traû löoøi moät baøi, ta ñöa ra ví duï ñeå chuùng ta coù theå hình dung ñöôïc khaùi quaùt dieãn ñaøn duøng laøm gì vaø noù coù daùng daáp nhö theá naøo. Phaàn sau chuùng ta seõ ñi chi tieát veà chöùc naêng cuûa dieãn ñaøn. Hình 7: Caùc chuû ñeà cuûa dieãn Hình 8: Danh saùch caùc baøi ñaõ ñaêng ®µn Hình 9: Xem noäi dung 1 baøi Hình 10: Göûi baøi môùi, hoaëc traû lôøi Xay dung dien dan tren web 13 II. CAÙC VAÁN ÑEÀ CAÀN GIAÛI QUYEÁT KHI XAÂY DÖÏNG CHÖÔNG TRÌNH Thieát keá toång quaùt öùng duïng: nhaèm giuùp ngöôøi laäp trình deã phaùt trieån öùng duïng moät caùch coù toå chöùc, ñuùng höôùng, ñuùng yeâu caàu ñaõ ñeà ra. Thieát keá cô sôû döõ lieäu: ñaây laø phaàn quan troïng, coù lieân quan ñeán tính toái öu cuûa heä thoáng. Xaây döïng giao dieän: taïo ñieàu kieän thuaän lôïi cho ngöôøi söû duïng khi göûi caùc yeâu caàu cuûa mình ñeán web server. Vieát caùc trang web ñeå thöïc hieän caùc chöùc naêng cuûa chöông trình: döïa vaøo ASP vaø caùc ngoân ngöõ script ñeå taïo ra nhöõng modul cho chöông trình. Kieåm tra, söûa loãi chöông trình 1. Phaân caáp ngöôøi söû duïng Khoâng phaûi taát caû ngöôøi söû duïng dieãn ñeàu coù quyeàn thöïc hieän taát caû caùc khaû naêng treân. Ví duï, moät ngöôøi söû duïng thoâng thöôøng khoâng theå coù quyeàn xoaù baøi treân dieãn ñaøn, hoaëc coù theå ñaùnh daáu moät baøi... Do vaäy, phaân quyeàn cho ngöôøi söû duïng laø ñieàu caàn thieát vaø khi tham gia vaøo dieãn ñaøn tuyø theo quyeàn cuûa mình maø coù caùc chöùc naêng khaùc nhau. Chöông trình chia ngöôøi söû duïng thaønh 3 caáp: caáp 0, caáp 1 vaø caáp 2. - Caáp 0: ngöôøi söû duïng chöa ñaêng kyù - Caáp 1: laø nhöõng ngöôøi quaûn lyù heä thoáng. - Caáp 2: ngöôøi söû duïng coù ñaêng kyù teân truy nhaäp. a. Ngöôøi söû duïng thoâng thöôøng Dieãn ñaøn treân maïng laø nôi maø taát caû moïi ngöôøi ñeàu coù theå tham gia vaø ñoùng goùp caùc yù kieán, caùc caâu hoûi cuûa mình. Do vaäy, moät ngöôøi khoâng caàn ñaêng kyù coù theå tham gia vaøo dieãn ñaøn vaø coù caùc khaû naêng sau: - Xem noäi dung cuûa moät baøi baát kyø. - Göûi caâu hoûi môùi theo moät chuû ñeà nhaát ñònh naøo ñoù - Göûi caâu traû lôøi cho nhöõng caâu maø mình bieát. - Saép xeáp traät töï cuûa caùc baøi gôûi theo yù muoán: theo chuû ñeà cuûa baøi göûi, theo tieâu ñeà, theo ngaøy thaùng naêm, theo ngöôøi göûi, ... - Tìm kieám: tìm kieám baát kyø moät baøi gôûi naøo ñoù treân dieãn ñaøn theo: noäi dung cuûa baøi gôûi, theo chuû ñeà, theo tieâu ñeà cuûa baøi göûi. b. Ngöôøi söû duïng coù ñaêng kyù Dieãn ñaøn treân Web coù theå cho pheùp moïi ngöôøi truy caäp vaøo vaø gôûi caùc baøi cuûa mình leân dieãn ñaøn, tuy nhieân heä thoáng coù cho pheùp ngöôøi duøng coù theå taïo cho mình moät Account rieâng. Ñoái vôùi nhöõng ngöôøi duøng coù ñaêng kyù Account Xay dung dien dan tren web 14 khi Login vaøo öùng duïng seõ coù khaû naêng löu giöõ laïi caùc baøi maø ngöôøi ñoù öa thích. Laàn truy caäp tieáp theo, neáu ngöôøi söû duïng login ñuùng teân truy nhaäp vaø maät khaåu thì coù khaû naêng xem laïi caùc baøi maø mình ñaõ ghi nhôù trong caùc laàn tröôùc. Ngoaøi quyeàn lôïi ñöa ñaùnh daáu baøi, ngöôøi söû duïng coù ñaêng kyù coøn coù theå coù nhieàu quyeàn lôïi khaùc nhö: nhaän ñöôïc thoâng tin veà moät baøi môùi hay caùc caâu hoûi/ traû lôøi coù lieân quan ñeán ngöôøi söû duïng... Tuy nhieân trong quaù trình phaùt trieån öùng duïng do thôøi gian coù haïn neân chöa öùng duïng taïm thôøi chöa coù chöùc naêng naøy. c. Ngöôøi quaûn lyù Quay veà Ñoái vôùi lyù, ngoaøi caùc hoaït ñoäng nhö moät  ngöôøi quaûn trang hieån ngöôøi söû duïng bình thöôøng thò coøn coù caùc khaû naêng sau: Göûi baøi - Quaûn lyù ngöôøi söû duïng: môùi - Xoaù ngöôøi söû duïng: xoaù moät ngöôøi söû duïng bình Soaïn vaø thöôøng Hieån thò Xem noäi dung 1 Noäi dung göûi baøi baøi ra khoûi caùc baøi baøi Xem,heä göûi thoáng - baøi Taïo ngöôøi söû duïng Veà môùi trang hieån thò ñaøn: Ñaây laø moät bieän phaùp - Xoaù caùc baøi treân dieãn duøng ñeå quaûn lyù noäi dung cuûa caùc baøi vieát gôûi leân dieãn Trang Hieån thò Xe  ñaøn nhaäp ND keát quaû m caàn tìm tìm kieám noäi - Quaûn lyù caùc chuû ñeà cuûa dieãn ñaøn: kieám laø danh dun Tìm saùch caùc - Xoaù moät chuû ñeà baát kyø g1 kieám baøi göûi baøi - Theâm vaøo moät chuû ñeà môùi baøi Danh saùch baøi ghi nhôù  U s e r Ñaêng kyù Trang ñaêng kyù Ghi nhôù  Thaát baïi Thaønh Trangcoâng Login  Danh saùch baøi A d m i n Login Xoaù baøi Theâm chuû ñeà Danh saùch chuû ñeà trình xem, göûi Xoaù chuû  Quaù vaø traû lôøi baøi ñeà  Quaù trình tìm kieám Hoaït ñoäng cuûa User Theâm User SÔñaêng ÑOÀkyù QUI CAÙC TRANG TRONG bµi TRÌNH HOAÏT ÑOÄNG CUÛA  Danh DUÏNG WEB FORUM Caùc chöùc naêng ÖÙNG cuûa ngöôøi saùch  quaûn lyù User Xoaù User Hình 11: Qui trình hoaït ñoäng cuûa caùc trang web Xay dung dien dan tren web 15 2. Hoaït ñoäng cuûa chöông trình: Khi ngöôøi söû duïng göûi yeâu caàu ñeán server coù chöùa öùng duïng, neáu yeâu caàu ñöôïc ñaùp öùng trang web giao tieáp vôùi ngöôøi söû suïng seõ hieän ra treân maùy cuûa ngöôøi duøng. Töø ñaây ngöôøi söû duïng coù theå tieáp tuïc göûi caùc yeâu caàu cuûa mình ñeán server baèng caùch choïn caùc chöùc naêng töông öùng ñaõ ñöôïc thieát keá saün treân caùc trang web vaø server seõ nhaän caùc yeâu caàu naøy sau ñoù xöû lyù tính toaùn ngay treân server vaø traû veà cho ngöôøi duøng nhöõng gì maø hoï yeâu caàu. Cuï theå qui trình hoaït ñoäng cuûa caùc trang nhö sau: Xay dung dien dan tren web 16  Qui trình göûi vaø xem baøi Trang ñaàu tieân seõ laø trang hieån thò danh saùch caùc baøi ñöôïc göûi döôùi daïng caùc sieâu lieân keát. Ngöôøi söû duïng muoán xem noäi dung cuûa moät baøi naøo ñoù thì kích vaøo tieâu ñeà cuûa baøi. ôû trang xem noäi dung ngöôøi söû duïng coù theå traû lôøi cho baøi coù noäi dung vöøa ñoïc. Ngoaøi ra ngöôøi söû duïng coù theå göûi moät baøi môùi.  Qui trình tìm kieám baøi AÙp duïng ñoái vôùi: Ngöôøi söû duïng bình thöôøng, ngöôøi söû duïng coù ñaêng kyù, ngöôøi quaûn lyù. Khi ngöôøi söû duïng muoán tìm kieám moät baøi naøo ñoù, seõ coù moät trang tìm kieám vaø ôû trang tìm kieám - Tìm kieám theo chuû ñeà cuûa baøi göûi - Tìm kieám theo noäi dung cuûa baøi göûi - Tìm kieám nhöõng baøi trong moät khoaûng thôøi gian giôùi haïn naøo ñoù Keát quaû traû veà: Neáu tìm thaáy caùc baøi coù nhö noäi dung ngöôøi duøng caàn tìm kieám thì danh saùch caùc baøi ñöôïc tìm thaáy seõ ñöôïc lieät keâ treân trang web Neáu khoâng tìm thaáy seõ hieån thò thoâng baùo khoâng tìm thaáy Qui trình ñaêng kyù vaø login cuûa ngöôøi söû duïng, ghi nhôù baøi AÙp duïng ñoái vôùi: Ngöôøi chöa ñaêng kyù, ngöôøi ñaõ ñaêng kyù, ngöôøi quaûn lyù. Ñeå trôû thaønh moät thaønh vieân cuûa dieãn ñaøn, ngöôøi söû duïng phaûi ñaêng kyù moät account vaø seõ ñöôïc heä thoáng caáp moät teân truy nhaäp vaø maät khaåu rieâng cho ngöôøi ñoù. Khi yeâu caàu ñöôïc ñaêng kyù, moät trang ñaêng kyù bao goàm caùc oâ ñeå nhaäp thoâng tin ñöôïc hieän ra, ngöôøi söû duïng seõ nhaäp caùc thoâng tin vaøo caùc oâ naøy vaø göûi ñi, neáu ñöôïc heä thoáng chaáp nhaän thì ngöôøi ñaêng kyù seõ nhaän ñöôïc moät thoâng baùo chuùc möøng thaønh coâng, neáu khoâng thaønh coâng heä thoáng seõ thoâng baùo loãi vaø hieän ra laïi trang ñaêng kyù cho ngöôøi söû duïng söûa laïi caùc thoâng tin ñaêng kyù cho phuø hôïp. Khi ñaõ trôû thaønh moät thaønh vieân cuûa dieãn ñaøn ngöôøi söû duïng ngoaøi vieäc coù theå söû duïng caùc trang gioáng nhö moät ngöôøi söû duïng bình thöôøng coøn coù theå ñaùnh daáu nhöõng baøi maø mình öu thích.  Qui trình hoaït ñoäng cuûa ngöôøi quaûn lyù: AÙp duïng ñoái vôùi: Ngöôøi quaûn lyù Ñeå forum hoaït ñoäng toát caàn phaûi coù moät ngöôøi quaûn lyù, chöùc naêng cuûa ngöôøi quaûn lyù bao goàm: - Xoaù baøi Chöông trình cho pheùp ngöôøi quaûn lyù choïn baát cöù moät baøi naøo ñoù ñeå xoaù vaø coù theå xoaù nhieàu baøi hoaëc xoaù moät baøi. Vieäc xoaù baøi thöïc hieän theo nguyeân taéc: khi moät Xay dung dien dan tren web 17 baøi cha ñöôïc xoaù thì taát caû caùc baøi con cuûa noù seõ ñöôïc xoaù theo. Theâm ngöôøi söû duïng , xoaù ngöôøi söû duïng Nhaèm quaûn lyù ñöôïc ngöôøi duøng treân heä thoáng, chöông trình cho pheùp ngöôøi quaûn lyù coù theå theâm ngöôøi söû duïng vaøo heä thoáng vaø ngöôïc laïi coù theå xoaù ngöôøi söû duïng ra khoûi heä thoáng. - Theâm chuû ñeà , xoaù chuû ñeà Ñeå cho dieãn ñaøn ngaøy caøng phong phuù, ngöôøi quaûn lyù coù theå theâm vaøo dieãn ñaøn nhöõng chuû ñeà cho phuø hôïp vôùi yeâu caàu thöïc tieãn. Ngöôïc laïi, neáu coù moät chuû ñeà naøo ñoù maø quaù laâu ngaøy khoâng coù ngöôøi tham gia thì ngöôøi quaûn lyù coù theå xoaù chuû ñeà ñoù ñi. Vieäc xoaù chuû ñeà cuõng theo nguyeân taéc laø taát caû caùc baøi thuoäc chuû ñoù cuõng xoaù theo. CHÖÔNG 4 PHAÂN TÍCH THIEÁT KEÁ HEÄ THOÁNG Xay dung dien dan tren web 18 Nhö ñaõ noùi trong phaàn giôùi thieäu toång quan veà hoaït ñoäng cuûa dieãn ñaøn, ngöôøi söû duïng khi göûi moät baøi leân dieãn ñaøn thì caùc thaønh phaàn cuûa moät baøi göûi: thoâng tin veà ngöôøi göûi, tieâu ñeà baøi göûi, noäi dung... ñeàu phaûi ñöôïc löu tröõ trong cô sôû döõ lieäu treân maùy chuû. Thoâng thöôøng ngöôøi ta thöôøng duøng caùc moâ hình cô sôû döõ lieäu quan heä ñeå chöùa caùc thoâng tin veà baøi göûi nhö SQL Server hay MS Access. Trong ñoà aùn naøy em choïn cô sôû döõ lieäu laø Access ñeå löu caùc thoâng tin veà baøi göûi. Do coù lieân quan nhieàu ñeán cô sôû döõ lieäu, ñoàng thôøi caùc thoâng tin cuûa baøi göûi ñoøi hoûi phaûi ñöôïc toå chöùc moät caùch hôïp lyù vaø chaët cheõ neân trong phaàn naøy chuû yeáu trình baøy veà phaàn phaân tích vaø thieát keá heä thoáng. I. NHÖÕNG THOÂNG TIN CAÀN QUAÛN LYÙ TREÂN CÔ SÔÛ DÖÕ LIEÄU Thoâng tin caùc baøi maø ngöôøi söû duïng göûi leân dieãn ñaøn, moãi baøi phaûi coù maõ rieâng, caáp cuûa baøi ñoù, noäi dung cuûa baøi laø gì. Thoâng tin veà ngöôøi duøng, khi ngöôøi söû duïng ñaêng kyù thì caùc thoâng tin veà ngöôøi söû duïng nhö: teân truy nhaäp, maät khaåu, caáp cuûa ngöôøi söû duïng (caáp Admin vaø caáp User) phaûi ñöôïc löu tröõ treân cô sôû döõ lieäu. Noäi dung cuûa baøi sau khi göûi seõ ñöôïc taùch ra thaønh caùc töø khoaù, caùc töø khoaù naøy seõ taïo neân caùc baûng chæ muïc duøng cho muïc ñích tìm kieám thoâng tin veà caùc baøi göûi ñaõ göûi leân dieãn ñaøn. Do vaäy caùc töø khoaù, caùc chæ muïc cuõng phaûi ñöôïc löu giöõ. Quaûn lyù caùc chuû ñeà cuûa baøi göûi, caùc chuû ñeà naøy do ngöôøi quaûn lyù dieãn ñaøn qui ñònh vaø coù theå theâm bôùt. Quaûn lyù caùc thoâng tin ghi nhôù baøi cuûa taát caû caùc thoâng tin veà ngöôøi söû duïng: hoï teân, e-mail... Xay dung dien dan tren web 19 II. PHAÂN TÍCH VAØ THIEÁT KEÁ 1. Sô ñoà doøng döõ lieäu DFD Caùc baøi vieát treân dieãn ñaøn 1 Xem caùc baøi ñaõ ñöôïc gôûi Yeâu caàu xem caùc baøi treân dieãn ñaøn Caùc trang Web C C hh öö aa Gôûi baøi leân dieãn ñaøn Yeâu caàu tìm kieám caùc thoâng tin treân dieãn ñaøn Keát quaû tìm kieám ññ a U a U ss User êê ne User gôûi ñaõ ne g rr yeâu caàu ñaêng g kyù ñ kkñ ya ya 5 õ ùùõ Login Baûng chæ muïc, baûng töø khoaù 2 Ñaêng kyù Ñaêng kyù User U U chöa ss ñaêngee kyù rr User Login 3 Phaân tích baøi ñöôïc gôûi 4 Tìm kieám 6 Xöû lyù yeâu caàu cuûa User ñaõ ñaêng kyù ññ Admin 7 aa gôûi Xöû lyù Admi ê yeâu A Admin Login yeâu caàu ê A n nn dd caàu cuûa Admin g m g m ii kk nn yy ùù Caùc chuû ñeà Döõ lieäu caùc baøi Danh saùch cuûa forum gôûi User 1 HìnhXem 12:caùc DFD caáp baøi ñaõ 0 ñöôïc göûi Caùc baøi vieát treân dieãn ñaøn 1 Saép xeáp baøi . theo tieâu ñeà, 1 thôøi gian, chuû ñeà... Caùc chuû ñeà cuûa dieãn ñaøn Hình 13: DFD caáp 1 cuûa phaàn xem caùc baøi ñaõ 2 ñöôïc göûi (1) Ñaêng kyù 2 tra Kieåm . cho 1 pheùp ñaâng kyù Danh saùch ngöôøi söû duïng Hình 14: DFD caáp 1 cuûa phaân ñaêng kyù (2) Xay dung dien dan tren web 20 Caùc baøi vieát treân dieãn ñaøn 3 Phaân. tích 2 caùc thoâng 3 Phaân tích baøi ñöôïc gôûi tin chuû ñeà; ngaøy thaùng gôûi, caáp baøi gôûi... 3 phaân tích . noäi dung 1 cuûa baøi gôûi Baûng chæ muïc, baûng töø khoaù Caùc chuû ñeà cuûa dieãn ñaøn Hình 15: DFD caáp 1 cuûa phaân tích baøi ñöôïc gôûi leân dieãn Baûng töø khoaù, baûng ñaøn (3) Caùc chuû ñeà cuûa dieãn ñaøn chæ muïc 4 Tìm kieám . theo noäi 1 dung 4 Tìm. kieám 2 theo chuû ñeà 4 Tìm kieám Caùc baøi vieát treân dieãn ñaøn 4 Tìm kieám . theo tieâu 3 ñeà Döõ lieäu caùc baøi gôûi Hình 16: DFD caáp 2 cuûa quaù trình tìm kieám (4) 5 Kieåm . tra cho pheùp 1 login 5 Login Danh saùch ngöôøi söû duïng Hình 17: DFD caáp 1 cuûa phaân Login (5) Caùc baøi vieát treân dieãn ñaøn Hình 18: DFD caáp 1 Danh saùch ngöôøi söû Caùc chuû ñeà cuûa Xöû lyù yeâu duïng dieãn ñaøn Ñaùnh daáu caàu cuûa User caùc baøi cuûa quaù xöû lyù caùc yeâu caàu ñaõöa ñaêng trình kyù 6.1thích. Xay dung dien dan tren web 21 Caùc chuû ñeà cuûa forum 7.1 Theâm chuû ñeà 7.2 Xoaù chuû ñeà 7.3 Theâm User 7 Xöû lyù yeâu caàu cuûa Admin 7.5 Xoaù caùc baøi ñaõ gôûi Döõ lieäu noäi dung Danh saùch User 7.4 Xoaù User 2. Döõ lieäubaøi thu gôûi thaäp ñöôïc a. Döõ lieäu Hìnhveà 19: baøi DFD göûi caáp 1 cuûa quaù trình xöû lyù yeâu Moãi baøi göûi bao goàm caùc thuoäc tính nhö sau: caàu cuûa Admin (7) - Maõ baøi göûi - Caáp cuûa baøi göûi - Maõ baøi cha (neáu laø baøi môùi tröôøng naøy coù giaù trò laø 0 , baøi traû lôøi tröôøng naøy chöùa maõ baøi cuûa baøi ñöôïc noù traû lôøi) - Thöù töï - Thuoäc chuû ñeà naøo - Tieâu ñeà cuûa baøi vieát - Hoï teân ngöôøi göûi - Ñòa chæ mail cuûa ngöôøi göûi - Ngaøy giôø göûi Xay dung dien dan tren web 22 - Noäi dung cuûa baøi göûi. b. Döõ lieäu veà ngöôøi söû duïng Moãi ngöôøi söû duïng khi ñaêng kyù seõ coù nhöõng thuoäc tính sau: - Maõ ngöôøi söû duïng - Teân truy nhaäp - Maät khaåu - Quyeàn truy caäp (Admin hay User) - Ñòa chæ Email c. Döõ lieäu veà chuû ñeà cuûa caùc baøi göûi Caùc chuû ñeà cuûa caùc baøi treân web forum coù caùc thuoäc tính sau: - Maõ chuû ñeà - Teân chuû ñeà 3. Caùc caáu truùc kieåu Döïa vaøo caùc döõ lieäu thu löôïm ñöôïc ta coù xaây döïng thaønh caùc caáu truùc kieåu. Töø caùc caáu truùc kieåu naøy ta coù theå xaây döïng ñöôïc caùc moâ hình bieåu dieãn heä BaøiGöûi thoáng thoâng tin cuûa web forum MaõBaøiGöûi a. Döõ lieäu baøi göûi: Caáp Döõ lieäu Maõ baøi göûi laø khoaù cuûa thöïc BaøiTröôùc theå BaøiGöûi vì noù cho pheùp chæ ñònh moät ThöùTöï baøi duy nhaát MaõChuûÑeà Tieâu Ñeà Caùc kieåu döõ lieäu khaùc ñeàu laø thuoäc NgöôøiGöûi tính cuûa thöïc theå BaøiGöûi vì coù caùc phuï Email thuoäc haøm giöõa khoaù laø MaõBaøiGöûi vaø NgaøyGiôøGöûi moãi thuoäc tính cuûa noù. Vaäy ta nhaän ñöôïc NoäiDung caáu truùc kieåu phieáu laø BAIGUI Vaäy moãi giaù trò cuûa khoaù MaõBaøiGöûi töông öùng vôùi moät vaø chæ moät giaù trò thuoäc tính khaùc cuûa thöïc theå BAIGUI b. Ngöôøi söû duïng: MaõNgöôøiSD laø khoaù cuûa thöïc theå NgöôøiSD NGUOISD, ñaây cuõng laø caáu truùc kieåu phieáu MaõNgöôøiSD vaø khoaù MaõNgöôøiSD cho pheùp chæ ñònh moät TeânTruyNhaäp Email ngöôøi söû duïng duy nhaát. Moãi moät giaù trò MaätKhaåu cuûa khoaù MaõNgöôøiSD chæ töông öùng vôùi moät vaø chæ moät giaù trò thuoäc tính khaùc QuyeànTruyCaä p cuûa thöïc theå NGUOISD. c. Chuû ñeà: MaõChuûÑeà laø khoaù cuûa thöïc theå chuû ChuûÑeà ñeà, thuoäc tính coøn laïi duy nhaát cuûa phieáu MaõChuûÑe à TeânChuûÑ eà Xay dung dien dan tren web 23 CHUDE laø ChuûÑeà (teân cuûa chuû ñeà). Moãi moät ChuûÑeà cho pheùp xaùc ñònh duy nhaát moät chuû ñeà. d. Döõ lieäu Töø khoaù: Töø khoaù coù nguoàn goác töø noäi dung cuûa TöøKhoa baøi göûi. Töø noäi dung cuûa baøi göûi ta taùch noäi ù dung thaønh caùc töø rieâng bieät, moãi töø laø moät MaõTöøKh töø khoaù. MaõTöøKhoaù laø khoaù cuûa thöïc theå oaù TUKHOA. Trong caáu truùc cuûa thöïc theå TUKHOA MaõTöøKhoaù töông öùng vôùi moät vaø chæ moät TöøKhoaù giaù trò thuoäc tính TöøKhoaù. 4. Quan heä giöõa caùc thöïc theå a. Quan heä giöõa BaøiGöûi vaø Töø khoaù Sau khi ngöôøi söû duïng göûi moät baøi baát kyø leân dieãn ñaøn, noäi dung cuûa baøi ngoaøi vieäc löu giöõ vaøo cô sôû döõ lieäu coøn ñöôïc taùch ra thaønh caùc töø, caùc töø naøy ñöôïc goïi laø caùc töø khoaù vaø cuõng ñöôïc löu tröõ. Vaø ñeå theå hieän moái quan heä giöõa caùc töø khoaù ta coù moät keát hôïp khoâng phaân caáp giöõa hai thöïc theå BAIGUI vaø TUKHOA. BaøiGöûi 1-n Thuoäc veà MaõBaøiGöûi Caáp MaõBaøiTröô ùc ThöùTöï MaõChuûÑe à Tieâu Ñeà NgöôøiGöûi Email NgaøyGiôøG b. Quan heä öûi giöõa CHUDE vaø BAIGUI NoäiDung 0-n TöøKhoaù MaõTöøKho aù TöøKhoaù Ñaây laø moät caáu truùc kieåu CHA_CON. Moãi chuû ñeà coù theå khoâng coù moät baøi naøo noùi veà chuû ñeà ñoù hoaëc cuõng coù theå coù nhieàu baøi noùi veà chuû ñeà naøy. Vaø moãi baøi chæ duy nhaát noùi veà moät chuû ñeà. ChuûÑe à MaõChuû Ñeà TeânChu ûÑeà 0_n 1_1 BaøiGöûi MaõBaøiGöûi Caáp MaõBaøiTröôù c ThöùTöï Tieâu Ñeà NgöôøiGöûi Email NgaøyGiôøGö ûi NoäiDung Xay dung dien dan tren web 24 c. Quan heä giöõa ngöôøi söû duïng vaø baøi göûi: Ñoái vôùi ngöôøi söû duïng coù ñaêng kyù moät teân truy nhaäp vaø moät maät khaåu treân heä thoáng, thì chöông trình cung caáp khaû naêng löu tröõ baát cöù moät baøi naøo ñoù maø ngöôøi duøng öa thích, hoaëc löu nhôù laïi ñeå laàn sau ñoïc caùc baøi naøy ñöôïc deã daøng vaø nhanh choùng. Ñeå theå hieän moái quan heä treân ta coù quan heä sau: BaøiGöûi MaõBaøiGöûi Caáp MaõBaøiTröô ùc ThöùTöï MaõChuûÑe à Tieâu Ñeà NgöôøiGöûi Email NgaøyGiôøG öûi NoäiDung ChuûÑ eà MaõChuû Ñeà TeânChuû Moâ hình Ñeà 0-n thöïc theå 0-n 1-1 GhiNhôùBaøi BaøiGöû i 1-1 MaõBaøiGö 1-n ûi Caáp keát MaõBaøiTrö hôïp: ôùc ThöùTöï Tieâu Ñeà NgöôøiGöû i Email 1-1 NgaøyGiôø Göûi NoäiDung Ghi nhôù baøi 0-n NgöôøiSD MaõNgöôøiS D Teânñaàyñu û NgöôøiSD MaõNgöôøiSD TeânTruyNhaä p MaätKhaåu QuyeànTruyC aäp TöøKhoaù Thuoäc veà 1-n MaõTöøKho aù TöøKhoaù MaätKhaåu Xay dung dien dan tren web 25 Moâ hình quan nieäm döõ lieäu ChuûÑeà MaõChuûÑeà BaøiGöûi 0-n 1-1 TeânChuûÑeà 1-1 ChæMuïc TöøKhoaù MaõTöøKho aù TöøKhoaù MaõBaøiGöû0-n i Caáp MaõBaøiTröô ùc ThöùTöï MaõChuûÑe à Tieâu Ñeà NgöôøiGöûi Email NgaøyGiôøG öûi 1-n NoäiDung 0-n 1-1 Ghinhôùbaøi 1-1 Maõ Maõbaøi MaõNgöôøiS D 1-1 0-n NgöôøiSD MaõNgöôøiSD TeânTruyNhaä p MaätKhaåu QuyeànTruyC aäp MaõChæM uïc MaõBaøiGö ûi MaõTöøKho aù Chuyeån ñoåi moâ hình quan nieäm döõ lieäu thaønh moâ hình logic döõ lieäu teäp: Baûng BaøiGöûi: Baûng naøy ñöôïc duøng ñeå löu tröõ caùc baøi ñöôïc göûi leân dieãn ñaøn Döõ lieäu Moâ taû kieåu döõ lieäu MaõBaøiGöû N i Caáp N MaõBaøiTrö ôùc ThöùTöï MaõChuûÑe à TieâuÑeà NgöôøiGöûi N N N M C50 Moâ taû a.1.3. Maõ (Soá thöù töï) cuûa baøi ñöôïc göûi. Duøng chöùa caáp cuûa baøI göûi. Chöùa MaõBaøiGöûi cuûa baøI maø noù traû lôøi. Chöùa maõ chuû ñeà cuûa baøi göûi ñoù Chöùa tieâu ñeà cuûa baøi göûi Teân cuûa ngöôøi göûi a.1.2. Xay dung dien dan tren web 26 Email C100 NgaøyGiôøG D öûi NoäiDung M Ñòa chæ Email cuûa ngöôøi göûi Ngaøy giôø luùc göûi Noäi dung cuûa baøi göûi Baûng ChæMuïc: Döõ lieäu MaõChæM uïc MaõBaøiG öûi MaõTöøKh oaù Moâ taû kieåu döõ lieäu N Moâ taû N N Baûng TöøKhoaù: Döõ lieäu MaõTöøKhoaù TöøKhoaù a.1.4. Moâ taû kieåu döõ lieäu N C30 Moâ taû Baûng NgöôøiSD: a.1.5. Döõ lieäu MaõNgöôøiSD TeânTruyNhaäp MaätKhaåu MaõQuyeànTruyN haäp Moâ taû kieåu döõ lieäu N C30 C30 N Moâ taû Baûng GhiNhôùBaøi: Döõ lieäu Maõ MaõNgöôøi SD MaõBaøiGö ûi Moâ taû kieåu döõ lieäu N N Moâ taû C30 CHÖÔNG 5 XAÂY DÖÏNG CHÖÔNG TRÌNH Chöông naøy trình baøy hai phaàn chính: Xay dung dien dan tren web 27 Phaàn 1: Phaân tích caùc chöùc naêng chung nhö thuaät toaùn quaûn lyù caùc baøi nhö theá naøo, traät töï caùch hieån thò thoâng tin veà caùc baøi leân web. Phaàn 2: Ñi saâu vaøo caùch vieát caùc trang theo yeâu caàu cuûa ngöôøi söû duïng: ví duï caùc trang ñaùp öùng yeâu caàu cuûa ngöôøi quaûn lyù, cuûa ngöôøi söû duïng I. QUAÛN LYÙ CAÙC BAØI GÖÛI LEÂN DIEÃN ÑAØN Taát caû caùc baøi vieát göûi leân dieãn ñaøn ñeàu coù ñaëc ñieåm chung gioáng nhau nhö sau: - Thuoäc veà moät chuû ñeà naøo ñoù - Coù theå laø caâu hoûi hoaëc laø caâu traû lôøi cho moät vaán ñeà naøo ñoù. Vaäy ñeå quaûn lyù caùc baøi vieát treân dieãn ñaøn ta phaûi bieát: - Baøi ñoù thuoäc chuû ñeà naøo - Phaûi phaân bieät ñöôïc ñaâu laø caâu hoûi ñaâu laø caâu traû lôøi - Neáu laø caâu traû lôøi thì phaûi bieát traû lôøi cho baøi naøo Ñeå giaûi quyeát caùc vaán ñeà treân ta ñöa ra caùc caùch giaûi quyeát sau: Coù nhieàu caùch quaûn lyù baøi khaùc nhau, trong phaàn naøy em xin ñöôïc trình baøy hai caùch toå chöùc quaûn lyù baøi, phaân tích öu nhöôïc ñieåm cuûa hai phöông phaùp, cuoái cuøng ruùt ra phöông phaùp noåi troäi hôn. Caùch 1: Caùch döõ lieäu cuûa baøi göûi ñöôïc löu tröõ trong baûng coù caáu truùc nhö sau: Teân tröôøng Maõbaøi Thöùtöï Kieåu Number Char(40) Chuûñeà Char(255) Dieãn giaûi Soá baøi vieát Thöù töï baøi vieát treân dieãn ñaøn Chuû ñeà baøi vieát Trong ñoù: Maõbaøi: töï ñoäng taêng leân 1 khi theâm 1 baøi vieát môùi Thöùtöï: ñaây laø chuoãi kyù töï goàm moät hoaëc nhieàu cuïm 4 chöõ soá, vaø soá cuïm töø cho bieát caáp cuûa baøi ñoù: Soá cuïm = 1 (caáp 1): ñaây laø moät baøi vieát môùi. Soá cuïm = n, n>1 (caáp n): ñaây laø baøi traû lôøi cho baøi caáp n-1 Caùch xaây döïng tröôøng Thöùtöï Neáu laø baøi vieát môùi: Thöùtöï = Maõbaøi Neáu laø baøi traû lôøi:Thöùtöï = Thöùtöï cuûa baøi traû lôøi + Maõbaøi Neáu maõ baøi khoâng ñuû boán chöõ soá thì theâm caùc chöõ soá 0 vaøo ñaàu cho ñuû boán chöõ soá. Xay dung dien dan tren web 28 Ví duï: Ta coù 4 baøi vieát ñöôïc göûi leân dieãn ñaøn vaø ñöôïc löu tröõ trong cô sôû döõ lieäu nhö sau: Maõbaøi 1 2 3 Thöùtöï 0001 00020001 000300020001 4 00040001 Tieâu ñeà Tieâu ñeà 1 Traûlôøi: Tieâu ñeà 1 Traûlôøi:Traûlôøi: Tieâu ñeà 1 Traûlôøi: Tieâu ñeà 1 Vôùi caùch löu tröõ nhö treân ta ñeã daøng nhaän ra ñöôïc qui luaät toå chöùc caùc baøi treân ñöôïc göûi leân dieãn ñaøn. Cuï theå: baøi soá 1 coù tröôøng Thöùtöï laø moät cuïm boán chöõ soá vaäy ñaây laø baøi caáp 1, baøi vieát soá 2 coù Thöùtöï laø moät chuoãi coù 2 cuïm boán chöõ soá, vaäy ñaây laø baøi caáp 2 ñoàng thôøi chuoãi kyù töï cuoái (tröø 4 kyù töï ñaàu) laø chuoãi Thöùtöï cuûa baøi 1 neân ñaây laø baøi traû lôøi cho baøi 1.... Tuy nhieân vôùi caùch quaûn lyù nhö treân, veà maët hình thöùc nhìn vaøo raát khoù hieåu, veà maët noäi dung caùch toå chöùc tröôøng noäi dung nhö vaäy laø toán keùm (nhö khi coù moät baøi caáp = 10 thì soá kyù töï cuûa tröôøng naøy seõ leân ñeán 4 x 10 = 40 kyù töï). Hay ñeå tìm moät baøi xem noù laø baøi con cuûa baøi naøo thì phaûi phaân tích moät chuoãi kyù töï khaù daøi sau ñoù laïi phaûi ñi so saùnh vôùi tröôøng thöù töï cuûa taát caû caùc baøi môùi tìm ñöôïc... Caùch 2 Ñeå deã hình dung caùch quaûn lyù caùc baøi vieát treân dieãn ñaøn ta ñöa ra ví duï sau: Giaû söû ta ñaõ coù caùc baøi göûi coù maõ baøi töø: 150 ñeán 157 trong ñoù coù caû caùc caâu hoûi vaø caâu traû lôøi. Khi tham gia vaøo dieãn ñaøn, muoán xem caùc baøi ñaõ göûi chuùng ta seõ thaáy xuaát hieän moät trang troâng gioáng nhö hình sau: Hình 20: Trang hieån thò caùc baøi vieát Xay dung dien dan tren web 29 Nhö ñaõ thaáy trong hình, moät baøi vieát ñöôïc hieån hieän leân trang web bao goàm caùc thoâng tin veà: tieâu ñeà cuûa baøi vieát, ngöôøi göûi, ngaøy giôø göûi. Tieâu ñeà ñöôïc hieån thò döôùi daïng moät sieâu lieân keát vaø khi ngöôøi söû duïng nhaép vaøo ñaây seõ xem ñöôïc noäi dung cuûa baøi vieát. Vaø caùc baøi vieát seõ ñöôïc löu tröõ trong cô sôû döõ lieäu nhö sau: Maõb aøi 150 151 152 153 154 155 156 157 Caápb aøi 1 1 2 2 3 4 1 2 Baøich a 0 0 151 151 152 154 0 156 Thöù töï 1 1 1 2 1 1 1 1 Tieâuñ eà ... ... ... ... ... ... ... ... Chuûñ eà ... ... ... ... ... ... ... ... Ngöôøig öi ... ... ... ... ... ... ... ... Noäidu ng ... ... ... ... ... ... ... ... ... ... ... Caáp cuûa baøi vieát Ñeå coù theå quaûn lyù ñöôïc baøi vieát göûi leân dieãn ñaøn thì moãi moät baøi ñöôïc göûi seõ ñöôïc gaùn cho moät maõ soá, nhöng ñeå coù theå quaûn lyù theo kieåu phaân caáp giöõa baøi cha, baøi con thì phaûi coù theâm moät tröôøng phaân baøi ra thaønh caùc caáp khaùc nhau. Caáp cuûa baøi phaûi tuaân theo qui taéc sau ñaây: - Baøi ñöôïc göûi laàn ñaàu tieân khoâng traû lôøi cho baøi naøo caû seõ laø caáp 1 - Caùc baøi traû lôøi cho baøi caáp 1 seõ coù caáp laø 2 - Baøi traû lôøi cho baøi caáp 2 seõ coù caáp laø 3... Ví duï: nhö trong hình treân caùc baøi coù daáu coäng phía tröôùc coù caáp laø 1, caùc baøi coøn laïi caáp cuûa baøi ñöôïc xaùc ñònh baèng caùc daáu muõi teân ôû phía tröôùc (coù 2 muõi teân seõ laø baøi caáp 2...) Löu tröõ maõ baøi cha Ñaây laø caùch ñi keøm vôùi caùch xaùc ñònh caáp baøi ñeå xem baøi naøo laø baøi cha, baøi naøo laø baøi con vaø baøi con ñoù thuoäc veà baøi cha naøo. Tröôøng baøi cha ñöôïc toå chöùc theo caùch: - Neáu laø baøi göûi ñaàu tieân, khoâng traû lôøi cho moät baøi naøo caû thì giaù trò cuûa tröôøng naøy baèng 0 - Neáu laø baøi traû lôøi thì giaù trò cuûa tröôøng naøy laø soá maõ baøi cuûa baøi cha (baøi maø noù traû lôøi). Ví duï: Nhìn vaøo trong baûng sau ta coù theå thaáy ñöôïc qui luaät toå chöùc tröôøng baøi cha nhö theá naøo. Baøi 150, 151, 156 laø caùc caâu hoûi, baøi ñaàu tieân. Baøi 152, 153 laø baøi traû lôøi cuûa baøi 151, 154 laø baøi traû lôøi cuûa baøi 152... Xay dung dien dan tren web 30 Caùch toå chöùc tröôøng thöù töï Ñeå giuùp cho vieäc xaùc ñònh thöù töï cuûa caùc baøi göûi leân dieãn ñaøn. Ñöôïc toå chöùc theo luaät sau: caâu hoûi (khoâng traû lôøi cho baøi naøo caû) coù thöù töï baèng 1. Caâu traû lôøi cho moät baøi theo luaät sau: - Neáu coù moät caâu traû lôøi thì thöù töï cuûa caâu traû lôøi baèng 1 - Neáu coù töø hai caâu traû lôøi cho moät baøi (hai caâu traû lôøi coù caáp baøi baèng nhau) thì baøi traû lôøi thöù nhaát cuõng coù giaù trò thöù töï baèng 1, baøi traû lôøi thöù hai seõ coù thöù töï baèng 2... Chuùng ta seõ thaáy ñöôïc taùc duïng cuûa tröôøng naøy moät caùch roõ reät laø khi in danh saùch caùc baøi theo qui luaät caây thö muïc. Hieån thò baøi theo qui luaät caây thö muïc Vôùi caùch quaûn lyù treân ta coù theå vieát nhöõng ñoaïn chöông trình cho pheùp hieån thò caùc baøi vieát theo luaät hieån thò cuûa moät caây thö muïc, töùc laø baøi con hieån thò ngay sau döôùi baøi cha. Hình veõ sau hieån thò taát caû caùc baøi trong baûng treân. Maõ baøi Caáp baøi 12345 Baøi cha Thöù töï 15615 1012156130141511515216154171512801 71511 52154 15515 3150 Trong hình treân, ñaàu tieân baøi caáp 1 seõ ñöôïc hieån thò ñaàu tieân, sau ñoù laø caùc caáp lôùn hôn nhöng phaûi laø baøi con cuûa baøi ñaõ hieån thò. Ví duï baøi 156 coù moät baøi con laø baøi 157. Töông töï cho caùc baøi khaùc. Trong caùc hieån thò treân ta thaáy baøi baøi 151 coù taát caû 4 baøi traû lôøi, trong ñoù coù hai baøi traû lôøi cuøng caáp laø 152 vaø 153, nhö vaäy tröôøng thöù töï cuûa chuùng khaùc nhau ñeå coù theå in ra ñöôïc ñuùng traät töï (in ngang haøng vôùi baøi 152). Vaäy ta coù theå thaáy caùch quaûn lyù baøi thöù hai hieäu quaû vaø roõ raøng hôn nhieàu so vôùi caùch quaûn lyù thöù nhaát. Do vaäy trong chöông trình caùch thöù hai seõ ñöôïc choïn ñeå quaûn lyù caùc baøi vieát treân dieãn ñaøn. Treân laø phaàn toùm taét caùch quaûn lyù vaø caùch hieån thò caùc baøi nhö theá naøo treân trang web, sau ñaây chuùng ta ñi saâu vaøo caùch xaây döïng töøng trang web. Xaây döïng caùc trang web döïa vaøo yeâu caàu cuûa ngöôøi söû duïng II. XÖÛ LYÙ YEÂU CAÀU CUÛA NGÖÔØI CHÖA ÑAÊNG KYÙ Xay dung dien dan tren web 31 Xin ñöôïc nhaéc laïi ngöôøi söû duïng chöa ñaêng kyù coù theå coù caùc yeâu caàu sau: - Xem baøi - Göûi moät baøi môùi - Traû lôøi moät baøi ñaõ coù - Saép xeáp caùc baøi ñaõ hieån thò treân trang web theo nhieàu caùch: saép xeáp theo thôøi gian, saép xeáp theo thöù töï abc cuûa tieâu ñeà, saép xeáp theo thöù töï abc cuûa ngöôøi göûi. Hieån thò baøi theo moät thaùng naøo ñoù tuyø yù. - Tìm kieám Trang web phaûi cho pheùp ngöôøi söû duïng thöïc hieän ñöôïc taát caû caùc yeâu caàu treân. Ñaàu tieân ta duøng hình veõ cuûa trang web ñeå minh hoaï, sau ñoù seõ ñi saâu vaøo thuaät toaùn ñöôïc xaây döïng nhö theá naøo ñeå thöïc hieän caùc yeâu caàu ñoù. Saép xeáp baøi theo thaùng Tìm kieám Danh saùch caùc baøi Gôûi baøi môùi Choïn caùch saép xeáp 1. Xem baøi Hình 21: Caùc chöùc naêng chính treân Ñeå xem ñöôïc noäi dung moät baøi caàn phaûi bieát baøi ñoù trang web thuoäc chuû ñeà naøo vaø coù maõ soá baèng bao nhieâu. Do vaäy, khi moät ngöôøi tham gia vaøo dieãn ñaøn thì trang ñaàu tieân maø ngöôøi söû duïng nhìn thaáy laø moät danh saùch caùc chuû ñeà cuûa dieãn ñaøn. Töø ñaây ngöôøi söû duïng baét ñaàu choïn chuû ñeà maø mình quan taâm. Sau khi choïn chuû ñeà xong neáu coù baøi thuoäc chuû ñeà ñoù thì danh saùch baøi seõ ñöôïc hieån thò, trong hình treân Xay dung dien dan tren web 32 laø danh saùch baøi thuoäc chuû ñeà “Laäp trình”. Vaø soá baøi hieån thò chæ laø caùc caùc baøi göûi trong thaùng, ví duï: hieän taïi ñang laø thaùng 5 thì caùc baøi trong thaùng 5 ñöôïc hieån thò leân. Thuaät toaùn hieån thò danh saùch caùc baøi theo chuû ñeà: Ñaàu vaøo: chuû ñeà caàn hieån thò Ñaàu ra: Neáu coù toàn taïi chuû ñeà: danh saùch caùc baøi theo chuû ñeà ñaõ choïn Neáu khoâng toàn taïi chuû ñeà: hieån thò thoâng baùo khoâng tìm thaáy Hình 22: Chuû ñeà cuûa dieãn Ñeå coù ñöôïc ñaàu vaøo ta duøng caùc truyeàn bieán theo lieân ñaøn keát, ví duï: neáu ngöôøi söû duïng caàn hieån thò baøi theo chuû ñeà laø “Laäp trình” töông öùng vôùi chuû ñeà laäp trình seõ coù moät maõ cho chuû ñeà ñoù (caùc giaù trò naøy naèm trong baûng “Chuû ñeà”), chuû ñeà laäp trình coù maõ laø “10” vaäy ta truyeàn bieán baèng nhö sau: sdachbai.asp?chude=10 trang dsachbai.asp seõ nhaän ñöôïc bieán chuû ñeà naøy baèng caùch duøng ñoái töôïng Request.QueryString(“chude”), sau ñoù duøng bieán naøy ñeå hieån thò caùc baøi chuû ñeà = 10 Thuaät toaùn hieån thò baøi: Choïn nhöõng baøi coù caáp = 1, theo thöù töï thôøi gian, theo chuû ñeà coù tröôùc Löu taát caû caùc baøi caáp 1 vaøo trong moät maûng coù teân mangCap1 Choïn nhöõng baøi coù caáp > 2 Löu taát caû caùc baøi caáp 2 vaøo maûng coù teân mangCap2 Hieån thò baøi: IF soá baøi caáp 1 > 0 thì For i = 0 to soá phaàn töû cuûa mangCap1 Hieån thò baøi caáp 1 Kieåm tra xem baøi naøy coù baøi traû lôøi hay khoâng Neáu coù: hieån thò baøi con ELSE Thoâng baùo coù baøimoät baøi caáp 1: Thuaät toaùn tìm[Khoâng baøi con cuûa - Ñaàu vaøo: maõ baøi cuûa baøi caáp 1 caàn tìm baøi con - Ñaàu ra: taát caû caùc baøi con (bao goàm taát caû baøi con cuûa baøiThuû con) tuïc tìmbaicon (mabaicha) - ÑeåFor coùi = theå thò ñöôïc caùc baøi con, ta duøng 0 tohieån soá phaàn töû taát cuûacaû maûng moät thuû tuïc ñeä qui. mangCap2 If baøi con coù BaøiCha = maõbaøicha thì In baøi con Goïi ñeä qui timbaicon(mabaicon) {maõ baøi con vöøa tìm thaáy} Neáu tìm thaáy: In ra End timbaicon Xay dung dien dan tren web 33 2. Xem noäi dung moät baøi Ñeå xem noäi dung moät baøi, ngöôøi söû duïng nhaép vaøo lieân keát cuûa baøi ñöôïc hieån thò, ví duï nhaép vaøo lieân keát “Con troû trong C” seõ ñoïc ñöôïc noäi dung nhö hình beân: Ñeå coù theå hieån thò ñöôïc noäi dung cuûa baøi vieát, moãi lieân keát cuûa moãi baøi coù chöùa bieán soá laø maõ cuûa baøi ñoù, ví duï baøi “Con troû Hình 23: Xem noäi dung trong C” coù maõ baøi laø 156 thì lieân baøi göûi keát seõ coù daïng: noidungbai.asp? mabai=156. Sau ñoù bieán naøy seõ ñöôïc truyeàn sang trang ñoïc noäi dung vôùi maõ baøi baèng 156. Trang noidungbai duøng Request.QueryString(“mabai”) ñeå laáy bieán maõ baøi. Sau khi xem xong, neáu bieát traû lôøi ngöôøi duøng coù theå baám vaøo nuùt, “Traû lôøi” ñeå traû lôøi cho baøi ñoù. 3. Gôûi baøi (baøi môùi vaø baøi traû lôøi) Khi ngöôøi duøng muoán göûi moät baøi môùi leân dieãn ñaøn, ngöôøi duøng nhaép vaøo nuùt göûi baøi Coù hai hình thöùc göûi baøi ñoù laø göûi baøi môùi vaø göûi baøi traû lôøi. Neáu göûi baøi môùi thì caùc tham soá caàn thieát phaûi coù laø: - Teân ngöôøi göûi - E-mail - Tieâu ñeà - Noäi dung baøi göûi Neáu laø baøi traû lôøi thì caùc tham soá caàn thieát laø: - Maõ cuûa baøi ñöôïc traû lôøi - Teân ngöôøi göûi - E-mail - Tieâu ñeà Hình 24: Traû lôøi moät baøi Xay dung dien dan tren web 34 - Noäi dung baøi göûi Thuaät toaùn nhö sau: Kieåm tra tính chính xaùc cuûa caùc thoâng tin {email, ngöôøi göûi, tieâu ñeà ñaõ nhaäp ñuû chöa} Kieåm tra coù toàn taïi maõ baøi cuûa caâu hoûi hay khoâng Neáu coù { ñaây laø baøi traû lôøi } Döïa vaøo maõ baøi cuûa caâu hoûi xaùc ñònh: Caáp cuûa caâu hoûi Thöù töï cuûa caâu hoûi Gaùn caùc bieán cho baøi con: Caáp baøi = caáp baøi cha + 1 Baøi cha = maõ baøi cha ELSE {ñaây laø baøi môùi} Caáp baøi = 1 4. Ñaêng kyù trôû thaønh thaønh Baøi cha = 1 vieân cuûa Forum Thöùtham töï = 1gia vaøo dieãn ñaøn, neáu ñaêng kyù Khi ngöôøi söû duïng moät teân truy nhaäp treân heä thoáng thì ngöôøi söû duïng ngoaøi caùc quyeàn gioáng nhö moät ngöôøi söû duïng bình thöôøng (ngöôøi söû duïng chöa ñaêng kyù) thì coøn coù khaû naêng ghi nhôù caùc baøi vieát treân dieãn ñaøn maø ngöôøi ñoù caûm thaáy ñaùng ñeå ñoïc, ñaùng ñeå nhôù. Ñeán luùc naøo ñoù ngöôøi söû duïng caàn ñoïc laïi noäi dung caùc baøi naøy treân dieãn ñaøn thì khoâng phaûi tìm caùc baøi ñoù maø chæ caàn login vaøo heä thoáng vaø yeâu caàu ñöôïc xem nhöõng baøi maø hoï ñaõ ñaùnh daáu, yeâu caàu naøy seõ ñöôïc chöông trình ñaùp öùng ngay. Vieäc ñaêng kyù moät teân truy nhaäp vaø moät maät khaåu khoâng naèm ngoaøi muïc ñích laø duøng teân truy nhaäp ñeå laøm cô sôû phaân bieät baøi ñöôïc ghi nhôù laø do ai thöïc hieän vaø giuùp cho chöông trình coù theå phaân bieät ñöôïc baøi naøo laø do ngöôøi naøo ghi nhôù. Khi ñaêng kyù yeâu caàu ngöôøi ñaêng kyù phaûi ñieàn ñaày caùc thoâng tin nhö treân hình sau: Hình 25: Ñaêng kyù söû duïng Xay dung dien dan tren web 35 Sau khi nhaäp ñaày ñuû caùc thoâng tin treân, ngöôøi söû duïng baám nuùt “Ñaêng kyù”, chöông trình thöïc hieän thuû tuïc ñaêng kyù. Thuaät toaùn ñaêng kyù nhö sau: Nhaän thoâng tin veà Teânñaàyñuû, Teântruynhaäp, MaätKhaåu, E-mail Kieåm tra phaùt hieän loãi (thieáu thoâng tin, nhaäp sai yeâu caàu) IF coù loãi then baùo loãi Quay laïi trang nhaäp ELSE Truy xuaát cô sôû döõ lieäu chöùa döõ lieäu ngöôøi duøng cuûa heä thoáng If tìm thaáy moät Teântruynhaäp gioáng teân vöøa ñaêng kyù THEN Baùo loãi Quay laïi trang nhaäp Else {thoâng tin ñaêng kyù hôïp leä} Nhaäp taát caû caùc thoâng tin vöøa ñaêng kyù vaøo CSDL END IF Vaäy neáu ñaêng kyù thaønh coâng thì ngöôøi söû duïng ñoù töø ñaáy trôû veà sau coù theå söû duïng teân truy nhaäp vaø maät khaåu vöøa ñaêng kyù ñeå Login vaøo heä thoáng. 5. Tìm kieám: ÖÙng duïng cho pheùp ngöôøi söû duïng tìm kieám thoâng tin veà baát cöù moät baøi vieát naøo ñoù treân dieãn ñaøn theo nhöõng löïa choïn: tìm kieám theo chuû ñeà cuûa baøi göûi, tìm kieám theo tieâu ñeà cuûa baøi göûi, tìm kieám theo noäi dung baøi göûi. a. Tìm kieám theo chuû ñeà Ñeå tìm kieám theo chuû ñeà, ngöôøi söû duïng goõ moät chuoãi kyù töï baát kyø thuoäc chuû ñeà ñoù, sau ñoù baám nuùt “Search”, neáu coù chuû ñeà naøo coù chöùa chuoãi kyù töï cuûa ngöôøi söû duïng vöøa nhaäp thì seõ coù keát quaû traû veà nhö hình 27 Hình 26: Tìm kieám theo chuû ñeà Xay dung dien dan tren web 36 Hình 27: Keát quaû tìm kieám Thuaät toaùn tìm kieám theo chuû ñeà: theo chuû ñeà Ta duøng caâu leänh SQL sau ñeå thöïc hieän vieäc tìm kieám: SQLQuery = "Select '%"&chuoicantim&"%'; * from chude where chude.chude like Trong ñoù bieán “chuoicantim” laø bieán ñöôïc laây töø oâ nhaäp chuoãi caàn tìm cuûa trang web tìm kieám. b. Tìm kieám theo noäi dung: Xaây döïng baûng chæ muïc phuïc vuï cho vieäc tìm kieám Ñeå xaây döïng baûng chæ muïc ñaàu tieân ta phaûi coù moät baûng töø khoaù chöùa caùc töø khoaù cuûa baøi vieát. Töø khoaù coù ñöôïc laø do noäi dung cuûa baøi vieát ñöôïc taùch thaønh caùc töø, sau ñoù cheøn vaøo baûng töø khoaù theo luaät sau: Baûng töø khoaù laø moät baûng chöùa caùc töø maø trong ñoù moãi töø chæ xuaát hieän moät laàn. Ñeå coù theå xaây döïng ñöôïc baûng töø khoaù ñaàu tieân phaûi coù ñöôïc noäi dung cuûa baøi vieát. Ñaàu vaøo: Noäi dung cuûa baøi vieát Ñaàu ra: Caùc töø khoaù Qui trình thöïc hieän xaây döïng moät baûng töø khoaù coù theå toùm taét nhö sau: - Ñaàu tieân ta taùch noäi dung cuûa baøi vieát thaønh caùc töø khoaù - Ñöa taát caû caùc töø khoaù vöøa taùch ñöôïc vaøo trong moät baûng taïm Xay dung dien dan tren web 37 - Duøng ngoân ngöõ truy vaán döõ lieäu ñeå caäp nhaät caùc töø khoaù trong baûng taïm vaøo trong baûng töø khoaù chính theo nguyeân taéc: khoâng theâm vaøo baûng chính nhöõng töø maø baûng chính ñaõ coù. Ví duï: Ta coù moät baøi göûi coù caùc tham soá sau: Maõbaøigöûi = 100 Noäidung: Töï hoïc Visual-Basic 6 trong 6 ngaøy Sau khi taùch ra löu vaøo trong baûng taïm nhö sau: Maõba øigöûi 100 100 100 100 100 100 100 100 Töø khoaù Töï hoïc Visual Basic 6 Trong 6 Ngaøy Ñöa töø khoaù trong baûng taïm vaøo baûng chính: Ñöa caùc töø khoaù vaøo trong baûng töø khoaù theo nguyeân taéc, töø khoaù naøo ñaõ coù thì khoâng theâm vaøo, ngöôïc laïi töø chöa coù thì theâm vaøo cuoái baûng.Ta duøng ngoân ngöõ truy vaán döõ lieäu ñeå thöïc hieän ñieàu naøy sqlQuery = "INSERT INTO TuKhoa ([tukhoa])SELECT DISTINCT TuKhoaTam.tukhoa FROM TuKhoaTam LEFT JOIN TuKhoa ON TuKhoaTam.tukhoa=TuKhoa.tukhoa WHERE (((TuKhoa.tukhoa) is null));" Sau khi thöïc hieän caâu leänh sql treân baûng töø khoaù seõ theâm vaøo nhöõng töø chöa coù. Ví duï baûng töø khoaù tröôùc ñaõ coù töø: Visual, hoïc, sau khi theâm caùc töø khoaù cuûa baøi coù maõ baøi göûi laø 100 vaøo thì nhö sau: Maõtöøkh oaù 1 2 3 4 5 6 7 Töøkhoaù Visual Hoïc Töï Basic Trong 6 Ngaøy Xay dung dien dan tren web 38 Thuû tuïc taùch noäi dung cuûa baøi göûi thaønh caùc töø khoaù vaø ñöa caùc töø khoaù naøy vaøo baûng taïm: sub AddKeyWordtoTempTable(theString, IDMsg) delim_ = ",.?/<>""!#$%^&*()-_=+\|;:" On error resume next delim = delim_ & chr(13) & chr(10)& chr(32) sql= "Delete * from TuKhoaTam;" Set Conn = Session("DBConn") Conn.Execute(sql) str = trim(theString) length = len(str) if length = 0 then exit sub start = 1 for i = 1 to length ch = mid(str, i, 1) if InStr(delim, ch) > 0 then KeyWord = trim(mid(str, start, i - start)) if KeyWord <> "" and not Isnull(KeyWord) then Set Cn = Session("Connect") sqlNew = "INSERT INTO TuKhoaTam ( ma, tukhoa )SELECT "&IDMsg&", '"&KeyWord&"';" Cn.Execute(sqlNew) end if start = i + 1 end if next if start < i then KeyWord = Trim(Mid(str, start, i-start)) if KeyWord <> "" and not IsNull(KeyWord) then Set Conn = Session("Connect") sqlNew = "INSERT INTO TuKhoaTam ( ma, tukhoa)SELECT "&IDMsg&", '"&KeyWord&"';" Conn.Execute(sqlNew) end if end if end sub Taïo baûng chæ muïc: Xay dung dien dan tren web 39 Ñeå coù theå tìm kieám ñöôïc baøi vieát theo tieâu ñeà vaø theo noäi dung, chöông trình xaây döïng caùc baûng chæ muïc ñeå tìm kieám cuï theå nhö sau: Sau khi ñaõ coù ñöôïc baûng töø khoaù taïm vaø baûng töø khoaù ta tieáp tuïc xaây döïng baûng chæ muïc. Baûng töø khoaù taïm ñöôïc duøng ñeå laáy caùc töø khoaù cuûa moät baøi môùi ñöôïc göûi vaø soá maõ baøi cuûa baøi göûi ñoù keát hôïp vôùi baûng töø khoaù moãi töø khoaù seõ öùng vôùi moät maõ töø khoaù. Vaäy ta ñaõ coù ñöôïc 2 giaù trò laø maõbaøigöûi vaø maõtöøkhoaù ñeå cheøn vaøo baûng chæ muïc. Teân tröôøng Maõbaøigöûi Maõtöøkhoaù Kieåu döõ lieäu Number Number Giaûi thích Ví duï: Baûng sau ñaây laø ví duï cho caùc töø khoaù cuûa baøi coù maõ 100, tröôøng maõ töø khoaù seõ ñöôïc ñoái chieáu vôùi baûng töø khoaù. Giaû söû töø Visual trong baøi soá 98, töø hoïc coù maõ baøi soá 99 Maõbaøi göûi 98 99 100 100 100 100 100 100 100 100 Maõtöø khoaù 1 2 3 2 1 4 6 5 6 7 Caâu leänh sql duøng ñeå xaây döïng baûng chæ muïc: sqlQuery = "INSERT INTO ChiMuc ([mabai], [matukhoa] )SELECT DISTINCT TuKhoaTam.ma, TuKhoa.matukhoa FROM TuKhoaTam LEFT JOIN TuKhoa ON TuKhoaTam.tukhoa=TuKhoa.tukhoa;" Vaäy ta ñaõ coù ñöôïc baûng chæ muïc Tìm kieám nhö theá naøo? Ñeå tìm kieám ñöôïc moät baøi naøo ñoù theo noäi dung ta caàn phaûi keát hôïp ba baûng “BaøiGöûi” baûng “TöøKhoaù” vaø baûng “ChæMuïc” theo quan heä nhö hình sau: Hình 28: Quan heä giöõa baûng “Baøi Göûi”, “Chæ Muïc”, “TöøKhoaù “ Xay dung dien dan tren web sau: 40 Vôùi söï keát hôïp nhö treân ta coù theå coù caùch tìm kieám nhö Ví duï ngöôøi söû duïng caàn tìm kieám moät baøi coù chöõ “Java” thì thöïc hieän query sau: Hình 29: ñeå tìmtöø tìm kieám töø trang Tuy nhieân trong trang tìmDuøng kieámSQL ta nhaän kieám web, sau khi nhaän xong ta phaûi ñöa töø naøy vaøo trong chuoãi query ñeå tìm ra ñöôïc baøi caàn tìm. Trong caâu truy vaán sau, bieán chuoicantim chính la bieán ñöôïc laáy töø trang web SQLQuery = "SELECT BaiGui.mabai, BaiGui.tieude, BaiGui.nguoigui, BaiGui.email, BaiGui.thoigian, BaiGui.capbai, BaiGui.baicha, BaiGui.thutu, TuKhoa.TuKhoa FROM TuKhoa INNER JOIN (ChiMuc INNER JOIN BaiGui ON ChiMuc.mabai = BaiGui.mabai) ON TuKhoa.matukhoa = ChiMuc.matukhoa WHERE (((TuKhoa.TuKhoa)='"&chuoicantim&"'));" Sau khi thöïc hieän query neáu coù baøi ñöôïc tìm thaáy ta seõ cho xuaát leân trang web coù hình nhö sau: Xay dung dien dan tren web 41 Hình 30: Keát quaû tìm kieám theo noäi dung c.Tìm kieám theo tieâu ñeà Caùc tieâu ñeà cuûa baøi göûi sau khi ñöôïc göûi leân dieãn ñaøn cuõng ñöôïc taùch ra thaønh caùc töø khoaù vaø cuõng ñöôïc löu tröõ trong caùc baûng töø khoaù vaø baûng chæ muïc daønh rieâng cho töø khoaù. Caùch xaây döïng caùc baûng chæ muïc, xaây döïng baûng töø khoùa vaø caùch thöùc xaây döïng thuaät toaùn tìm kieám hoaøn toaøn töông töï nhö caùch xaây döïng thuaät toaùn tìm kieám thao noäi dung. Saép xeáp caùc baøi theo nhöõng löïa choïn khaùc nhau Coù nhieàu löïa choïn saép xeáp cho pheùp löïa choïn caùc caùch phuø hôïp vôùi yeâu caàu cuûa ngöôøi söû duïng. Moãi moät caùch saép xeáp khaùc nhau chaúng qua xuaát ra maøn hình danh saùch caùc baøi theo caùc caùch khaùc nhau. Do vaäy, trong chöông trình seõ coù nhieàu thuû tuïc xuaát caùc baøi göûi ra maøn hình treân cuøng moät trang, khi ngöôøi söû duïng choïn moät trong caùc caùch saép xeáp thì trang web naøy seõ ñöôïc chaïy laïi vaø coù caùch xuaát hieän baøi vieát theo thuû tuïc khaùc. Khi coù moät taùc ñoäng töø ngöôøi duøng, chöông trình seõ xuaát ra moät bieán “sapxep” ñi keøm vôùi ñòa chæ cuûa trang hieån thò baøi select name="list" onchange="window.open(this.options[this.selectedIndex].value,'_top'); list.options[0].selected=true" style="FONT-FAMILY: .VNTime; FONTSIZE: 10pt">