Đề tài Chương trình xây dựng diễn đàn trên mạng

Tài liệu Đề tài Chương trình xây dựng diễn đàn trên mạng: Chương 1 ĐẶT VẤN ĐỀ I. GIỚI THIỆU CHUNG Nếu ai đã từng sử dụng Internet chắc sẽ không ít lần nghe hoặc sử dụng dịch vụ nhóm thảo luận trên Internet (NewsGroup), đây là dịch vụ khá phổ biến hiện nay. Khi ta gặp một vấn đề thắc mắc, hoặc đang tìm kiếm một thông tin gì đó, thì NewsGroup sẽ là người trợ giúp đắc lực cho chúng ta. Dịch vụ này cho phép người dùng gửi lên mạng Internet những câu hỏi hoặc những thắc mắc của mình, sau đó nếu một người nào đó, ở đâu đó trên thế giới cũng tham gia vào nhóm thảo luận đó nếu họ đọc được được mẩu tin của chúng ta và biết về thông tin về vấn đề đó họ sẽ trả lời cho ta và ngược lại ta cũng có thể trở thành một người trả lời. Thật là thú vị khi được mọi người trên toàn cầu giúp ta giải quyết một vấn đề. Ngày nay các NewsGroup thường được tích hợp luôn trên web nên tạo điều kiện thuận lợi hơn cho người sử...

