Xây dựng diễn đàn trên web
Trang 1Chươ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ì NewsGroupsẽ 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ênmạ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ườinà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ườitrê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ệnthuận lợi hơn cho người sử dụng và người ta gọi đó là các Diễn đàn trên web (webforum)
Trên mạng Internet hiện đang có rất nhiều diễn đàn nói về nhiều chủ đề khácnhau Ví dụ trang www.deja.com đây là trang web nổi tiếng về vấn đề trao đổi thôngtin giữa mọi người qua Internet Như ta thấy trên hình, người ta chia ra rất nhiều chủđề như: copm (computer): khoa học về máy tính, rec (recreation): hội thảo về giải trínghệ thuật
Tác dụng lớn nhất của Diễn đàn trên web là mọi người khi tham gia vào mạng cóthể đặt ra một vấn đề gì đó theo một chủ đề nhất định để có thể nhận được câu trả lời
Hình 1: Trang web nổi tiếng về diễn đàn (deja.com)
Trang 2của nhiều người trên toàn thế giới Để có thể thấy được lợi ích về tính quảng bá vàkhối lượng thông tin, kiến thức đồ sộ trên diễn đàn ta có thể so sánh dịch vụ này vớidịch vụ E-mail như sau: Nếu như nói thông tin trao đổi qua mail chỉ là quan hệ 1-1 ,tức là chỉ có một người gửi và chỉ có một người, hoặc một nhóm người nhận thư Trongkhi đó Diễn đàn trên web lại có quan hệ 1-n, tức là một người hỏi có nhiều người trảlời Như vậy lợi ích mà Diễn đàn trên web đem lại cho người sử dụng là không nhỏ.Ngày nay Diễn đàn trên Web được ứng dụng rất nhiều nơi, ví dụ trong mộttrường đại học, diễn đàn sẽ giúp đỡ các sinh viên trao đổi thảo luận với nhau quamạng, hay trong mạng nội bộ của một cơ quan
Xuất phát từ lợi ích mà diễn đàn đem lại, với mong muốn tạo ra một ứng dụng
trên mạng, giúp mọi người trao đổi thông tin với nhau nên em chọn đề tài: “Xây dựng diễn đàn trên web - Web Forum”.
Hiện nay Khoa Công Nghệ Thông Tin - Điện tử Viễn thông chúng ta đang cómột mạng cục bộ hiện đại, tuy nhiên em chưa thấy có nơi cho phép sinh viên truynhập, tìm hiểu những vấn đề phục vụ cho công việc học tập hay giải trí Chương trìnhDiễn đàn trên Web nếu được sử dụng trên mạng của trường mong sẽ góp một phầnvào việc trao đổi thông tin của các bạn sinh viên, đem lại một hình thức trao đổi thôngtin mới và chắc chắn sẽ hiệu quả
II HƯỚNG XÂY DỰNG CHƯƠNG TRÌNH
Khi nói đến diễn đàn mọi người liên tưởng đến ngay đến các cuộc bàn luận,phân tích về một vấn đề gì đó của một nhóm người nào đó Trong diễn đàn mọi ngườiđưa ra ý kiến của mình, các câu hỏi của mình để mọi người tham gia phân tích tìm câutrả lời, đó là diễn đàn trong cuộc sống hằng ngày chỉ diễn ra trong nội bộ một nhómngười
Ngày nay, với sự phát triển của mạng Internet ý tưởng đưa các cuộc nói chuyện,bàn luận xung quanh một vấn đề gì đó cũng được đưa lên mạng Như vậy, khi thamgia diễn đàn trên mạng các thành viên không cần phải tập trung tại một địa điểm nàođó mà chỉ cần ngồi tại nhà cùng với chiếc máy tính và tham gia vào mạng là có thểtham gia được diễn đàn ưu điểm của phương pháp này là ở chổ sẽ có nhiều người vàrất nhiều nơi trên thế giới tham gia vào diễn đàn và vấn đề đặt ra trên diễn đàn chắcchắn sẽ mau chóng được giải thích
Diễn đàn trên web là một chương trình ứng dụng được xây dựng dưới dạng cáctrang web Với web, mọi người sử dụng có thể truy xuất đến các trang ứng dụng nàyđể trao đổi thông tin với người khác
Do chương trình xây dựng trên web có trao đổi thông tin giữa các người sử dụngvới nhau nên các trang web của ứng dụng nhất thiết phải là các trang web có nội dungđộng Trong những năm gần đây để xây dựng các trang web động người ta thường haysử dụng các ngôn ngữ như: VBScript, Jscript, ASP Ngoài ra các trang web cho phépngười sử dụng trao đổi thông tin với nhau nên phải có một cơ sở dữ liệu để lưu trữ cácthông tin mà người sử dụng trao đổi với nhau
Trang 3CHƯƠNG 2CÁC CÔNG CỤ TRỢ GIÚP
Phần này giới thiệu về các thành phần cần thiết để ứng dụng có thể chạy được và các công cụ giúp cho việc lập trình
I YÊU CẦU VỀ MÔI TRƯỜNG LÀM VIỆC CỦA ỨNG DỤNG
Diễn đàn trên Web là một chương trình ứng dụng được viết trên giao diện webvà người sử dụng có thể ngồi tại máy con để truy xuất các trang web của ứng dụng dovậy yêu cầu đầu tiên là phải có một máy chủ chạy phần mềm web server (thông
thường là IIS (Internet Information Server chạy trên WinNT hay Personal Web Server
chạy trên Win98)
Thứ hai, do đây là trang web có tương tác với cơ sở dữ liệu cần phải có MSAccess hay SQL Server Thứ ba, phải có một chuẩn kết nối giữa cơ sở dữ liệu để đưadữ liệu từ các người sử dụng vào cơ sở dữ liệu cũng như truy xuất các dữ liệu từ cácbảng của cơ sở dữ liệu
Khi xây dựng chương trình tuy có nhiều cách lựa chọn về môi trường làm việccủa ứng dụng nhưng em chọn môi trường làm việc cho ứng dụng gồm:
- PWS (Personal Web Server)
- Cơ sở dữ liệu: Microsoft Access 98
- Chuẩn kết nối: ODBC
Web Server là một chương trình ứng dụng Trên web server chứa những site màcác máy con có thể truy xuất đến các site này Thông thường trên máy có hệ điềuhành Windows 98 thì web server là Personal Web Server, trên máy WindowsNTServer thì dùng phần mềm IIS 4.0
Về cơ sở dữ liệu, các ứng dụng thực tế hiện nay người ta thường hay sử dụngSQL Server Tuy nhiên trong quá trình xây dựng chương trình không có một máy tínhcó cấu hình đủ mạnh để cài đặt SQL Server Hơn nữa trong chương trình ta chỉ dùng
cơ sở dữ liệu để lưu trữ thông tin vào các bảng nên việc chọn SQL Server hay MSAccess là không quan trọng
Về chuẩn ODBC, ODBC là viết tắt của Open Database Connectivity (hệ thốngkết nối CSDL mở) ODBC được coi như là một giao thức chuẩn để giao tiếp giữachương trình ứng dụng với hệ thống các bảng của cơ sở dữ liệu Ví dụ khi ta viết cácchương trình ứng dụng có truy xuất cơ sở dữ liệu thông qua ODBC thì ODBC nhậnnhững yêu cầu từ chương trình ứng dụng và chuyển thành ngôn ngữ database engineđể truy xuất cơ sở dữ liệu
Và để có thể hình dung được khái quát cách chương trình làm việc cũng như cáchtrao đổi dữ liệu từ người sử dụng với cơ sở dữ liệu như thế nào ta xem hình 2
IntranetHình 2: Yêu cầu môi trường làm việc của ứng dụng
Trang 4Theo như hình vẽ trên, người sử dụng có thông qua môi trường mạng Internet hayIntranet có thể truy xuất các trang của ứng dụng trên web server (máy chủ) Khi cóthao tác với cơ sở dữ liệu như: gửi một bài, tìm kiếm thông tin về một bài nào đó thìcác yêu cầu này sẽ được web server thực hiện Web server sẽ thực thi các đoạn mãlệnh để truy xuất được các bảng trong cơ sở dữ liệu thông quan ODBC, tuỳ theo yêucầu của người sử dụng web server có thể đưa dữ liệu vào cơ sở dữ liệu hoặc truy xuấtcác thông tin từ cơ sở dữ liệu và cuối cùng trả về cho người sử dụng kết quả mà họyêu cầu.
Trên là một số điều cơ bản về môi trường và cách thức hoạt động của ứng dụng
II CÁC CÔNG CỤ TRỢ GIÚP TRONG LẬP TRÌNH
Nếu ai đã từng lập trình với Java thì việc học Jscript sẽ rất dễ dàng Mặt dù chứcnăng của Jscript không mạnh bằng các ngôn ngữ lập trình như Java hay C++ nhưngcũng đủ để người lập trình viết những chương trình nhỏ cho các trang web Trong thựctế người ta thường hay sử dụng Jscript để tạo ra những trang web tương tác với ngườidùng như: các form nhập số liệu, các nút bấm trên trang web, hoặc những hình ảnhchuyển động trên trang web , làm cho trang web giống như một chương trình thựcthụ
2 VBScript (visual basic script)
Vbscript cũng do Microsoft phát triển Cũng như Jscript, Vbscript được chèn vào trang web để làm tăng thêm tính năng tương tác cho trang web
Thường Vbsript được dùng để viết những đoạn chương trình tính toán số liệu trêntrang web, hoặc có thể dùng nó để viết những đoạn chương trình trao đổi dữ liệu giữatrang web và các cơ sở dữ liệu
Tóm lại, Jscript và Vbscript không phải là phiên bản của bất kỳ một ngôn ngữnào mặc dù Jscript thì trông gần giống như Java hay Vbscript thì trông gần giống nhưVisual basic Thêm vào đó Jscript và VBScript không dùng để tạo ra được các ứngdụng độc lập mà nó phải được chạy kèm vào trong các trang web và các đoạn mã củacác ngôn ngữ này sẽ được dịch và thực thi trên web server hay trên trình duyệt củangười sử dụng
3 ASP (active server page)
Microsoft Active Server Page (ASP) là một môi trường kịch bản trên máy chủdùng để tạo ra những ứng dụng Web động và có tương tác ASP có một tập các đốitượng có sẵn với nhiều tính năng phong phú, khả năng hỗ trợ VBScript và JScript cùngvới một số thành phần ActiveX khác kèm theo
- Đặc điểm của ASP
Trang 5Tạo ra những trang web động có tương tác: ASP có hộ trợ các script như JScriptvà Vbscript, bằng cách đưa các script này vào trong trang ASP chúng ta có thể tạo ranhững trang web động có tương tác
ASP có hỗ trợ các đối tượng được xây dựng sẵn, với các đối tượng này cùng vớicác script chúng ta có thể tạo ra những trang web đa năng Ví dụ chúng ta có thể dùngđối tượng Request để viết những đoạn chương trình yêu cầu server cung cấp thông tintừ server
Ngoài ra ASP còn có những đối tượng khác mà khi dùng người dùng phải định nghĩa trước khi dùng, các đối tượng này cũng cung cấp cho người lập trình có khả năngtạo ra được những trang Web hữu ích
Có thể truy xuất đến cơ sở dữ liệu như MS Access hay SQL server
- Khả năng của ASP
Với ASP ta có thể tạo được nhiều loại web nào hiện đang có trên Internet Sau đây ta có thể liệt kê ra một số khả năng mà ASP có thể làm:
Tạo những hình ảnh quảng cáo động rất sinh động và đẹp mắt trên trang web.Có thể đưa các thông tin từ các form của HTML lên cơ sở dữ liệu
Có thể tạo ra có thể hiển thị nội dung khác nhau tuỳ thuộc vào người sử dụng Cónghĩa là đối với người sử dụng này sẽ có nội dung hiển thị trên trình duyệt khác vớingười sử dụng khác
Đối với những trình duyệt web khác nhau, version khác nhau (IE hay Netscape)thì asp có thể có những nội dung hiển thị khác nhau tuỳ thuộc vào khả năng của trìnhduyệt
- Các đối tượng của ASP
Nhằm tạo điều kiện cho người lập trình, ASP cung cấp cho người lập trình nămđối tượng được xây dựng sẵn
CLIENT REQUEST OBJECTCookies SERVER SERVER
Form QueryString ServerVariables ClientCertificate
REQUEST OBJECT Cookies
Form QueryString ServerVariables ClientCertificate
RESPONSE OBJECT Cookies
(properties) (methods)
RESPONSE OBJECT Cookies
(properties) (methods)
SERVER OBJECT (methods)
SERVER OBJECT (methods)
APPLICATION OBJECT
(methods) (properties)
APPLICATION OBJECT
(methods) (properties)
SESSION OBJECT (methods)
(properties)
SESSION OBJECT (methods)
(properties)
Hình 3: Các đối tượng được xây dựng sẵn của ASP
Trang 6Trong đó:
Session Dùng để lưu trữ những thông tin cần thiết trong phiên làm việc của
user Những thông tin lưu trữ trong session không bị mất đi khi user
di chuyển qua các trang ứng dụng
Application Dùng để chia sẻ thông tin giữa các user trong cùng một ứng dụng
Đối tượng Application thường được dùng để đếm số lần truy cập đến ứng dụng của user
Request dùng để truy cập những thông tin được chuyển cùng với yêu cầu
HTTP Những thông tin này gồm các tham số của form khi được Submit dùng phương thức POST hay GET hay các tham số được ghicùng với trang asp trong lời gọi đến trang đó Dùng đối tượng Request để chia sẻ thông tin giữa các trang asp trong một ứng dụng Ngoài ra Request còn được dùng để lấy giá trị cookie lưu trữ trên máy client
Response gửi thông tin ra user, gồm các thông tin ghi trực tiếp ra browser,
chuyển browser đến một URL khác hoặc thiết lập cookie trên máy client
Server cung cấp phương tiện truy cập đến những phương thức và thuộc
tính trên server
- Cách tạo trang ASP
Với một trang HTML có sẵn, ta có thể dễ dàng tạo ra các trang ASP bằng cáchthêm vào các lệnh ASP Script cần thiết và đổi phần mở rộng thành asp
- Cách chèn các ASP Script vào trang ASP:
ASP Script phải được đặt giữa ký hiệu <% và %> hoặc giữa khối
<script runat = “server” language = [language]>
4 Visual InterDev (visual Internet Development)
Visual InterDev là một phần mềm được phát triển bởi Microsoft Đây là mộtphần mềm có hỗ trợ cho lập trình thiết kế web đặc biệt phần mềm có cho phép ngườilập trình có thể nhìn thấy trực tiếp trang web của mình đang thiết kế Visual InterDevhỗ trợ rất mạnh cho việc lập trình các trang web có tương tác Tất cả các đối tượng củaASP đều được phầm mềm này hỗ trợ
Do tất cả các đối tượng của ASP được phần mềm này hổ trợ nên việc lấy Visual Interdev để soạn thảo các trang asp sẽ rất nhanh và ít gặp lỗi
Trang 7- Những ưu điểm của phần mềm:
Hỗ trợ mạnh cho người lập trình tạo ra những trang ứng dụng bằng ngôn ngữ HTML hay các ngôn ngữ mới như DHTML
Là một công cụ lập trình mạnh cho web, phần mềm có rất nhiều công cụ đượcxây dựng sẵn, các đối tượng được xây dựng sẵn trong thư viện Ngoài ra người lậptrình có thể sử dụng đến các công cụ gỡ rối chương trình, kiểm tra chương trình haytạo ra những trang web một cách nhanh chóng
Tích hợp tất cả các thuộc tính, các đối tượng của các ngôn ngữ như VBScript,JavaScript, J++ hay các đối tượng của ASP
Visual InterDev có một trình soạn thảo thông minh, tự động hiểu được tất cả cácmethod, properties, event của đối tượng (để thấy rõ điều này xin xem hình 5)
Một vài hình vẽ sau sẽ cho thấy sự thuận tiện của Visual InterDev trong việc lập trình web, đặc biệt là lập trình với các trang ASP
Cho phép tạo ra các trang html, asp
Hình 4: Chọn lựa các kiểu khác nhau để tạo trang web
Hiển thị tất cả các thuộc tính các phương thức của một đối tượng asp
Hình 5: Trình soạn thảo thông minh cho phép lập trình
thuận lợi
Trang 85 DHTML (dynamic html)
- DHTML là sự kết hợp giữa các thuộc tính của HTML, JavaScript và Vbscript.Trước đây muốn làm một trang Web đẹp, với các hình ảnh động, chữ đổi màu,đổi kiểu chữ hay muốn làm một menu trên trang web là một điều khó khăn Gần đâyMicrosoft đưa ra công nghệ DHTML (dynamic HTML), DHTML được xây dựng dựatrên nền tảng của HTML, nhưng khả năng của DHTML tỏ ra nổi trội hơn so vớiHTML do khả năng tạo ra những trang web động và linh hoạt
- Khả năng của DHTML
Với DHTML ta có thể dễ dàng tạo ra những hiệu ứng đối với trang web, công việc này trước đây phải mất rất nhiều thời gian và công sức
Có thể dấu đi một dòng chữ hay một bức ảnh nào đó trên trang web và có thể cho nó xuất hiện bất cứ khi nào ta muốn
Có thể tạo ra những dòng chữ hay những bức tranh sống động trên trang webCó thể tạo ra những form trên trang web, dữ liệu trong form có thể cho hiển thịngay lên chính trang web đó mà không phải mở ra một trang web khác (thông thường,với HTML ta muốn hiển thị một thông tin khác lên trên trang web thì bắt buộc mộttrang web khác phải được mở ra)
Có thể dùng DHTML để hiển thị thông tin trong cơ sở dữ liệu
Các công cụ hỗ trợ cho lập trình các trang web Cho phép gỡ rối chương trình
Tạo ra 1 Project để chứa tất cả các file trong web site
Nhìn thấy trực tiếp kết quả lập trình Xem mã nguồn của chương trình
Hình 6: Có thể quản lý được 1 project, thấy được trực quan kết quả lập trình, hỗ
trợ các công cụ
Trang 9CHệễ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ựcchuỷ ủ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ùnchuỷ ủ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ửụứisửỷ 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ùcthaỏ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 10vaứ 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ựpngửụứ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ỷadieó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 ủửụùckhaự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ờngHỡnh 7: Caực chuỷ ủeà cuỷa dieón
đàn
Trang 10II CÁC VẤN ĐỀ CẦN GIẢI QUYẾT KHI XÂY DỰNG CHƯƠNG TRÌNH
Thiết kế tổng quát ứng dụng: nhằm giúp người lập trình dễ phát triển ứng dụngmột cách có tổ chức, đúng hướng, đúng yêu cầu đã đề ra
Thiết kế cơ sở dữ liệu: đây là phần quan trọng, có liên quan đến tính tối ưu củahệ thống
Xây dựng giao diện: tạo điều kiện thuận lợi cho người sử dụng khi gửi các yêucầu của mình đến web server
Viết các trang web để thực hiện các chức năng của chương trình: dựa vào ASP vàcác ngôn ngữ script để tạo ra những modul cho chương trình
Kiểm tra, sửa lỗi chương trình
1 Phân cấp người sử dụng
Không phải tất cả người sử dụng diễn đều có quyền thực hiện tất cả các khảnăng trên Ví dụ, một người sử dụng thông thường không thể có quyền xoá bài trêndiễn đàn, hoặc có thể đánh dấu một bài Do vậy, phân quyền cho người sử dụng làđiều cần thiết và khi tham gia vào diễn đàn tuỳ theo quyền của mình mà có các chứcnăng khác nhau
Chương trình chia người sử dụng thành 3 cấp: cấp 0, cấp 1 và cấp 2
- Cấp 0: người sử dụng chưa đăng ký
- Cấp 1: là những người quản lý hệ thống
- Cấp 2: người sử dụng có đăng ký tên truy nhập
a Người sử dụng thông thường
Diễn đàn trên mạng là nơi mà tất cả mọi người đều có thể tham gia và đóng gópcác ý kiến, các câu hỏi của mình Do vậy, một người không cần đăng ký có thể thamgia vào diễn đàn và có các khả năng sau:
- Xem nội dung của một bài bất kỳ
- Gửi câu hỏi mới theo một chủ đề nhất định nào đó
- Gửi câu trả lời cho những câu mà mình biết
- Sắp xếp trật tự của các bài gởi theo ý muốn: theo chủ đề của bài gửi, theo tiêu đề, theo ngày tháng năm, theo người gửi,
- Tìm kiếm: tìm kiếm bất kỳ một bài gởi nào đó trên diễn đàn theo: nội dung của bài gởi, theo chủ đề, theo tiêu đề của bài gửi
Hình 9: Xem nội dung 1 bài Hình 10: Gửi bài mới, hoặc trả lời
Trang 11b Người sử dụng có đăng ký
Diễn đàn trên Web có thể cho phép mọi người truy cập vào và gởi các bài củamình lên diễn đàn, tuy nhiên hệ thống có cho phép người dùng có thể tạo cho mìnhmột Account riêng Đối với những người dùng có đăng ký Account khi Login vào ứngdụng sẽ có khả năng lưu giữ lại các bài mà người đó ưa thích Lần truy cập tiếp theo,nếu người sử dụng login đúng tên truy nhập và mật khẩu thì có khả năng xem lại cácbài mà mình đã ghi nhớ trong các lần trước
Ngoài quyền lợi đưa đánh dấu bài, người sử dụng có đăng ký còn có thể có nhiềuquyền lợi khác như: nhận được thông tin về một bài mới hay các câu hỏi/ trả lời cóliên quan đến người sử dụng Tuy nhiên trong quá trình phát triển ứng dụng do thờigian có hạn nên chưa ứng dụng tạm thời chưa có chức năng này
c Người quản lý
Đối với người quản lý, ngoài các hoạt động như một người sử dụng bình thường còn có các khả năng sau:
- Quản lý người sử dụng:
- Xoá người sử dụng: xoá một người sử dụng bình thường ra khỏi hệ thống
- Tạo người sử dụng mới
- Xoá các bài trên diễn đàn: Đây là một biện pháp dùng để quản lý nội dung của các bài viết gởi lên diễn đàn
- Quản lý các chủ đề của diễn đàn:
- Xoá một chủ đề bất kỳ
- Thêm vào một chủ đề mới
Trang 12SƠ ĐỒ QUI TRÌNH HOẠT ĐỘNG CỦA CÁC TRANG TRONG ỨNG DỤNG
WEB FORUM
Xem nội dung 1 bài
Gửi bài mới
Về trang hiển thị
Quay về trang hiển thị
Trang Login
Trang đăng ký
Thành công Thất bại
Danh sách bài ghi nhớ Ghi nhớ bài
Xem nội dung
Thêm chủ đề
Xoá chủ đề
Danh sách chủ đề
Xoá bài
Danh sách User Xoá User
Nội dung bài Soạn và gửi
bài
Trang nhập
ND cần tìm kiếm
Hiển thị kết quả tìm kiếm là danh sách các bài gửi
Quá trình tìm kiếm
bµi
Hoạt động của User đăng ký
Các chức năng của người quản lý
Quá trình xem, gửi và trả lời
bài
Hình 11: Qui trình hoạt động của các trang web
Trang 132 Hoạt động của chương trình:
Khi người sử dụng gửi yêu cầu đến server có chứa ứng dụng, nếu yêu cầu đượcđáp ứng trang web giao tiếp với người sử sụng sẽ hiện ra trên máy của người dùng Từđây người sử dụng có thể tiếp tục gửi các yêu cầu của mình đến server bằng cáchchọn các chức năng tương ứng đã được thiết kế sẵn trên các trang web và server sẽnhận các yêu cầu này sau đó xử lý tính toán ngay trên server và trả về cho người dùngnhững gì mà họ yêu cầu
Cụ thể qui trình hoạt động của các trang như sau:
Qui trình gửi và xem bài
Trang đầu tiên sẽ là trang hiển thị danh sách các bài được gửi dưới dạng các siêuliên kết Người sử dụng muốn xem nội dung của một bài nào đó thì kích vào tiêu đềcủa bài ở trang xem nội dung người sử dụng có thể trả lời cho bài có nội dung vừađọc Ngoài ra người sử dụng có thể gửi một bài mới
Qui trình tìm kiếm bài
Áp dụng đối với: Người sử dụng bình thường, người sử dụng có đăng ký, người
quản lý
Khi người sử dụng muốn tìm kiếm một bài nào đó, sẽ có một trang tìm kiếm và ởtrang tìm kiếm
- Tìm kiếm theo chủ đề của bài gửi
- Tìm kiếm theo nội dung của bài gửi
- Tìm kiếm những bài trong một khoảng thời gian giới hạn nào đó
Kết quả trả về:
Nếu tìm thấy các bài có như nội dung người dùng cần tìm kiếm thì danh sách các bài được tìm thấy sẽ được liệt kê trên trang web
Nếu không tìm thấy sẽ hiển thị thông báo không tìm thấy
Qui trình đăng ký và login của người sử dụng, ghi nhớ bài
Áp dụng đối với: Người chưa đăng ký, người đã đăng ký, người quản lý.
Để trở thành một thành viên của diễn đàn, người sử dụng phải đăng ký mộtaccount và sẽ được hệ thống cấp một tên truy nhập và mật khẩu riêng cho người đó Khi yêu cầu được đăng ký, một trang đăng ký bao gồm các ô để nhập thông tin được hiện ra, người sử dụng sẽ nhập các thông tin vào các ô này và gửi đi, nếu được hệ thống chấp nhận thì người đăng ký sẽ nhận được một thông báo chúc mừng thành công, nếu không thành công hệ thống sẽ thông báo lỗi và hiện ra lại trang đăng ký cho người sử dụng sửa lại các thông tin đăng ký cho phù hợp
Khi đã trở thành một thành viên của diễn đàn người sử dụng ngoài việc có thể sửdụng các trang giống như một người sử dụng bình thường còn có thể đánh dấu nhữngbài mà mình ưu thích
Qui trình hoạt động của người quản lý:
Áp dụng đối với: Người quản lý
Để forum hoạt động tốt cần phải có một người quản lý, chức năng của người quản lýbao gồm:
- Xoá bài
Trang 14Chương trình cho phép người quản lý chọn bất cứ một bài nào đó để xoá và cóthể xoá nhiều bài hoặc xoá một bài Việc xoá bài thực hiện theo nguyên tắc: khi mộtbài cha được xoá thì tất cả các bài con của nó sẽ được xoá theo.
Thêm người sử dụng , xoá người sử dụng
Nhằm quản lý được người dùng trên hệ thống, chương trình cho phép người quảnlý có thể thêm người sử dụng vào hệ thống và ngược lại có thể xoá người sử dụng rakhỏi hệ thống
- Thêm chủ đề , xoá chủ đề
Để cho diễn đàn ngày càng phong phú, người quản lý có thể thêm vào diễn đànnhững chủ đề cho phù hợp với yêu cầu thực tiễn Ngược lại, nếu có một chủ đề nào đómà quá lâu ngày không có người tham gia thì người quản lý có thể xoá chủ đề đó đi.Việc xoá chủ đề cũng theo nguyên tắc là tất cả các bài thuộc chủ đó cũng xoá theo
Trang 15CHƯƠNG 4 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Như đã nói trong phần giới thiệu tổng quan về hoạt động của diễn đàn, người sửdụng khi gửi một bài lên diễn đàn thì các thành phần của một bài gửi: thông tin vềngười gửi, tiêu đề bài gửi, nội dung đều phải được lưu trữ trong cơ sở dữ liệu trênmáy chủ
Thông thường người ta thường dùng các mô hình cơ sở dữ liệu quan hệ để chứacác thông tin về bài gửi như SQL Server hay MS Access
Trong đồ án này em chọn cơ sở dữ liệu là Access để lưu các thông tin về bài gửi
Do có liên quan nhiều đến cơ sở dữ liệu, đồng thời các thông tin của bài gửi đòi hỏiphải được tổ chức một cách hợp lý và chặt chẽ nên trong phần này chủ yếu trình bàyvề phần phân tích và thiết kế hệ thống
I NHỮNG THÔNG TIN CẦN QUẢN LÝ TRÊN CƠ SỞ DỮ LIỆU
Thông tin các bài mà người sử dụng gửi lên diễn đàn, mỗi bài phải có mã riêng,cấp của bài đó, nội dung của bài là gì
Thông tin về người dùng, khi người sử dụng đăng ký thì các thông tin về người sửdụng như: tên truy nhập, mật khẩu, cấp của người sử dụng (cấp Admin và cấp User)phải được lưu trữ trên cơ sở dữ liệu
Nội dung của bài sau khi gửi sẽ được tách ra thành các từ khoá, các từ khoá nàysẽ tạo nên các bảng chỉ mục dùng cho mục đích tìm kiếm thông tin về các bài gửi đãgửi lên diễn đàn Do vậy các từ khoá, các chỉ mục cũng phải được lưu giữ
Quản lý các chủ đề của bài gửi, các chủ đề này do người quản lý diễn đàn quiđịnh và có thể thêm bớt
Quản lý các thông tin ghi nhớ bài của tất cả các thông tin về người sử dụng: họtên, e-mail
Trang 16II PHÂN TÍCH VÀ THIẾT KẾ
1 Sơ đồ dòng dữ liệu DFD
Hình 12: DFD cấp0
Hình 13: DFD cấp 1 của phần xem các bài đã được gửi (1)
Xem các bài đã được gửi 1
Các bài viết trên diễn đàn Các chủ đề của diễn đàn
Sắp xếp bài theo tiêu đề, thời gian, chủ đề
1 1
U s e r C h ư a đ a ê n g k y ù
U s e r C h ư a đ a ê n g k y ù
Gởi bài lên diễn đàn
Admin gởi yêu cầu
Yêu cầu tìm kiếm các thông tin trên diễn đàn
Yêu cầu xem các bài trên diễn đàn
Các bài viết trên diễn đàn
Kết quả tìm kiếm Các trang Web
Admin Login
Xem các bài
đã được gởi
1
Phân tích bài được gởi 3
Tìm kiếm4
Xử lý yêu cầu của Admin 7
Login 5
A d m i n
A d m i n
U s e r đ a õ đ a ê n g k y ù
U s e r đ a õ đ a ê n g k y ù
Xử lý yêu cầu của User đã đăng ký
6 User Login
User gởi yêu cầu
Đăng ký2Đăng ký
Bảng chỉ mục, bảng từ khoá Dữ liệu các bài gởi
Danh sách User Các chủ đề của forum
User chưa đăng ký
User đã đăng ký
Admin
Trang 17Hình 15: DFD cấp 1 của phân tích bài được gởi lên diễn đàn (3)
Phân tích bài được gởi 3 Các bài viết trên diễn đàn
Các chủ đề của diễn đàn Bảng chỉ mục, bảng từ khoá
phân tích nội dung của bài gởi
3 1
Phân tích các thông tin chủ đề;
ngày tháng gởi, cấp bài gởi
3 2
Hình 16: DFD cấp 2 của quá trình tìm kiếm (4)
Tìm kiếm4
Tìm kiếm theo nội dung
4 1
Tìm kiếm theo chủ đề
4 2
Tìm kiếm theo tiêu đề
4 3 Các bài viết trên diễn đàn
Các chủ đề của diễn đàn Bảng từ khoá, bảng chỉ mục
Dữ liệu các bài gởi
Hình 14: DFD cấp 1 của phân đăng ký (2)
Đăng ký
2
Danh sách người sử dụng
Kiểm tra cho phép đâng ký
2 1
Trang 18Hình 19: DFD cấp 1 của quá trình xử lý yêu cầu của Admin (7)
Xử lý yêu cầu của Admin
Dữ liệu nội dung bài gởi
Danh sách User
Hình 18: DFD cấp 1 của quá trình xử lý các yêu cầu của User đã đăng ký (6)
Danh sách người sử dụngHình 17: DFD cấp 1 của phân Login (5)
Login5 Kiểm tra cho Danh sách người sử dụng
phép login
5 1
Trang 192 Dữ liệu thu thập được
a Dữ liệu về bài gửi
Mỗi bài gửi bao gồm các thuộc tính như sau:
- Mã bài gửi
- Cấp của bài gửi
- Mã bài cha (nếu là bài mới trường này có giá trị là 0, bài trả lời trường này chứa mã bài của bài được nó trả lời)
- Thứ tự
- Thuộc chủ đề nào
- Tiêu đề của bài viết
- Họ tên người gửi
- Địa chỉ mail của người gửi
- Ngày giờ gửi
- Nội dung của bài gửi
b Dữ liệu về người sử dụng
Mỗi người sử dụng khi đăng ký sẽ có những thuộc tính sau:
- Mã người sử dụng
- Tên truy nhập
- Mật khẩu
- Quyền truy cập (Admin hay User)
- Địa chỉ Email
c Dữ liệu về chủ đề của các bài gửi
Các chủ đề của các bài trên web forum có các thuộc tính sau:
- Mã chủ đề
- Tên chủ đề
3 Các cấu trúc kiểu
Dựa vào các dữ liệu thu lượm được ta có xây dựng thành các cấu trúc kiểu Từcác cấu trúc kiểu này ta có thể xây dựng được các mô hình biểu diễn hệ thống thôngtin của web forum
a Dữ liệu bài gửi:
Dữ liệu Mã bài gửi là khoá của thực thể BàiGửi vì nó
cho phép chỉ định một bài duy nhất
Các kiểu dữ liệu khác đều là thuộc tính của thực thể
BàiGửi vì có các phụ thuộc hàm giữa khoá là MãBàiGửi và
mỗi thuộc tính của nó Vậy ta nhận được cấu trúc kiểu phiếu
là BAIGUI
Vậy mỗi giá trị của khoá MãBàiGửi tương ứng với một
và chỉ một giá trị thuộc tính khác của thực thể BAIGUI
BàiGửi
MãBàiGửi Cấp BàiTrước ThứTự MãChủĐề Tiêu Đề NgườiGửi Email NgàyGiờGửi NộiDung
Trang 20b Người sử dụng:
MãNgườiSD là khoá của thực thể NGUOISD, đây cũng
là cấu trúc kiểu phiếu và khoá MãNgườiSD cho phép chỉ định
một người sử dụng duy nhất Mỗi một giá trị của khoá
MãNgườiSD chỉ tương ứng với một và chỉ một giá trị thuộc
tính khác của thực thể NGUOISD
c Chủ đề:
MãChủĐề là khoá của thực thể chủ đề, thuộc tính còn lại
duy nhất của phiếu CHUDE là ChủĐề (tên của chủ đề) Mỗi
một ChủĐề cho phép xác định duy nhất một chủ đề
d Dữ liệu Từ khoá:
Từ khoá có nguồn gốc từ nội dung của bài gửi Từ nội dung
của bài gửi ta tách nội dung thành các từ riêng biệt, mỗi từ là
một từ khoá MãTừKhoá là khoá của thực thể TUKHOA Trong
cấu trúc của thực thể TUKHOA MãTừKhoá tương ứng với một
và chỉ một giá trị thuộc tính TừKhoá
4 Quan hệ giữa các thực thể
a Quan hệ giữa BàiGửi và Từ khoá
Sau khi người sử dụng gửi một bài bất kỳ lên diễn đàn, nội dung của bài ngoàiviệc lưu giữ vào cơ sở dữ liệu còn được tách ra thành các từ, các từ này được gọi làcác từ khoá và cũng được lưu trữ Và để thể hiện mối quan hệ giữa các từ khoá ta cómột kết hợp không phân cấp giữa hai thực thể BAIGUI và TUKHOA
b Quan hệ giữa CHUDE và BAIGUI
Đây là một cấu trúc kiểu CHA_CON Mỗi chủ đề có thể không có một bài nàonói về chủ đề đó hoặc cũng có thể có nhiều bài nói về chủ đề này Và mỗi bài chỉ duynhất nói về một chủ đề
NgườiSD
MãNgườiSD TênTruyNhập Email MậtKhẩu QuyềnTruyCập
ChủĐề
MãChủĐềTênChủĐề
TừKhoá
MãTừKhoáTừKhoá
Thuộc về
BàiGửi
MãBàiGửiCấpMãBàiTrướcThứTựMãChủĐềTiêu ĐềNgườiGửiEmailNgàyGiờGửiNộiDung
TừKhoá
MãTừKhoáTừKhoá
Trang 21c Quan hệ giữa người sử dụng và bài gửi:
Đối với người sử dụng có đăng ký một tên truy nhập và một mật khẩu trên hệthống, thì chương trình cung cấp khả năng lưu trữ bất cứ một bài nào đó mà ngườidùng ưa thích, hoặc lưu nhớ lại để lần sau đọc các bài này được dễ dàng và nhanhchóng Để thể hiện mối quan hệ trên ta có quan hệ sau:
0_n 1_1 BàiGửi
MãBàiGửiCấpMãBàiTrướcThứTựTiêu ĐềNgườiGửiEmailNgàyGiờGửiNộiDung
ChủĐề
MãChủĐềTênChủĐề
GhiNhớBài
BàiGửi
MãBàiGửiCấpMãBàiTrướcThứTựMãChủĐềTiêu ĐềNgườiGửiEmailNgàyGiờGửiNộiDung
NgườiSD
MãNgườiSDTênTruyNhậpMậtKhẩuQuyềnTruyCập
Trang 22Mô hình thực thể kết hợp:
Mô hình quan niệm dữ liệu
MãChủĐề
TênChủĐề
ChủĐề
MãBàiGửi Cấp MãBàiTrước ThứTự Tiêu Đề NgườiGửi Email NgàyGiờGửi NộiDung
BàiGửi
MãTừKhoá TừKhoá TừKhoá
MãNgườiSD Tênđầyđủ TênTruyNhập MậtKhẩu
NgườiSD Ghi nhớ bài
MãNgườiSD TênTruyNhập MậtKhẩu QuyềnTruyCập NgườiSD
MãTừKhoá
TừKhoá
TừKhoá
MãChỉMục MãBàiGửi MãTừKhoá ChỉMục
MãBàiGửi Cấp MãBàiTrước ThứTự MãChủĐề Tiêu Đề NgườiGửi Email NgàyGiờGửi NộiDung
1-1
0-n
1-1 0-n
Trang 23Chuyển đổi mô hình quan niệm dữ liệu thành mô hình logic dữ liệu tệp:
Bảng BàiGửi: Bảng này được dùng để lưu trữ các bài được gửi lên diễn đàn
Dữ liệu Mô tả kiểu dữ liệu Mô tả
MãBàiGửi N Mã (Số thứ tự) của bài được gửi
Cấp N Dùng chứa cấp của bàI gửi
MãBàiTrước N Chứa MãBàiGửi của bàI mà nó trả lời
MãChủĐề N Chứa mã chủ đề của bài gửi đó
TiêuĐề M Chứa tiêu đề của bài gửi
NgườiGửi C50 Tên của người gửi
Email C100 Địa chỉ Email của người gửi
NgàyGiờGửi D Ngày giờ lúc gửi
NộiDung M Nội dung của bài gửi
Bảng ChỉMục:
Dữ liệu Mô tả kiểu dữ liệu Mô tả
MãChỉMục NMãBàiGửi NMãTừKhoá N
Trang 24CHƯƠNG 5 XÂY DỰNG CHƯƠNG TRÌNHChương này trình bày hai phần chính:
Phần 1: Phân tích các chức năng chung như thuật toán quản lý các bài như thế
nào, trật tự cách hiển thị thông tin về các bài lên web
Phần 2: Đi sâu vào cách viết các trang theo yêu cầu của người sử dụng: ví dụ
các trang đáp ứng yêu cầu của người quản lý, của người sử dụng
I QUẢN LÝ CÁC BÀI GỬI LÊN DIỄN ĐÀN
Tất cả các bài viết gửi lên diễn đàn đều có đặc điểm chung giống nhau như sau:
- Thuộc về một chủ đề nào đó
- Có thể là câu hỏi hoặc là câu trả lời cho một vấn đề nào đó
Vậy để quản lý các bài viết trên diễn đàn ta phải biết:
- Bài đó thuộc chủ đề nào
- Phải phân biệt được đâu là câu hỏi đâu là câu trả lời
- Nếu là câu trả lời thì phải biết trả lời cho bài nào
Để giải quyết các vấn đề trên ta đưa ra các cách giải quyết sau:
Có nhiều cách quản lý bài khác nhau, trong phần này em xin được trình bày hai cách tổ chức quản lý bài, phân tích ưu nhược điểm của hai phương pháp, cuối cùng rút
ra phương pháp nổi trội hơn
Cách 1:
Cách dữ liệu của bài gửi được lưu trữ trong bảng có cấu trúc như sau:
Tên trường Kiểu Diễn giải
Thứtự Char(40) Thứ tự bài viết trên diễn đàn
Chủđề Char(255) Chủ đề bài viết
Trong đó:
Mãbài: tự động tăng lên 1 khi thêm 1 bài viết mới
Thứtự: đây là chuỗi ký tự gồm một hoặc nhiều cụm 4 chữ số, và số cụm từ cho biết cấp của bài đó:
Số cụm = 1 (cấp 1): đây là một bài viết mới
Số cụm = n, n>1 (cấp n): đây là bài trả lời cho bài cấp n-1
Cách xây dựng trường Thứtự
Nếu là bài viết mới: Thứtự = Mãbài
Nếu là bài trả lời:Thứtự = Thứtự của bài trả lời + Mãbài
Nếu mã bài không đủ bốn chữ số thì thêm các chữ số 0 vào đầu cho đủ bốn chữ số