BÁO CÁO TỐT NGHIỆP
đồ án “ Xây dựng diễn đàn
trên mạng”
Thuật toán như sau:
Kiểm tra tính chính xác của các thông tin {email,
người gửi, tiêu đề đã nhập đủ chưa}
Kiểm tra có tồn tại mã bài của câu hỏi hay không
Nếu có { đây là bài trả lời }
Dựa vào mã bài của câu hỏi xác đònh:
Cấp của câu hỏi
Thứ tự của câu hỏi
Gán các biến cho bài con:
Cấp bài = cấp bài cha + 1
Bài cha = mã bài cha
ELSE {đây là bài mới}
Cấp bài = 1
Bài cha = 1
Thứ tự = 1
Đưa tất cả các biến vừa có vào cơ sở dữ liệu
Nhận thông tin về Tênđầủ, Têntruynhập, MậtKhẩu, E
-
mail
Kiểm tra phát hiện lỗi (thiếu thông tin, nhập sai yêu cầu)
IF có lỗi then báo lỗi
Quay lại trang nhập
ELSE
Truy xuất cơ sở dữ liệu chứa dữ liệu người dùng
của hệ thống
If tìm thấy một Têntruynhập giống tên vừa đăng ký
THEN
Báo lỗi
Quay lại trang nhập
Else {thông tin đăng ký hợp lệ}
Nhập tất cả các thông tin vừa đăng ký vào CSDL
END IF
5. Tìm kiếm: Ứng dụng cho phép người sử dụng tìm kiếm thông tin về bất cứ
một bài viết nào đó trên diễn đàn theo những lựa chọn: tìm kiếm theo chủ đề
Hình 27: Keát quaû tìm kieám theo chuû ñeà Thuật toán tìm kiếm theo chủ đề:
Ta dùng câu lệnh SQL sau để thực hiện tìm kiếm
b. Tìm kiếm theo nội dung: Xây dựng bảng chỉ mục phục vụ cho việc tìm
kiếm
Để xây dựng bảng chỉ mục đầu tiên ta xây dựng bảng từ khóa. Từ khóa
có được là do nội dung của bài viết được tách thành các từ.
Qui trình thực hiện xây dựng bảng từ khóa có thể tóm tắc như sau:
- Đầu tiên ta tách nội dung của bài viết thành các từ khoá
- Đưa tất cả các từ khoá vừa tách được vào trong một bảng tạm
SQLQuery = "Select * from chude where chude.chude like '%"&chuoicantim&"%';
- Dùng ngôn ngữ truy vấn dữ liệu để cập nhật các từ khoá trong bảng tạm
vào trong bảng từ khoá chính theo nguyên tắc: không thêm vào bảng
chính những từ mà bảng chính đã có.
Ví dụ
Ta có một bài gửi có các tham số sau:
Mãbàigửi = 100
Nộidung: Tự học Visual-Basic 6 trong 6 ngày
Sau khi tách ra lưu vào trong bảng tạm như sau:
100
Ngày Đưa từ khoá trong bảng tạm vào bảng chính:
Đưa các từ khoá vào trong bảng từ khoá theo nguyên tắc, từ khoá nào đã
có thì không thêm vào, ngược lại từ chưa có thì thêm vào cuối bảng.Ta dùng
ngôn ngữ truy vấn dữ liệu để thực hiện điều này
Sau khi thực hiện câu lệnh sql trên bảng từ khoá sẽ thêm vào những từ
chưa có.
Ví dụ: bảng từ khoá trước đã có từ: Visual, học, sau khi thêm các từ khoá
của bài có mã bài gửi là 100 vào thì như sau:
sqlQuery = "INSERT INTO TuKhoa ([tukhoa])SELECT DISTINCT
TuKhoaTam.tukhoa FROM TuKhoaTam LEFT JOIN TuKhoa ON
TuKhoaTam.tukhoa=TuKhoa.tukhoa WHERE (((TuKhoa.tukhoa) is
null));"
Mãtừkhoá Từkhoá
1 Visual
2 Học
3 Tự
Tạo bảng chỉ mục:
Để có thể tìm kiếm được bài viết theo tiêu đề và theo nội dung, chương
trình xây dựng các bảng chỉ mục để tìm kiếm cụ thể như sau:
c. Tìm kiếm theo tiêu đề: các tiêu đề của bài gửi sau khi được gửi lên diễn
đàn cũng được tách ra thành các từ khoá và cũng được lưu trữ trong các bảng từ
khoá và bảng chỉ mục dành riêng cho từ khoá. Cách xây dựng các bảng chỉ
mục, xây dựng bảng từ khóa và cách thức xây dựng thuật toán tìm kiếm hoàn
toàn tương tự như cách xây dựng thuật toán tìm kiếm thao nội dung.
d. Sắp xếp bài:
Có nhiều lựa chọn sắp xếp cho phép lựa chọn các cách phù hợp với yêu
cầu của người sử dụng. Mỗi một cách sắp xếp khác nhau chẳng qua xuất ra
màn hình danh sách các bài theo các cách khác nhau. Do vậy, trong chương
trình sẽ có nhiều thủ tục xuất các bài gửi ra màn hình trên cùng một trang, khi
Hình 28: Quan hệ giữa bảng “Bài Gửi”, “Chỉ Mục”, “TừKhoá “
người sử dụng chọn một trong các cách sắp xếp thì trang web này sẽ được chạy
lại và có cách xuất hiện bài viết theo thủ tục khác.
Khi có một tác động từ người dùng, chương trình sẽ xuất ra một biến
“sapxep” đi kèm với đòa chỉ của trang hiển thò bài
select name="list"
onchange="window.open(this.options[this.selectedIndex].value,'_top');
Mãbàigửi Number
Sau khi người sử dụng login chương trình sẽ tự động thiết lập một số biến
Session để lưu trữ thông tin của người sử dụng bao gồm:
- Mã người sử dụng
- Tên người sử dụng
Nhờ các biến này mà trong suốt phiên làm việc của người sử dụng chương
trình luôn luôn sử dụng được biến “mã người sử dụng” do vậy khi người sử
dụng xem một bài nào đó muốn lưu lại bài đó thì kết hợp giữa biến
Session(“manguoiSD”) và mã của bài gửi đó và lưu hai giá trò này vào bảng
trên.
Để bảo mật thông tin sau khi người sử dụng chủ động logout thì biến
Session(“manguoiSD”) sẽ được xoá.
Xử lý yêu cầu của người quản lý:Đối với người quản lý ngoài các chức
năng giống như người sử dụng chưa đăng ký, người sử dụng đã đăng ký còn có
những chức năng khác nhằm duy trì cho hệ thống hoạt động tốt hơn.
1. Xoá bài
Để một quản lý được nội dung của diễn đàn, hệ thống cho phép người
quản lý diễn đàn có thể xoá bất cứ bài nào trên diễn đàn.
Thuật toán xoá bài thực hiện như sau:
<Từ danh sách các bài
Chọn bài để xoá {lấy được mãbài}
Dò tìm tất cả các bài trả lời cho bài đó {thuật toán tìm
bài con}
Xoá bài & xoá luôn cả bài con
Xoá mãbài đó trong bảng chỉ mục
nhớ bài mà họ ưu thích.
Cấp 1: đây là cấp quản lý, ngoài quyền giống như một người sử dụng cấp
2 còn có quyền cao hơn so với người sử dụng cấp 2. Người sử dụng ở cấp này
có thể thực hiện được 5 chức năng của người quản lý đó là: xoá bài, thêm
người sử dụng, xoá người sử dụng, thêm chủ đề cho diễn đàn, xoá chủ đề của
diễn đàn.
Thuật toán: Nhận dữ liệu: tênđầủ, têntruynhập, mậtkhẩu, email, cấp
If thiếu thông tin then
Báo lỗi
Else
If tên truy nhập trùng tên đã có trước then 4. Thêm chủ đề
Để có thể đáp ứng được nhu cầu trao đổi thông tin về nhiều lónh vực khác
nhau của người sử dụng. Chương trình cho phép người quản lý thêm chủ đề cho
diễn đàn.
Hình 34: Thêm chủ đề
Tính bảo mật của hệ thống:
Tất cả các trang web dành cho người quản lý thì chỉ được truy xuất bởi
người quản lý. Do vậy các trang này phải có tính bảo mật. Để thực hiện điều
nay ta làm như sau:
Sau khi người quản lý Login thành công thì thiết lập biến
Session(“capNguoiSD”), biến này tồn tại trong suốt phiên làm việc của người
quản lý và tất cả các trang web được xây dựng cho người quản lý khi được mở
sẽ kiểm tra biến session này đầu tiên, nếu biến này không phù hợp thì không
cho mở trang này.
Kết luân và đánh giá kết quả:
Trong suốt quá trình làm đồ án, nhờ sự tích cực tìm tòi của bản thân cộng
với sự giúp đỡ tận tình của thầy hướng dẫn nên đã đem đạt được một số kết
quả sau:
Đã nắm bắt được cách sử dụng các công cụ, các ngôn ngữ lập trình tương