doc48 trang | Chia sẻ: hunglv | Lượt xem: 962 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Chương trình xây dựng diễn đàn trên mạng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
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... Hình 1: Trang web noåi tieáng veà dieãn ñaøn (deja.com) Taùc duïng lôùn nhaát cuûa Dieãn ñaøn treân web laø moïi ngöôøi khi tham gia vaøo maïng coù theå ñaët ra moät vaán ñeà gì ñoù theo 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. 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ø 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. À Maùy chuû : Maùy con CSDL ODBC Internet Intranet Hình 2: Yeâu caàu moâi tröôøng laøm vieäc cuûa öùng duïng 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øo ta xem hình 2 Theo nhö hình veõ treân, ngöôøi söû duïng coù thoâng qua moâi 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. 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öû 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 CLIENT SERVER REQUEST OBJECT Cookies Form QueryString ServerVariables ClientCertificate RESPONSE OBJECT Cookies (properties) (methods) SERVER OBJECT (methods) APPLICATION OBJECT (methods) (properties) SESSION OBJECT (methods) (properties) Hình 3: Caùc ñoái töôïng ñöôïc xaây döïng saün 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. Trong ñoù: Session 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. Application 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 Request 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 Response 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 Server cung caáp phöông tieän truy caäp ñeán nhöõng phöông 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 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 ñ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). Cho pheùp taïo ra caùc trang html, asp... Hình 4: Choïn löïa caùc kieåu khaùc nhau ñeå taïo trang web 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 trang ASP. Hieån thò taát caû caùc thuoäc tính caùc phöông thöùc cuûa moät ñoái töôïng asp Hình 5: Trình soaïn thaûo thoâng minh cho pheùp laäp trình thuaän lôïi Caùc coâng cuï hoã trôï cho laäp trình caùc trang web Cho pheùp gôõ roái chöông trình Taïo ra 1 Project ñeå chöùa taát caû caùc file trong web site 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ï... 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 - 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 8: Danh saùch caùc baøi ñaõ ñaêng Hình 7: Caùc chuû ñeà cuûa dieãn ®µ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 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 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ù Ñoái vôùi ngöôøi quaûn lyù, ngoaøi caùc hoaït ñoäng nhö moät ngöôøi söû duïng bình thöôøng coøn coù caùc khaû naêng sau: - Quaûn lyù ngöôøi söû duïng: - Xoaù ngöôøi söû duïng: xoaù moät ngöôøi söû duïng bình thöôøng ra khoûi heä thoáng - Taïo ngöôøi söû duïng môùi - Xoaù caùc baøi treân dieãn ñaøn: Ñaây laø moät bieän phaùp duøng ñeå quaûn lyù noäi dung cuûa caùc baøi vieát gôûi leân dieãn ñaøn - Quaûn lyù caùc chuû ñeà cuûa dieãn ñaøn: - Xoaù moät chuû ñeà baát kyø - Theâm vaøo moät chuû ñeà môùi SÔ ÑOÀ QUI TRÌNH HOAÏT ÑOÄNG CUÛA CAÙC TRANG TRONG ÖÙNG DUÏNG WEB FORUM Xem noäi dung 1 baøi Göûi baøi môùi Veà trang hieån thò Quay veà trang hieån thò Trang Login Trang ñaêng kyù Thaønh coâng Thaát baïi Danh saùch baøi ghi nhôù Ghi nhôù baøi Xem noäi dung 1 baøi Xem, göûi baøi Tìm kieám Ñaêng kyù Login Danh saùch baøi Theâm chuû ñeà Xoaù chuû ñeà Danh saùch chuû ñeà Xoaù baøi Danh saùch User Xoaù User Theâm User  ‚ ƒ „  ‚ User Admin Hieån thò caùc baøi Noäi dung baøi Soaïn vaø göûi baøi Trang nhaäp ND caàn tìm kieám Hieån thò keát quaû tìm kieám laø danh saùch caùc baøi göûi  ‚ Quaù trình tìm kieám bµi ƒ Hoaït ñoäng cuûa User ñaêng kyù „ Caùc chöùc naêng cuûa ngöôøi quaûn lyù Quaù trình xem, göûi vaø traû lôøi baøi Hình 11: Qui trình hoaït ñoäng cuûa caùc trang web 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: 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 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 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... II. PHAÂN TÍCH VAØ THIEÁT KEÁ 1. Sô ñoà doøng döõ lieäu DFD User Chöa ñaêng kyù Gôûi baøi leân dieãn ñaøn Admin gôûi yeâu caàu Yeâu caàu tìm kieám caùc thoâng tin treân dieãn ñaøn Yeâu caàu xem caùc baøi treân dieãn ñaøn Caùc baøi vieát treân dieãn ñaøn Keát quaû tìm kieám Caùc trang Web Admin Login Xem caùc baøi ñaõ ñöôïc gôûi 1 Phaân tích baøi ñöôïc gôûi 3 Tìm kieám 4 Xöû lyù yeâu caàu cuûa Admin 7 Login 5 Admin User ñaõ ñaêng kyù Xöû lyù yeâu caàu cuûa User ñaõ ñaêng kyù 6 User Login User gôûi yeâu caàu Ñaêng kyù 2 Ñaêng kyù Baûng chæ muïc, baûng töø khoaù Döõ lieäu caùc baøi gôûi Danh saùch User Caùc chuû ñeà cuûa forum User chöa ñaêng kyù User ñaõ ñaêng kyù Admin Hình 12: DFD caáp 0 Hình 13: DFD caáp 1 cuûa phaàn xem caùc baøi ñaõ ñöôïc göûi (1) Xem caùc baøi ñaõ ñöôïc göûi 1 Caùc baøi vieát treân dieãn ñaøn Caùc chuû ñeà cuûa dieãn ñaøn Saép xeáp baøi theo tieâu ñeà, thôøi gian, chuû ñeà... 1.1 Hình 14: DFD caáp 1 cuûa phaân ñaêng kyù (2) Ñaêng kyù 2 Danh saùch ngöôøi söû duïng Kieåm tra cho pheùp ñaâng kyù 2.1 Hình 15: DFD caáp 1 cuûa phaân tích baøi ñöôïc gôûi leân dieãn ñaøn (3) Phaân tích baøi ñöôïc gôûi 3 Caùc baøi vieát treân dieãn ñaøn Caùc chuû ñeà cuûa dieãn ñaøn Baûng chæ muïc, baûng töø khoaù phaân tích noäi dung cuûa baøi gôûi 3.1 Phaân tích caùc thoâng tin chuû ñeà; ngaøy thaùng gôûi, caáp baøi gôûi... 3.2 Hình 16: DFD caáp 2 cuûa quaù trình tìm kieám (4) Tìm kieám 4 Tìm kieám theo noäi dung 4.1 Tìm kieám theo chuû ñeà 4.2 Tìm kieám theo tieâu ñeà 4.3 Caùc baøi vieát treân dieãn ñaøn Caùc chuû ñeà cuûa dieãn ñaøn Baûng töø khoaù, baûng chæ muïc Döõ lieäu caùc baøi gôûi Hình 17: DFD caáp 1 cuûa phaân Login (5) Login 5 Danh saùch ngöôøi söû duïng Kieåm tra cho pheùp login 5.1 Hình 18: DFD caáp 1 cuûa quaù trình xöû lyù caùc yeâu caàu cuûa User ñaõ ñaêng kyù (6) Danh saùch ngöôøi söû duïng Caùc chuû ñeà cuûa dieãn ñaøn Caùc baøi vieát treân dieãn ñaøn 6.1 Ñaùnh daáu caùc baøi öa thích. 6 Xöû lyù yeâu caàu cuûa User ñaõ ñaêng kyù Hình 19: DFD caáp 1 cuûa quaù trình xöû lyù yeâu caàu cuûa Admin (7) Xöû lyù yeâu caàu cuûa Admin 7 Theâm chuû ñeà 7.1 Xoaù caùc baøi ñaõ gôûi 7.5 Theâm User 7.3 Caùc chuû ñeà cuûa forum Döõ lieäu noäi dung baøi gôûi Danh saùch User Xoaù User 7.4 Xoaù chuû ñeà 7.2 2. Döõ lieäu thu thaäp ñöôïc a. Döõ lieäu veà baøi göûi Moãi baøi göûi bao goàm caùc thuoäc tính nhö sau: - 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 - 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 BaøiGöûi MaõBaøiGöûi Caáp BaøiTröôùc ThöùTöï MaõChuûÑeà Tieâu Ñeà NgöôøiGöûi Email NgaøyGiôøGöûi NoäiDung 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ä thoáng thoâng tin cuûa web forum a. Döõ lieäu baøi göûi: Döõ lieäu Maõ baøi göûi laø khoaù cuûa thöïc theå BaøiGöûi vì noù cho pheùp chæ ñònh moät baøi duy nhaát Caùc kieåu döõ lieäu khaùc ñeàu laø thuoäc tính cuûa thöïc theå BaøiGöûi vì coù caùc phuï thuoäc haøm giöõa khoaù laø MaõBaøiGöûi vaø moãi thuoäc tính cuûa noù. Vaäy ta nhaän ñöôïc 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 NgöôøiSD MaõNgöôøiSD TeânTruyNhaäp Email MaätKhaåu QuyeànTruyCaäp b. Ngöôøi söû duïng: MaõNgöôøiSD laø khoaù cuûa thöïc theå NGUOISD, ñaây cuõng laø caáu truùc kieåu phieáu vaø khoaù MaõNgöôøiSD cho pheùp chæ ñònh moät ngöôøi söû duïng duy nhaát. Moãi moät giaù trò 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 cuûa thöïc theå NGUOISD. c. Chuû ñeà: ChuûÑeà MaõChuûÑeà TeânChuûÑeà MaõChuûÑeà laø khoaù cuûa thöïc theå chuû ñeà, thuoäc tính coøn laïi duy nhaát cuûa phieáu 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ù MaõTöøKhoaù TöøKhoaù Töø khoaù coù nguoàn goác töø noäi dung cuûa 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 töø khoaù. MaõTöøKhoaù laø khoaù cuûa thöïc theå 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 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. Thuoäc veà 1-n 0-n 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 TöøKhoaù MaõTöøKhoaù TöøKhoaù b. Quan heä giöõa CHUDE vaø BAIGUI Ñ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à. 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 ChuûÑeà MaõChuûÑeà TeânChuûÑeà 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: GhiNhôùBaøi 1-1 0-n 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 NgöôøiSD MaõNgöôøiSD TeânTruyNhaäp MaätKhaåu QuyeànTruyCaäp MaõChuûÑeà TeânChuûÑeà ChuûÑeà 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 BaøiGöûi MaõTöøKhoaù TöøKhoaù TöøKhoaù MaõNgöôøiSD Teânñaàyñuû TeânTruyNhaäp MaätKhaåu NgöôøiSD Ghi nhôù baøi Thuoäc veà 1-1 0-n 0-n 1-1 1-n 1-n Moâ hình thöïc theå keát hôïp: Moâ hình quan nieäm döõ lieäu ChuûÑeà Ghinhôùbaøi BaøiGöûi MaõChuûÑeà TeânChuûÑeà Maõ Maõbaøi MaõNgöôøiSD MaõNgöôøiSD TeânTruyNhaäp MaätKhaåu QuyeànTruyCaäp NgöôøiSD MaõTöøKhoaù TöøKhoaù TöøKhoaù MaõChæMuïc MaõBaøiGöûi MaõTöøKhoaù ChæMuïc 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 1-1 0-n 1-1 0-n 1-1 0-n 1-n 1-1 1-1 0-n 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 B¶ng 5 B¶ng 2 B¶ng 1 Döõ lieäu Moâ taû kieåu döõ lieäu Moâ taû MaõBaøiGöûi N Maõ (Soá thöù töï) cuûa baøi ñöôïc göûi. Caáp N Duøng chöùa caáp cuûa baøI göûi. MaõBaøiTröôùc N Chöùa MaõBaøiGöûi cuûa baøI maø noù traû lôøi. ThöùTöï N MaõChuûÑeà N Chöùa maõ chuû ñeà cuûa baøi göûi ñoù TieâuÑeà M Chöùa tieâu ñeà cuûa baøi göûi NgöôøiGöûi C50 Teân cuûa ngöôøi göûi Email C100 Ñòa chæ Email cuûa ngöôøi göûi NgaøyGiôøGöûi D Ngaøy giôø luùc göûi NoäiDung M Noäi dung cuûa baøi göûi Baûng ChæMuïc: Döõ lieäu Moâ taû kieåu döõ lieäu Moâ taû MaõChæMuïc N MaõBaøiGöûi N MaõTöøKhoaù N B¶ng 3 Baûng TöøKhoaù: Döõ lieäu Moâ taû kieåu döõ lieäu Moâ taû MaõTöøKhoaù N TöøKhoaù C30 B¶ng 4 Baûng NgöôøiSD: Döõ lieäu Moâ taû kieåu döõ lieäu Moâ taû MaõNgöôøiSD N TeânTruyNhaäp C30 MaätKhaåu C30 MaõQuyeànTruyNhaäp N Baûng GhiNhôùBaøi: Döõ lieäu Moâ taû kieåu döõ lieäu Moâ taû Maõ N MaõNgöôøiSD N MaõBaøiGöûi 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: 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 Kieåu Dieãn giaûi Maõbaøi Number Soá baøi vieát Thöùtöï Char(40) Thöù töï baøi vieát treân dieãn ñaøn Chuûñeà Char(255) 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á. 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 Thöùtöï Tieâu ñeà 1 0001 Tieâu ñeà 1 2 00020001 Traûlôøi: Tieâu ñeà 1 3 000300020001 Traûlôøi:Traûlôøi: Tieâu ñeà 1 4 00040001 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 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õbaøi Caápbaøi Baøicha Thöùtöï Tieâuñeà Chuûñeà Ngöôøigöi Noäidung ... 150 1 0 1 ... ... ... ... ... 151 1 0 1 ... ... ... ... ... 152 2 151 1 ... ... ... ... 153 2 151 2 ... ... ... ... 154 3 152 1 ... ... ... ... 155 4 154 1 ... ... ... ... 156 1 0 1 ... ... ... ... 157 2 156 1 ... ... ... ... 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... 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. 1 2 3 4 5 156 157 151 152 154 155 153 150 Baøi cha Thöù töï 1 0 1 2 156 1 3 0 1 4 151 1 5 152 1 6 154 1 7 151 2 8 0 1 Caáp baøi Maõ baøi 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Ù 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ù. Hình 21: Caùc chöùc naêng chính treân trang web Tìm kieám Saép xeáp baøi theo thaùng Danh saùch caùc baøi Choïn caùch saép xeáp Gôûi baøi môùi 1. Xem baøi Ñeå xem ñöôïc noäi dung moät baøi caàn phaûi bieát baøi ñoù 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 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 ñaøn Ñeå coù ñöôïc ñaàu vaøo ta duøng caùc truyeàn bieán theo lieâ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 [Khoâng coù baøi Thuaät toaùn tìm baøi con cuûa moät baøi caáp 1: - Ñ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øi con) - Ñeå coù theå hieån thò ñöôïc taát caû caùc baøi con, ta duøng moät thuû tuïc ñeä qui. Thuû tuïc tìmbaicon (mabaicha) For i = 0 to soá phaàn töû cuûa maûng 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 2. Xem noäi dung moät baøi Hình 23: Xem noäi dung baøi göû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û trong C” coù maõ baøi laø 156 thì lieân 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 Hình 24: Traû lôøi moät baø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à - 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 Baøi cha = 1 Thöù töï = 1 Ñöa taát caû caùc bieán vöøa coù vaøo cô sôû döõ lieäu ] 4. Ñaêng kyù trôû thaønh thaønh vieân cuûa Forum Khi ngöôøi söû duïng tham gia vaøo dieãn ñaøn, neáu ñaêng kyù 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 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à Hình 27: Keát quaû tìm kieám theo chuû ñeà Thuaät toaùn tìm kieám theo chuû ñeà: SQLQuery = "Select * from chude where chude.chude like '%"&chuoicantim&"%'; Ta duøng caâu leänh SQL sau ñeå thöïc hieän vieäc tìm kieám: 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 - 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 Töø khoaù 100 Töï 100 hoïc 100 Visual 100 Basic 100 6 100 Trong 100 6 100 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öøkhoaù Töøkhoaù 1 Visual 2 Hoïc 3 Töï 4 Basic 5 Trong 6 6 7 Ngaøy 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: Ñ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 Kieåu döõ lieäu Giaûi thích Maõbaøigöûi Number Maõtöøkhoaù Number 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øigöûi Maõtöøkhoaù 98 1 99 2 100 3 100 2 100 1 100 4 100 6 100 5 100 6 100 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ù “ Vôùi söï keát hôïp nhö treân ta coù theå coù caùch tìm kieám nhö sau: 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: Duøng SQL ñeå tìm kieám Tuy nhieân trong trang tìm kieám ta nhaän töø tìm kieám töø trang 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: 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; FONT-SIZE: 10pt"> [Choïn caùch Sxeáp] Chuû ñeà Tieâu ñeà Caâu hoûi Thôøi gian Ngöôøi göûi Bình thöôøng Vôùi caùch truyeàn bieán keøm theo ñòa chæ cho pheùp ta chæ caàn söû duïng moät trang hieån thò maø coù theå duøng nhieàu caùch hieån thò baøi khaùc nhau vaøo töøng thôøi ñieåm khaùc nhau. Ví duï: Ngöôøi söû duïng choïn caùch hieån thò “Caâu hoûi” thì trang seõ chaïy laïi trang dsachbai.asp nhöng coù keøm theo bieán sapxep = cauhoi. Trang dsachbai.asp duøng Request.QueryString(“sapxep”) seõ laáy ñöôïc bieán sapxep vaø duøng bieán naøy ñeå choïn ra nhöõng baøi laø caâu hoûi ñeå hieån thò. III. XÖÛ LYÙ YEÂU CAÀU CUÛA NGÖÔØI ÑAÕ ÑAÊNG KYÙ Ñoái vôùi ngöôøi ñaõ ñaêng kyù ngoaøi caùc quyeàn nhö moät ngöôøi söû duïng chöa ñaêng kyù nhö: göûi baøi, xem baøi, tìm kieám ... coøn coù theâm ñöôïc chöùc naêng ghi nhôù baøi Ghi nhôù baøi Khi ngöôøi söû duïng coù ñaêng kyù treân heä thoáng moät teân truy nhaäp thì heä thoáng cho pheùp ngöôøi söû duïng sau khi login vaøo heä thoáng coù theå löu laïi ñöôïc nhöõng baøi maø hoï caûm thaáy caàn phaûi nhôù. Heä thoáng döïa vaøo teân truy nhaäp seõ phaân bieät ñöôïc baøi naøo laø cuûa teân truy nhaäp naøo löu tröõ, laàn sau neáu ngöôøi söû duïng truy nhaäp heä thoáng ñuùng teân truy nhaäp vaø maät khaåu thì heä thoáng cho pheùp ngöôøi ñoù xem caùc baøi cuûa mình ñaõ löu laàn tröôùc. Taùc duïng lôùn cuûa phöông phaùp naøy laø giuùp ngöôøi söû duïng coù theå ñoïc ngay ñöôïc nhöõng baøi maø hoï chuù yù thay vì phaûi tìm kieám treân haøng traêm baøi treân dieãn ñaøn. Caùc baøi ñöôïc choïn seõ ñöôïc löu vaøo trong baûng ghi nhôù sau: Teân tröôøng Kieåu döõ lieäu Giaûi thích MaõngöôøiSD Number Maõbaøigöûi Number Sau khi ngöôøi söû duïng login chöông trình seõ töï ñoäng thieát laäp moät soá bieán Session ñeå löu tröõ thoâng tin cuûa ngöôøi söû duïng bao goàm: - Maõ ngöôøi söû duïng - Teân ngöôøi söû duïng Nhôø caùc bieán naøy maø trong suoát phieân laøm vieäc cuûa ngöôøi söû duïng chöông trình luoân luoân söû duïng ñöôïc bieán “maõ ngöôøi söû duïng” do vaäy khi ngöôøi söû duïng xem moät baøi naøo ñoù muoán löu laïi baøi ñoù thì keát hôïp giöõa bieán Session(“manguoiSD”) vaø maõ cuûa baøi göûi ñoù vaø löu hai giaù trò naøy vaøo baûng treân. Ñeå baûo maät thoâng tin sau khi ngöôøi söû duïng chuû ñoäng logout thì bieán Session(“manguoiSD”) seõ ñöôïc xoaù. IV. XÖÛ LYÙ YEÂU CAÀU CUÛA NGÖÔØI QUAÛN LYÙ: Ñoái vôùi ngöôøi quaûn lyù ngoaøi caùc chöùc naêng gioáng nhö ngöôøi söû duïng chöa ñaêng kyù, ngöôøi söû duïng ñaõ ñaêng kyù coøn coù nhöõng chöùc naêng khaùc nhaèm duy trì cho heä thoáng hoaït ñoäng toát hôn. 1. Xoaù baøi Ñeå moät quaûn lyù ñöôïc noäi dung cuûa dieãn ñaøn, heä thoáng cho pheùp ngöôøi quaûn lyù dieãn ñaøn coù theå xoaù baát cöù baøi naøo treân dieãn ñaøn. Thuaät toaùn xoaù baøi thöïc hieän nhö sau: <Töø danh saùch caùc baøi Choïn baøi ñeå xoaù {laáy ñöôïc maõbaøi} Doø tìm taát caû caùc baøi traû lôøi cho baøi ñoù {thuaät toaùn tìm baøi con} Xoaù baøi & xoaù luoân caû baøi con Xoaù maõbaøi ñoù trong baûng chæ muïc Hình 31: Trang xoaù baøi 2. Theâm ngöôøi söû duïng Ngöôøi quaûn lyù coù quyeàn theâm ngöôøi söû duïng cuõng nhö theâm ngöôøi quaûn lyù vaøo heä thoáng. Ñeå phaân bieät ñöôïc ngöôøi söû duïng vaø ngöôøi quaûn lyù, chöông trình chia ngöôøi söû duïng thaønh hai caáp: Caáp 2: ñaây laø caáp ngöôøi söû duïng, vôùi ngöôøi söû duïng loaïi naøy coù theå thöïc hieän caùc yeâu caàu gioáng nhö ngöôøi söû duïng chöa ñaêng kyù ñoàng thôøi coù theå ghi nhôù baøi maø hoï öu thích. Caáp 1: ñaây laø caáp quaûn lyù, ngoaøi quyeàn gioáng nhö moät ngöôøi söû duïng caáp 2 coøn coù quyeàn cao hôn so vôùi ngöôøi söû duïng caáp 2. Ngöôøi söû duïng ôû caáp naøy coù theå thöïc hieän ñöôïc 5 chöùc naêng cuûa ngöôøi quaûn lyù ñoù laø: xoaù baøi, theâm ngöôøi söû duïng, xoaù ngöôøi söû duïng, theâm chuû ñeà cho dieãn ñaøn, xoaù chuû ñeà cuûa dieãn ñaøn. Hình 32: Trang ñaêng kyù ngöôøi söû duïng Thuaät toaùn: Nhaän döõ lieäu: teânñaàyñuû, teântruynhaäp, maätkhaåu, email, caáp If thieáu thoâng tin then Baùo loãi Else If teân truy nhaäp truøng teân ñaõ coù tröôùc then Thoâng baùo Môû laïi form ñaêng kyù Else Ñöa döõ lieäu vaøo cô sôû döõ lieäu End if End if 3. Xoaù ngöôøi söû duïng Ñeå quaûn lyù ñöôïc soá löôïng ngöôøi söû duïng cuõng nhö soá löôïng ngöôøi quaûn lyù cuûa heä thoáng. Ngöôøi quaûn lyù coù quyeàn xoaù ngöôøi söû duïng ra khoûi heä thoáng. Hình 33: Xoaù ngöôøi söû duïng ra khoûi heä thoáng Chöông trình cho pheùp choïn 1 hoaëc nhieàu ngöôøi söû duïng ñeå xoaù. Moãi oâ checkbox laø moät giaù trò öùng vôùi maõ cuûa ngöôøi söû duïng töông öùng. Do vaäy khi choïn moät oâ hay nhieàu oâ vaø baám nuùt “Xoaù User” thì caùc bieán checkbox seõ ñöôïc truyeàn ñi vaø thuû tuïc xoaù ngöôøi söû duïng seõ laáy caùc bieán naøy ñeå xoaù ngöôøi söû duïng trong baûng cuûa cô côû döõ lieäu. Tuy nhieân ñeå ñaûm baûo cho heä thoáng hoaït ñoäng toát, ñoái vôùi tröôøng hôïp xoaù ngöôøi söû duïng caáp moät seõ coù moät ñieàu khaùc laø: neáu treân heä thoáng chæ coøn moät ngöôøi quaûn lyù thì khoâng cho pheùp xoaù. 4. Theâm chuû ñeà Ñeå coù theå ñaùp öùng ñöôïc nhu caàu trao ñoåi thoâng tin veà nhieàu lónh vöïc khaùc nhau cuûa ngöôøi söû duïng. Chöông trình cho pheùp ngöôøi quaûn lyù theâm chuû ñeà cho dieãn ñaøn. Ví duï: dieãn ñaøn ñaõ coù caùc chuû ñeà trao ñoåi veà maïng, Internet-web, laäp trình. Neáu ngöôøi quaûn thaáy caûm thaáy nhu caàu cuûa ngöôøi söû duïng caàn trao ñoåi caùc vaán ñeà veà Cô sôû döõ lieäu thì ngöôøi quaûn lyù coù theå theâm chuû ñeà naøy vaøo cô sôû döc lieäu. Hình sau cho pheùp ngöôøi quaûn lyù nhaäp caùc thoâng tin lieân quan ñeán chuû ñeà. Hình 34: Theâm chuû ñeà Thuaät toaùn: Nhaän döõ lieäu veà teân chuû ñeà, giaûi thích veà chuû ñeà If thieáu teân chuû ñeà Baùo loãi Else Kieåm tra treân cô sôû döõ lieäu ñaõ coù chuû ñeà chöa If coù Thoâng baùo truøng chuû ñeà Môû laïi form ñaêng kyù Else {thaønh coâng} Ñöa vaøo cô sôû döõ lieäu End if End if 5. Xoaù chuû ñeà Neáu coù theâm chuû ñeà thì phaûi coù xoaù chuû ñeà, hay nhöõng chuû ñeà ñaõ cuõ khoâng coøn ai quan taâm ñeán thì ngöôøi quaûn lyù coù theå xoaù ñi. Ñeå xoaù chuû ñeà chöông trình cuõng ñöa ra moät danh saùch caùc baøi vaø cho ngöôøi quaûn lyù choïn nhöõng baøi caàn xoaù. Moãi moät checkbox chöùa giaù trò maõ chuû ñeå, khi choïn vaøo ñaây vaø nhaép nuùt xoaù chuû ñeà thì caùc bieán cuûa checkbox seõ ñöôïc truyeàn ñi. Thuû tuïc xoaù chuû ñeà nhaä caùc thoâng tin veà maõ chuû ñeà ñöôïc xoaù vaø theo ñoù truy xuaát vaøo cô sôû döõ lieäu ñeå xoaù caùc chuû ñeà. Ñoàng thôøi vôùi vieäc xoaù chuû ñeà thì taát caû caùc baøi cuûa chuû ñeà ñoù neáu coù seõ ñöôïc xoaù . Hình 35: Xoaù chuû ñeà Tính baûo maät cuûa heä thoáng: Taát caû caùc trang web daønh cho ngöôøi quaûn lyù thì chæ ñöôïc truy xuaát bôûi ngöôøi quaûn lyù. Do vaäy caùc trang naøy phaûi coù tính baûo maät. Ñeå thöïc hieän ñieàu nay ta laøm nhö sau: Sau khi ngöôøi quaûn lyù Login thaønh coâng thì thieát laäp bieán Session(“capNguoiSD”), bieán naøy toàn taïi trong suoát phieân laøm vieäc cuûa ngöôøi quaûn lyù vaø taát caû caùc trang web ñöôïc xaây döïng cho ngöôøi quaûn lyù khi ñöôïc môû seõ kieåm tra bieán session naøy ñaàu tieân, neáu bieán naøy khoâng phuø hôïp thì khoâng cho môû trang naøy. Ñeå ñaûm baûo tính baûo maät, sau khi söû duïng ngöôøi quaûn lyù coù theå chuû ñoäng Logout ñeå xoaù bieán Session hoaëc sau moät khoaûng thôøi gian khoâng söû duïng chöông trình thì bieán Session naøy seõ töï ñoäng ñöôïc xoaù ñi Ví duï: Moät ngöôøi söû duïng coù ñaêng kyù, sau khi Login seõ coù bieán Session(“capNguoiSD”) = 2, thì khoâng theå truy xuaát ñeán caùc quaûn lyù ñöôïc vì ñieàu kieän ñeå truy xuaát caùc trang naøyphaûi coù bieán Session(“capNguoiSD”) = 3. CHÖÔNG 6 KEÁT LUAÄN, ÑAÙNH GIAÙ KEÁT QUAÛ Toùm taét noäi dung ñaõ thöïc hieän Trong suoát thôøi gian gaàn ba thaùng xaây döïng chöông trình, caên cöù vaøo nhieäm ñeà cöông nhieäm vuï nghieân cöùu em ñaõ thöïc hieän ñöôïc moät soá coâng vieäc sau ñaây: Nghieân cöùu caùc coâng cuï hoã trôï cho laäp trình - Web Server - ASP (active server page) - Jscript - VBScript - ODBC - DHTML Keát quaû ñöôïc trình baøy trong Chöông 2 Phaân tích vaø thieát keá heä thoáng Caên cöù vaøo döõ lieäu thu thaäp ñöôïc ñeå xaây döïng caùc thöïc theå töông öùng Döïa vaøo caùc thöïc theå ñaõ xaây döïng vaø caùc thoâng tin coù lieân quan ñeå xaây döïng moâ hình yù nieäm Döïa vaøo moâ hình yù nieäm, xaây döïng moâ hình quan heä vaø xöû lyù Keát quaû ñöôïc trình baøy trong chöông 4 Xaây döïng chöông trình Dieãn ñaøn treân Web laø moät chöông trình öùng duïng döïa treân coâng ngheä web ñoäng coù keát noái vôùi cô sôû döõ lieäu. Döïa vaøo caùc keát quaû phaân tích töø yeâu caàu cuûa ngöôøi söû duïng, em ñaõ xaây döïng caùc trang web nhaèm ñaùp öùng caùc nhu caàu ñoù. Keát quaû ñöôïc trình baøy trong Chöông 5 Ñaùnh giaù keát quaû ñaït ñöôïc, nhöõng thieáu soùt coøn toàn taïi. Trong suoát quaù trình laøm ñoà aùn, nhôø söï tích cöïc tìm toøi cuûa baûn thaân coäng vôùi söï giuùp ñôõ taän tình cuûa thaày höôùng daãn neân ñaõ ñem ñaït ñöôïc moät soá keát quaû sau: Ñaõ naém baét ñöôïc caùch söû duïng caùc coâng cuï, caùc ngoân ngöõ laäp trình töông ñoái môùi vaø aùp duïng thaønh coâng vaøo trong chöông trình. Hoaøn thaønh noäi dung cuûa yeâu caàu ñoà aùn ñeà ra Ñöa ra ñöôïc thuaät toaùn quaûn lyù phaân caáp caùc baøi vieát deã hieåu, deã quaûn lyù. Xaây döïng ñöôïc trang tìm kieám theo chæ muïc, ñaây laø phöông phaùp tìm kieám nhanh vaø hieäu quaû. Ñaûm baûo ñöôïc tính baûo maät cho caùc trang thuoäc quyeàn cuûa ngöôøi quaûn lyù. Ñaõ ñöa ñöôïc Tieáng Vieät vaøo haàu heát caùc trang web, trong caùc form nhaäp döõ lieäu, caùc nuùt trong chöông trình, taïo thuaän lôïi cho ngöôøi söû duïng. Tuy nhieân do trình ñoä vaø thôøi gian coù haïn neân vaãn coøn nhieàu thieáu soùt toàn taïi nhö: Trong trang hieån thò baøi göûi, nhaèm haïn cheá soá baøi hieån thò quaù nhieàu treân moät trang em ñaõ chia ra cho hieån thò theo thaùng, leõ ra ngoaøi hieån thò theo thaùng coøn phaûi cho hieån thò thaønh caùc trang khaùc nhau neáu coù quaù nhieàu baøi. Thieáu phaàn thoáng keâ: theo soá ngöôøi truy caäp, theo chuû ñeà, ngaøy thaùng töø ñoù giuùp cho ngöôøi quaûn lyù coù theå toå chöùc laïi dieãn ñaøn cho phuø hôïp hôn. Höôùng phaùt trieån cuûa ñoà aùn Xöû lyù caùc loãi chaët cheõ hôn tröôùc khi ñöa vaøo söû duïng. Veà vaán ñeà tìm kieám, coù theå lieân keát ñeán caùc ñòa chæ khaùc khi khoâng tìm thaáy treân dieãn ñaøn naøy. Ví duï nhö coù theå göûi caùc yeâu caàu ñeán caùc Search Engine khaùc treân maïng Internet (neáu web server keát noái vôùi Internet) nhö: Yahoo, AntaVista, InfoSeek... Xaây döïng theâm moät soá chöùc naêng cho ngöôøi ñaêng kyù nhö: nhaän ñöôïc caùc thoâng tin môùi, caùc caâu hoûi hay baøi traû lôøi veà moät ñeà taøi naøo ñoù. öùng duïng naøy coù tính toång quaùt vaø khaù linh hoaït, coù theå aùp duïng cho nhieàu moâi tröôøng ngöôøi söû duïng khaùc nhau (cô quan, tröôøng hoïc...). Tuyø theo ñaëc thuø cuûa ngöôøi söû duïng, ta coù theå ñieàu chænh laïi moät soá phaàn ñeå öùng duïng hoaøn thieän hôn Keát luaän Sau thôøi gian töông ñoái ngaén vöøa phaûi nghieân cöùu nhöõng coâng cuï môùi vöøa phaûi laäp trình, em ñaõ hoaøn thaønh ñoà aùn vaø ñaõ giaûi quyeát caùc yeâu caàu ñeà ra. Neáu coù theâm thôøi gian khaéc phuïc vaø ñöa vaøo thöû nghieäm thì öùng duïng seõ hoaøn thieän hôn. Tuy coøn nhieàu thieáu soùt nhöng em tin raèng vôùi kieán thöùc mình coù ñöôïc em coù theå phaùt trieån ñöôïc nhöõng chöông trình khaùc lôùn hôn. TAØI LIEÄU THAM KHAÛO - Tieán Só Phan Huy Khaùnh. Phaân tích vaø Thieát keá heä thoáng. - Alex Homer, Andrew Enfield, Christian Gross, Stephen Jakab, Bruce Hartwell, Darren Gill, Brian Francis. Profestional Active Server Page. - Gunnit S.Khurana, Balbir S. Khurana. Web DataBase. - David Gulbransen, Kenrick Rawlings. Dynamic HTML - Gary Cornell. Learn Visual Basic Scripting Now. - MSDN. Miscrosoft Developer Network - Book Online. MUÏC LUÏC Trang LÔØI NOÙI ÑAÀU CHÖÔNG 1 Ñaët vaán ñeà 3 I. Giôùi thieäu chung 3 II.Höôùng xaây döïng chöông trình 4 CHÖÔNG 2 Caùc coâng cuï trôï giuùp 5 I. Yeâu caàu veà moâi tröôøng laøm vieäc cuûa öùng duïng 5 II. Caùc coâng cuï trôï giuùp trong laäp trình 6 1. Jscript (Javascript) 6 2. VBScript (visual basic script) 6 3. ASP (active server page) 6 4. Visual InterDev (visual Internet Development) 8 5 . DHTML (dynamic html) 10 CHÖÔNG 3 Phaân tích chöông trình 11 I. Toång quaùt veà chöùc naêng cuûa dieãn ñaøn treân web 11 II. Caùc vaán ñeà caàn giaûi quyeát khi xaây döïng chöông trình 12 1. Phaân caáp ngöoøi söû duïng 12 Sô ñoà qui trình hoaït ñoäng cuûa caùc trang trong öùng duïng web forum 14 2. Hoaït ñoäng cuaå chöông trình 15 CHÖÔNG 4 Phaân tích thieát keá heä thoáng 17 I. Nhöõng thoâng tin caàn quaûn lyù treân cô sôû döõ lieäu 17 II. Phaân tích vaø thieát keá 18 1. Sô ñoà doøng döõ lieäu 18 2. Döõ lieäu thu thaäp ñöôïc 21 3. Caùc caáu truùc kieåu 21 Moâ hình thöïc theå keát hôïp 24 Moâ hình quan nieâm döõ lieäu 24 Chuyeãn ñoåi moâ hình quan nieäm döõ lieäu thaønh moâ hình logic döõ lieäu teäp 25 CHÖÔNG 5 Xaây döïng chöông trình 26 I. Quaûn lyù caùc baøi gôûi leân dieãn ñaøn 26 II. Xöõ lyù yeâu caàu cuûa ngöôøi chöa ñaêng kyù 29 1. Xem baøi 30 2. Xem noäi dung moät baøi 32 3. Gôûi baøi 32 4. Ñaêng kyù troû thaønh thaønh vieân cuûa forum 33 5. Tìm kieám 34 III. Xöû lyù yeâu caàu cuûa ngöôøi ñaêng kyù 39 IV. Xöû lyù yeâu caàu cuûa ngöoøi quaûn lyù 40 1. Xoaù baøi 40 2. Theâm ngöôøi söû duïng 41 3. Xoaù ngöôøi söû duïng 42 4. Theâm chuû ñeà 42 5. Xoaù chuû ñeà 43 Tính baûo maät cuaå heä thoáng 44 CHÖÔNG 6 Keát luaän, ñaùnh giaù keát quaû 45 Taøi lieäu tham khaûo 47

Các file đính kèm theo tài liệu này:

  • docLuan van dien dan tren mang.doc
  • docBao cao tot nghiep.doc
  • pptbaocao.ppt
  • rarCHUONGTRINH.rar