3 Ajax Asynchronous JavaScript and XML Là một nhóm các công nghệ phát triển web được sử dụng để tạo các ứng dụng web động hay các ứng dụng giàu tính Internet 4 HTML HyperText Markup Lang
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN HOC
KHÓA LUẬN TỐT NGHIỆP
Tín đề tăi:
XĐY DỰNG WEBSITE TUYỂN SINH ĐẠI HỌC – CAO ĐẲNG
Giáo viên hướng dẫn : Th.s Đoăn Duy Bình
Sinh viên thực hiện : Lí Song Toăn
Đă Nẵng, thâng 5 năm 2014
Trang 2LỜI CẢM ƠN
Sau 4 năm học tại trường Đại học Sư Phạm Đà Nẵng, với sự chỉ bảo nhiệt tình của các thầy cô giáo khoa Tin Học em đã hoàn thành chương trình học tập của mình Trong suốt quá trình học tập trên ghế nhà trường, em đã trang bị được cho mình những kiến thức cơ bản trọng yếu, là nền tảng để em vững bước tren đường đời sau khi rời ghế nhà trường
Với lòng biết ơn sâu sắc, em xin chân thành cảm ơn thầy giáo – Th.s Đoàn Duy Bình đã tận tình chỉ bảo, giúp đỡ, động viên em trong suốt quá trình học tập, nghiên cứu và hoàn thành luận văn
Do hạn chế về thời gian và kiến thức nên đề tài không thể tránh khỏi những sai sót nhất định Em kính mong các thầy cô giáo tận tình góp ý và hướng dẫn Em xin chân thành cảm ơn!
Đà Nẵng, ngày 22 tháng 05 năm 2014
Sinh viên
Lê Song Toàn
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan:
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của Thạc sĩ Đoàn Duy Bình
2 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, chúng tôi xin chịu hoàn toàn trách nhiệm
Sinh viên thực hiện
Lê Song Toàn
Trang 4MỤC LỤC
DANH MỤC CÁC HÌNH VẼ 5
DANH MỤC CÁC BẢNG 6
DANH MỤC CÁC TỪ VIẾT TẮT 7
MỞ ĐẦU 8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 11
1.1 Ngôn ngữ lập trình web PHP 11
1.2 Cơ sở dữ liệu MySQL v3.1.0 19
1.3 Kết hợp ngôn ngữ lập trình web PHP và cơ sở dữ liệu MySQL 20
1.4 Giới thiệu về công cụ Adobe Dreamweaver 21
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN ĐĂNG KÝ TUYỂN SINH 23
2.1 Hiện trạng đăng ký dự thi đại học, cao đăng hiện nay 23
2.2 Quá trình xây dựng website 25
2.3 Công tác thu thập thông tin điều ra từ cộng đồng 48
CHƯƠNG 3: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG ĐĂNG KÝ TUYỂN SINH 49
3.1 Kết quả của quá trình xây dựng website 49
3.2 Kết quả của công tác thu thập thông tin 53
3.3 Tổng kết 56
KẾT LUẬN VÀ KIẾN NGHỊ 57
PHỤ LỤC 58
TÀI LIỆU THAM KHẢO 65
Trang 5DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Cú pháp PHP
Hình 1.2: Kết hợp ngôn ngữ lập trình web PHP và cơ sở dữ liệu MySQL
Hình 2.1: Hồ sơ tuyển sinh đại học
Hình 2.2: Sơ đồ phân rã chức năng mức đỉnh
Hình 2.3: Sơ đồ phân rã chức năng mức dưới đỉnh về Trường, Ngành, Khối Thi Hình 2.4: Sơ đồ phân rã chức năng mức dưới đỉnh về Tỉnh-Thành Phố, Quận-
Hình 2.9: Sơ đồ Usecase về Quận – Huyện
Hình 2.10: Sơ đồ Usecase về Xã – Phường
Hình 2.11: Sơ đồ Usecase về Phòng Ban
Hình 2.12: Sơ đồ Usecase về Users
Hình 2.13: Sơ đồ Usecase về Thí Sinh
Hình 2.14: Mối liên hệ giữa các bảng
Hình 2.15: So sánh giữa sử dụng và không sử dụng Ajax
Hình 3.7: Trang Chi Tiết Hồ Sơ Thí Sinh
Hình 3.8: Biểu đồ thể hiện các đối tượng khảo sát
Hình 3.9: Biểu đồ thể hiện địa điểm nộp hồ sơ
Hình 3.10: Biểu đồ thể hiện địa điểm nhận giấy báo dự thi
Hình 3.11: Biểu đồ thể hiện thời gian nhận giấy báo dự thi
Hình 3.12: Biểu đồ thể hiện quan điểm của đối tượng về quy trình làm hồ sơ Hình 3.13: Biểu đồ so sánh 2 cách làm
Trang 6DANH MỤC CÁC BẢNG
Bảng 2.1(tbl_users): Cơ sở dữ liệu về Users
Bảng 2.2 (tbl_phongban): Cơ sở dữ liệu về Phòng Ban
Bảng 2.3 (tbl_chucvu): Cơ sở dữ liệu về Chức Vụ
Bảng 2.4 (tbl_truong): Cơ sở dữ liệu về Trường
Bảng 2.5 (tbl_nganh): Cơ sở dữ liệu về Ngành
Bảng 2.6 (tbl_khoithi): Cơ sở dữ liệu về Khối Thi
Bảng 2.7 (tbl_truong_nganh): Cơ sở dữ liệu về Trường và Ngành Bảng 2.8 (tbl_nganh_khoithi): Cơ sở dữ liệu về Ngành và Khối Thi Bảng 2.9 (tbl_tinhtp): Cơ sở dữ liệu về Tỉnh – Thành Phố
Bảng 2.10 (tbl_quan_huyen): Cơ sở dữ liệu về Quận – Huyện Bảng 2.11 (tbl_xa_phuong): Cơ sở dữ liệu về Xã – Phường
Bảng 2.12 (tbl_namts): Cơ sở dữ liệu về Năm Tuyển Sinh
Bảng 2.13 (tbl_dk): Cơ sở dữ liệu về Tài Khoản Thí Sinh
Bảng 2.14 (tbl_ts): Cơ sở dữ liệu về Thí Sinh
Trang 72 CSS Cascading Style Sheet Là một ngôn ngữ quy định cách trình
bày của các thẻ html trên trang web
3 Ajax
Asynchronous JavaScript and XML
Là một nhóm các công nghệ phát triển web được sử dụng để tạo các ứng dụng web động hay các ứng dụng giàu tính Internet
4 HTML
HyperText Markup Language
Là một ngôn ngữ đánh dấu được thiết
kế ra để tạo nên các trang web với các mẩu thông tin được trình bày trên World Wide Web
5 XHTML Extensible HyperText Markup Language Ngôn ngữ đánh dấu siêu văn bản mở rộng, giống HTML nhưng cú pháp
12 LAMP Linux + Apache
Trang 8MỞ ĐẦU
1 Đặt vấn đề
Hằng năm, nước ta tổ chức 3 đợt thi tuyển vào các trường đại học và cao đẳng trên toàn quốc Các học sinh cuối cấp lớp 12 bắt đầu ôn thi và làm hồ sơ để có thể thi tuyển vào các trường đại học nhưng việc làm hồ sơ quá rườm rà Ví dụ: trên hồ sơ, thí sinh phải viết đúng và không được sai sót, tẩy xóa chữ nào,… điều đó gây khó khăn cho thí sinh Mặt khác, về phía các địa phương tổ chức thi, cụ thể là các trường đại học, việc tiếp nhận hồ sơ của thí sinh và phân loại các hồ sơ đó theo khối thi và theo thứ tự Alpha mất rất nhiều thời gian, chưa kể đến việc phải nhập liệu vào máy tính và chuẩn bị giấy báo dự thi cho thí sinh và còn tốn rất nhiều tiền của của nhà nước trong
3 đợt tuyển sinh hằng năm này Quá rườm ra và mất rất nhiều thời gian Từ những
vấn đề đã nêu trên, em chọn đề tài của luận văn là “Xây Dựng Website Đăng Ký
Tuyển Sinh Đại Học, Cao Đẳng”
Vậy trang web ra đời sẽ giúp giảm thiểu thời gian và công sức Thêm vào đó là chính xác và tiện lợi cho cả thí sinh và các trường đại học cao đẳng có tổ chức thi tuyển cũng như không thi tuyển Giúp tiết kiệm nâng sách nhà nước
2 Mục tiêu nghiên cứu
Giúp thí sinh thuận tiện và dễ dàng hơn khi đăng ký dự thi vào 1 trường đại học, cao đẳng
Giúp các trường đại học và cao đẳng quản lý tốt hơn trong công tác tuyển sinh đại học, cao đẳng
Góp phần xã hội hóa tin học, giảm thiểu lượng thời gian công việc nhưng hiệu quả công việc tăng cao
Tiết kiệm tiền của, nhân lực, thời gian, tăng độ chính xác, tránh được sai sót và nhầm lẫn trong công việc tuyển sinh
Trang 93 Nội dung nghiên cứu
- Tìm hiểu và khảo sát nhu cầu người sử dụng và thí sinh
- Bắt đầu thiết kế cơ sở dữ liệu phù hợp với yêu cầu của người sử dụng và thí sinh
- Xây dựng trang web dựa trên cơ sở dữ liệu đã xây dựng, kết hợp với yêu cầu của người sử dụng và thí sinh
- Tiến hành cho người sử dụng và thí sinh dùng thử để đánh giá chất lượng trang web
- Hiệu chỉnh sau khi thu thập và tổng hợp kết quả đánh giá
- Sản phẩm là trang web thu được sau khi hoàn tất các bước trên
Trang web được chia ra 2 phần:
Về phía quản lý
Những người tham gia trực tiếp công tác tuyển sinh (Users) có thể truy cập vào trang web dưới quyền admin để có thể kiểm tra hồ sơ của thí sinh Và có thể xuất danh sách thí sinh theo khối thi ra file txt
Lưu ý: Users không được quyền thêm, xóa, sửa, cập nhật bất kỳ 1 hồ sơ nào,
điều này chỉ có thể xảy ra đối với thí sinh
Users có thể xem, thêm, sửa, xóa tỉnh thành, quận huyện, xã phường, trường đại học, khối thi, ngành thi
Trang 104 Phương pháp nghiên cứu
Thu thập thông tin, tài liệu về tình hình tuyển sinh đại học, cao đẳng qua các năm
Phương pháp điều tra, lập phiếu câu hỏi và tổng hợp ý kiến
Phương pháp tổng hợp đánh giá
Sử dụng ngôn ngữ lập trình web PHP
Sử dụng cơ sở dữ liệu MySQL Xampp v3.1.0
5 Cấu trúc luận văn
Chương 1: Cở Sở Lý Thuyết
Chương 2: Phân Tích Và Thiết Kế Hệ Thống Thông Tin Đăng Ký Tuyển Sinh
Chương 3: Thiết Kế Và Xây Dựng Hệ Thống Đăng Ký Tuyển Sinh
Kết Luận Và Kiến Nghị
Trang 11CHƯƠNG 1:
CƠ SỞ LÝ THUYẾT 1.1 Ngôn ngữ lập trình web PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập
trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới
Đoạn mã sau minh họa giúp cách viết PHP lồng vào các trang HTML dễ dàng như thế nào:
Thẻ <?php và thẻ ?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã PHP qua
đó máy chủ biết để xử lý và dịch mã cho đúng Đây là một điểm khá tiện lợi của PHP giúp cho việc viết mã PHP trở nên khá trực quan và dễ dàng trong việc xây dựng phần giao diện ứng dụng HTTP
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và
có sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển cốt lõi của PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy
mô doanh nghiệp
Trang 121.1.1 Lịch sử phát triển của PHP
1.1.1.1 PHP/FI
PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools' Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơn giản Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem,
sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn
PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay
Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người
PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0
1.1.1.2 PHP 3
PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó
Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng mạnh
mẽ của nó Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạ tầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính năng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun mở rộng
Trang 13mới Hoàn toàn có thể kết luận được rằng đây chính là điểm mấu chốt dẫn đến thành công vang dội của PHP 3.0
Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏ mối liên
hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0 gợi nhắc
Nó đã được đặt tên ngắn gọn là 'PHP', một kiểu viết tắt hồi quy của "PHP: Hypertext Preprocessor"
Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó Vào thời kì đỉnh cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên mạng Internet PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm
1.1.1.3 PHP 4
Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cải tiến tính mô đun của cơ sở mã PHP Những ứng dụng như vậy đã chạy được trên PHP 3.0 dựa trên các tính năng mới và sự hỗ trợ khá nhiều các cơ sở dữ liệu và API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế để xử lý các ứng dụng phức tạp như thế này một cách có hiệu quả
Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev
và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu tiên được giới thiệu vào giữa năm 1999 PHP 4.0, dựa trên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách
xử lý thông tin người sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới
Trang 14Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng Internet Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiều nghìn người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL và tài liệu kĩ thuật cho PHP
1.1.1.4 PHP 5
Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn Cộng đồng PHP đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu Những điểm này chính là mục đích để Zeev và Andi viết Zend Engine 2.0, lõi của PHP 5.0 Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố
để cộng đồng kiểm nghiệm Đó cũng là phiên bản đầu tiên của Zend Engine 2.0 Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3 Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP
Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu
sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một
hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những cải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bản PCRE 5.0 cùng những tính năng
và cải tiến mới trong SOAP, streams và SPL
Trang 15mã nào nằm ngoài những dấu giới hạn đều được xuất ra trực tiếp không thông qua xử
lý bởi PHP Các dấu giới hạn thường dùng nhất là <?php và ?>, tương ứng với dấu giới hạn mở và đóng
Các dấu giới hạn <script language="php"> và </script> cũng đôi khi được sử dụng Cách viết dấu giới hạn dạng thẻ ngắn cũng có thể được dùng để thông báo bắt đầu đoạn mã PHP, là <? hay <?= (dấu này được sử dụng để in ra (echo) các xâu ký
tự hay biến) với thẻ thông báo kết thúc đoạn mã PHP là ?> Những thẻ này thường xuyên được sử dụng, tuy nhiên giống với những thẻ kiểu ASP (<%hay <%= và %>), chúng không có tính di động cao bởi có thể bị vô hiệu khi cấu hình PHP Bởi vậy,
Hình 1.1: Cú pháp PHP
Trang 16việc dùng các thẻ dạng ngăn hay các thẻ kiểu ASP không được khuyến khích Mục đích của những dấu giới hạn này là ngăn cách mã PHP với những đoạn mã thuộc ngôn ngữ khác, gồm cả HTML Mọi đoạn mã bên ngoài các dấu này đều bị hệ thống phân tích bỏ qua và được xuất ra một cách trực tiếp
Các biến được xác định bằng cách thêm vào trước một dấu đô la ($) và không cần xác định trước kiểu dữ liệu Không giống với tên hàm và lớp, tên biến là trường hợp nhạy cảm Cả dấu ngoặc kép ("") và ký hiệu đánh dấu văn bản (<<<EOF EOF;) đều có thể dùng để truyền xâu và giá trị biến PHP coi xuống dòng như một khoảng trắng theo kiểu như một ngôn ngữ dạng tự do (free-form language) (trừ khi nó nằm trong trích dẫn xâu), và các phát biểu được kết thúc bởi một dấu chấm phẩy PHP có
ba kiểu cú pháp chú thích: /* */ cho phép một đoạn chú thích tùy ý, trong khi
đó // và # cho phép chú thích trong phạm vi một dòng Phát biểu echo là một trong những lệnh của PHP cho phép xuất văn bản (vd ra một trình duyệt web)
Về cú pháp các từ khóa và ngôn ngữ, PHP tương tự hầu hết các ngôn ngữ lập trình bậc cao có cú pháp kiểu C Các phát biểu điều kiện If (Nếu), vòng lặp for và while, các hàm trả về đều tương tự cú pháp của các ngôn ngữ như C, C++, Java và Perl
1.1.3 Cookie và session trong PHP
Cookie và session là hai phương pháp sử dụng để quản lý các phiên làm việc giữa người sử dụng và hệ thống Việc quản lý phiên làm việc này sẽ giúp bạn tạo ra
sự chứng thực hiệu quả bởi việc xác nhận thông tin trước khi truy cập vào một phân vùng cố định Ngoài ra, việc quản lý tốt phiên làm việc cũng giúp người truy cập cảm thấy dễ dàng sử dụng dịch vụ của trang web cho những lần truy cập sau Bởi cớ chế quản lý phiên làm việc ghi nhận lại quá trình truy cập của người sử dụng khi họ thăm viếc trang web của bạn lần đầu
Trang 17Cookie được tạo ra bởi website và gởi tới browser, do vậy 2 website khác nhau (cho dù cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới browser Ngoài ra, mỗi browser quản lý và lưu trữ cookie theo cách riêng của mình, cho nên 2 browser cùng truy cập vào 1 website sẽ nhận được 2 cookie khác nhau
Như ví dụ trên ta thấy với tên là username và giá trị là admin, có thời gian sống
là 1 giờ tính từ thời điểm thiết lập
Chú ý: Kịch bản cookie phải đặt trên mọi giá trị trả về bao gồm thẻ HTML và lệnh echo
Kịch bản cookie phải đặt trên mọi giá trị trả về bao gồm thẻ HTML và lệnh echo
Trang 18c Hủy Cookie:
Để hủy 1 cookie đã được tạo ta có thể dùng 1 trong 2 cách sau:
+ Cú pháp: setcookie("Tên cookie")
Gọi hàm setcookie với chỉ duy nhất tên cookie mà thôi
+ Dùng thời gian hết hạn cookie là thời điểm trong quá khứ
a Thiết lập session:
Để thiết lập 1 session ta sử dụng cú pháp: session_start()
Đoạn code này phải được nằm trên các kịch bản HTML Hoặc những lệnh echo, printf
Để thiết lập 1 giá trị session, ngoài việc cho phép bắt đầu thực thi session Chúng
ta còn phải đăng ký 1 giá trị session Để tiện cho việc gán giá trị cho session đó
b Sử dụng giá trị của session:
Giống với cookie Để sử dụng giá trị của session ta sử dụng mã lệnh sau:
Cú pháp: $_SESSION["name"]
$_SESSION["name"]
Trang 19Với Name là tên mà chúng ta sử dụng hàm session_register("name") để khai báo
Ví dụ về session xem ở phụ lục [3]
c Hủy bỏ session:
Để hủy bỏ giá trị của session ta có những cách sau:
session_destroy() // Cho phép hủy bỏ toàn bộ giá trị của session
session_unset()// Cho phép hủy bỏ session
Ví dụ về session xem ở phụ lục [4]
1.2 Cơ sở dữ liệu MySQL v3.1.0
1.2.1 MySQL là gì?
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở miễn phí nằm trong nhóm
LAMP (Linux – Apache -MySQL – PHP) >< Microsoft (Windows, IIS, SQL Server, ASP/ASP.NET), vì MySQL được tích hợp sử dụng chung với apache, PHP nên
nó phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng,
có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS
X, Unix,FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan
hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó
làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
Xampp là chương trình tạo máy chủ Web (Web Server) được tích hợp
sẵn Apache, PHP, MySQL, FTP Server, Mail Server và các công cụ
Trang 20như phpMyAdmin Không như Appserv, Xampp có chương trình quản lý khá tiện lợi, cho phép chủ động bật tắt hoặc khởi động lại các dịch vụ máy chủ bất kỳ lúc nào Xampp v3.1.0 bao gồm các thành phần sau:
1.2.2 Một số đặc điểm của MySQL
MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server của Microsoft)
MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu
MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL
Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khoản có quyền sử dụng CSDL đó Nếu không, chúng ta sẽ không làm được gì cả giống như quyền chứng thực người dung trong SQL Server vậy
1.3 Kết hợp ngôn ngữ lập trình web PHP và cơ sở dữ liệu MySQL
Ngôn ngữ lập trình PHP được tối ưu hóa cho các ứng dụng web, tốc độ nhanh,
nhỏ gọn, cú pháp giống C và Java PHP rất dễ học nên đã nhanh chóng trở thành ngôn
ngữ lập trình web phổ biến nhất thế giới
Ứng dụng web viết bằng PHP có thể triển khai trên hầu hết các chủng loại máy chủ hiện có, trên nhiều hệ điều hành khác nhau (Windows, Linux, ) và các phần cứng khác nhau PHP có thể được sử dụng kết hợp với nhiều hệ quản trị dữ liệu quan hệ khác nhau, như: MySQL, MS SQL Server, PHP được phân phối miễn phí và nhóm
Trang 21phát triển PHP cung cấp các mã nguồn hoàn chỉnh để người dùng có thể tùy biến và
mở rộng theo mục đích sử dụng riêng
1.4 Giới thiệu về công cụ Adobe Dreamweaver
Dreamweaver là một chương trình biên tập HTML chuyên nghiệp, nhằm phục
vụ cho việc thiết kế, lập trình, phát triển các website, các trang web và các ứng dụng web, cho dù là lập trình viên thích viết mã bằng tay hay là thực hiện công việc làm web bằng công cụ trực quan, thì Dreamweaver cũng cung cấp cho bạn các công cụ hữu ích để cải tiến kinh nghiệm thiết kế web của họ
1.4.1 Dreamweaver có thể làm gì cho bạn?
Các tính năng của các công cụ thiết kế trực quan trong Dreamweaver giúp lập trình viên tạo ra một trang web mà không phải viết bất kỳ một dòng mã nào Lập trình viên có thể quan sát tất cả các thành phần site hay tài nguyên web của họ và kéo chúng vào tài liệu một cách dễ dàng từ một panel Họ còn có thể luồng dây truyền phát triển của họ vào website bằng cách tạo ra và chỉnh sửa các tấm ảnh trong các ứng dụng đồ họa khác, Dreamweaver còn cung cấp các công cụ mà giúp người ta có thể dễ dàng thêm các tài nguyên Flash vào trong các trang web
Ngoài các tính năng kéo và thả giúp lập trình viên xây dựng các trang web, Dreamweaver còn cung cấp một môi trường viết mã chuyên nghiệp bao gồm các công Hình 1.2: Kết hợp ngôn ngữ lập trình web PHP
và cơ sở dữ liệu MySQL
Trang 22cụ biên tập mã (chẳng hạn như, màu cú pháp, tự động đóng tab, và thu mã thành một dòng), các bản tham khảo mã CSS, javascript, ColdFusion, vân vân Công nghệ RoundTrip HTML sẽ chèn vào những tài liệu viết tay của họ mà không hề định dạng lại mã; sau đó họ có thể chỉnh lại mã theo cách viết mà họ thích
Dreamweaver còn giúp bạn xây dựng các ứng dụng web dựa trên cơ sở dữ liệu,
và các trang web động bằng các công nghệ chẳng hạn như CFML (Confusion), ASP.NET, ASP, JSP, và PHP Nếu như lập trình viên có sở thích dùng cơ sở dữ liệu XML, thì Dreamweaver sẽ đưa cho họ các công cụ mà giúp họ dễ dàng tạo ra các trang XSLT, các tập tin XML, và thể hiện được dữ liệu XML trên trang của họ
Trong thực tế với Dreamweaver, lập trình viên có thể tạo ra các đối tượng và các lệnh cho riêng bản thân mình, họ còn có thể chỉnh sửa các phím tắt ứng dụng, hay thậm chí viết thêm mã javascript vào phần Extend Dreamweaver tạo ra các behavior mới, các thanh thuộc tính mới, và các báo cáo site
1.4.2 Dreamweaver một số tính năng cao cấp mới
Ngoài những tính năng cũ thông thường Dreamweaver bao gồm nhiều tính năng mới giúp bạn xây dựng các website và ứng dụng với chỉ một chút tí thời gian và công sức Dreamweaver làm đơn gian hóa và dễ dàng thực hiện được những công nghệ phức tạp, giúp bạn hoàn thành nhiều trong một thời gian ngắn
Một số tính năng mới của Dreamweaver bao gồm:
Các đường dẫn và công cụ zoom
Trực quan việc kết hợp dữ liệu XML
Panel style css mới
Trực quan việc layout với css
Trang 232.1.1 Về phía thí sinh
Đến giữa tháng 3 hằng nằm, các học sinh cuối cấp lớp 12 bắt đầu làm hồ sơ để tham gia dự thi đại học vào các trường đại học, cao đẳng đã hướng tới Trên thực tế, với một bộ hồ sơ như thế này (Hình 2) thì việc điền thông tin vào bộ hồ sơ có sai sót
là điều không thể tránh khỏi trong lần đầu tiên, có thể là thứ 2, thứ 3
Hình 2.1: Hồ sơ tuyển sinh đại học
Trang 24Đơn cử như mục 5, “Họ, chữ đệm và tên của thí sinh” Hồ sơ có nêu rõ “Viết đúng như giấy khai sinh bằng chữ in hoa có dấu” nhưng đa phần, thí sinh đều bỏ qua câu chữ này và điền tên họ bình thường và chỉ viết hoa chữ đầu tiên
Mục 2 và mục 3 cần ghi chính xác thông tin của trường, ngành, khối thi mà thí sinh muốn thi
Và tất nhiên, bất kì mục nào viết sai và bị gạch bỏ thì bộ hồ sơ này đương nhiên
sẽ không đúng theo quy đinh
Để viết một bộ hồ sơ thi đại học như thế này lại quá mất thời gian và công sức khi thi sinh phải “cân não” để hoàn thành được nó
2.1.2 Về phía công tác tuyển sinh
Sau khi thí sinh làm hồ sơ xong và đem nộp tại trường cấp 3 nơi mình học hoặc tại các trường đại học, cao đẳng Các trường đại học, cao đẳng tiếp nhận và phân loại
hồ sơ theo khối thi và sau đó là theo thứ tự Alphabe của tên thí sinh mất rất nhiều thời gian
Đợt 1: Khối thi A, A1, V
Đợt 2: Khối B, C, D và các khối năng khiếu Thí sinh thi khối năng khiếu, sau
khi dự thi các môn văn hoá (Khối H, N thi môn Ngữ văn theo đề thi khối C; Khối M thi môn Ngữ văn, Toán theo đề thi khối D; Khối T thi môn Sinh, Toán theo đề thi khối B; Khối R thi môn Ngữ văn, Lịch sử theo đề thi khối C)
Đợt 3: Thi các trường cao đẳng có tổ chức thi
Chưa kể đến việc phải nhập toàn bộ số hồ sơ vào cơ sở dữ liệu và chuẩn bị giấy báo dự thi cho thí sinh Ví dụ: Sáng nay 28/4, Sở GD- ĐT Đà Nẵng cho biết, qua phân loại, thống kê hồ sơ đăng ký dự thi ĐH, CĐ năm 2010 của các thí sinh tại Đà Nẵng,
có 20.977/23.458 hồ sơ Như vậy với năm 2010, hồ sơ dự thi tại Đà Nẵng là 23.458
hồ sơ, mất bao lâu để có thể phân toàn bộ số hồ sơ đó theo khối thi và thứ tự Alphabe của tên thí sinh, sau đó cộng thêm thời gian để có thể nhập toàn bộ dữ liệu hồ sơ vào trong cơ sở dữ liệu để lưu trữ và in ra 23.458 giấy báo dự thi cho thí sinh Giả sử hạn
Trang 25cuối nộp hồ sơ là ngày 17/4 và ngày phát giấy báo dự thi là ngày 20/6 là khoảng 64 ngày Lượng thời gian bỏ ra quá lớn sẽ đi kèm với chi phí tăng theo
Như vậy, khi đến mỗi kỳ tuyển sinh, những công việc trên sẽ tiêu tốn rất nhiều thời gian và tiền của của thí sinh cũng như của phía công tác tuyển sinh trong 3 đợt thi
2.2 Quá trình xây dựng website
2.2.1 Sơ đồ Usecase hình thành ý tưởng
Usecase là một kỹ thuật được dùng trong kỹ thuật phần mềm và hệ thống để nắm bắt yêu cầu chức năng của hệ thống Usecase mô tả sự tương tác đặc trưng giữa người dùng bên ngoài (actor) và hệ thống Nó thể hiện ứng xử của hệ thống đối với bên ngoài, trong một hoàn cảnh nhất định, xét từ quan điểm của người sử dụng Nó mô tả các yêu cầu đối với hệ thống, có nghĩa là những gì hệ thống phải làm chứ không phải
mô tả hệ thống làm như thế nào Tập hợp tất cả Usecase của hệ thống sẽ mô tả tất cả các trường hợp mà hệ thống có thể được sử dụng
Mỗi Usecase mô tả cách thức actor tương tác với hệ thống để đạt được mục tiêu nào đó Một hoặc nhiều kịch bản có thể được tạo ra từ mỗi Usecase, tương ứng với chi tiết về mỗi cách thức đạt được mục tiêu nào đó
Các ký hiệu của các sơ đồ phân rã chức năng được hiểu như sau:
Usercase gồm các chức năng Chức năng của các Usercase
Chức năng
Đối tượng sử dụng website
Trang 262.2.1.1 Sơ đồ phân rã chức năng mức đỉnh
Website hướng đến 2 đối tượng chính là các cán bộ trong công tác tuyển sinh và thí sinh Với mỗi đối tượng, chức năng sẽ khác nhau
Các cán bộ trong công tác tuyển sinh gồm các chức năng: Đăng ký tài
khoản, đăng nhập, xem hồ sơ cá nhân, chỉnh sửa hồ sơ cá nhân, xem hồ sơ tuyển sinh, trường-ngành-khối thi, thành phố-quận-huyện, đăng xuất
Thí Sinh gồm các chức năng: Đăng ký tài khoản, đăng nhập, xem hồ sơ tuyển sinh, đăng ký hồ sơ tuyển sinh, đăng xuất
Hình 2.2: Sơ đồ phân rã chức năng mức đỉnh
Trang 272.2.1.2 Sơ đồ phân rã chức năng mức dưới đỉnh về Trường, Ngành, Khối Thi
Sơ đồ phân rã chức năng về Trường, Ngành, Khối Thi gồm các Usercase chính là: Ngành, Trường, Khối Thi
Hình 2.3: Sơ đồ phân rã chức năng mức dưới đỉnh về
Trường, Ngành, Khối Thi
2.2.1.3 Sơ đồ phân rã chức năng mức dưới đỉnh về Tỉnh-Thành Phố,
Trang 282.2.1.4 Phân rã Usecase về Trường
Trường gồm các chức năng: Thêm Trường, Xóa Trường, Sửa Trường, Xem Trường
2.2.1.5 Phân rã Usecase về Ngành
Ngành gồm các chức năng: Thêm Ngành, Xóa Ngành, Sửa Ngành, Xem Ngành
Hình 2.5: Sơ đồ Usecase về Trường
Hình 2.6: Sơ đồ Usecase về Ngành
Trang 292.2.1.6 Phân rã Usecase về Khối Thi
Khối Thi gồm các chức năng: Thêm Khối Thi, Xóa Khối Thi, Sửa Khối Thi, Xem Khối Thi
Trang 302.2.1.8 Phân rã Usecase về Quận Huyện
Quận – Huyện gồm các chức năng: Thêm Quận – Huyện, Xóa Quận – Huyện, Sửa Quận – Huyện, Xem Quận – Huyện
2.2.1.9 Phân rã Usecase về Xã Phường
Xã – Phường gồm các chức năng: Thêm Xã – Phường, Xóa Xã – Phường, Sửa
Xã – Phường, Xem Xã – Phường
Hình 2.9: Sơ đồ Usecase về Quận – Huyện
Hình 2.10: Sơ đồ Usecase về Xã – Phường
Trang 312.2.1.10 Phân rã Usecase về Phòng Ban
Phòng Ban gồm các chức năng: Thêm Phòng Ban, Xóa Phòng Ban, Sửa Phòng Ban, Xem Phòng Ban
2.2.1.11 Phân rã Usecase về Users
Users gồm các chức năng: Thêm Users, Xóa Users, Xem Users, Thêm Năm Tuyển Sinh
Hình 2.11: Sơ đồ Usecase về Phòng Ban
Hình 2.12: Sơ đồ Usecase về Users
Trang 322.2.1.12 Phân rã Usecase về Thí Sinh
Thí Sinh gồm các chức năng: Xuất danh sách Thí Sinh, Thêm Thí Sinh, Xem Thí Sinh
Xây dựng cơ sở dữ liệu
Dựa vào sơ đồ phân rã chức năng như đã nêu ở mục 2.2.1.1, cơ sở dữ liệu đã được xây dựng với tên trường và kiểu dữ liệu tương ứng Các kiểu dữ liệu trong các bảng đã được tính toán phù hợp với chức năng và yêu cầu đặc thù của từng bảng Các kiểu dữ liệu được dùng là Int, Char Những số ở trong dấu ngoặc đơn phía sau các kiểu dữ liệu Ví dụ như: Int(3), Char(30), Int(11),… có ý nghĩa là bề rộng hiển thị số (size): Int(size) hay Char(size) Tất cả các bảng đều có thể viết tiếng Việt với các trường dữ liệu có kiểu dữ liệu là Char Ví dụ: trường dữ liệu SDT có kiểu dữ liệu là Char với kích thước là 11, được viết là Char(14) có dữ liệu là +840906148477 Trường Gioitinh có kiểu dữ liệu Int(1) vì khi User đăng ký tại khoản, khi chọn giới tính của mình, User chọn Nam thì dữ liệu sẽ trả về giá trị 1, Nữ thì trả về giá trị
Hình 2.13: Sơ đồ Usecase về Thí Sinh