Để cóđược kết quả như hôm nay, nhóm thực hiện đề tài đã nhận được rất nhiều sự quan tâm,giúp đỡ và chỉ đạo nhiệt tình của các thầy, cô trong khoa công nghệ thông tin.. Nhóm thực hiện đề
Trang 1MỤC LỤC
NHẬN XÉT GIẢNG VIÊN HƯỚNG DẪN 1
NHẬN XÉT GIẢNG VIÊN HƯỚNG DẪN 2
NHẬN XÉT GIẢNG VIÊN HƯỚNG DẪN 3
NHẬN XÉT GIẢNG VIÊN HƯỚNG DẪN 3
MỤC LỤC 3
DANH MỤC CÁC BẢNG 3
DANH MỤC CÁC HÌNH VẼ 3
LỜI CẢM ƠN 3
PHẦN I: MỞ ĐẦU 3
1 Lý do chọn đề tài 3
2 Đối tượng nghiên cứu 3
3 Giới hạn và phạm vi nghiên cứu 3
4 Mục đích nghiên cứu 3
5 Nhiệm vụ nghiên cứu 3
6 Phương pháp nghiên cứu 3
7 Ý nghĩa lý luận và thực tiễn của đề tài 3
Trang 2PHẦN II: NỘI DUNG 3
I TÌM HIỂU CÔNG NGHỆ 3
Chương 1: Tổng quan về lập trình PHP cơ bản 3
1 Tổng quan về PHP 3
1.1 Giới thiệu PHP 3
1.2 Đặc điểm của PHP trong lập trình web 3
1.3 Quy trình hoạt động 3
2 Cú pháp cơ bản trong PHP 3
2.1 Cấu trúc cơ bản 3
2.2 Xuất giá trị ra trình duyệt 3
2.3 Biến, hằng, chuỗi và các giá trị 3
2.4 Kiểu dữ liệu trong PHP 3
2.5 Các toán tử trong PHP 3
2.6 Các biểu thức cơ bản trong PHP 3
3 Hàm trong PHP 3
3.1 Quy tắc xây dựng hàm 3
3.2 Biến toàn cục và biến cục bộ 3
3.3 Cookie và Session 3
3.4 Lớp và đối tượng 3
3.5 Tham chiếu 3
Chương 2: Tổng quan về MySQL 3
1 Hệ cơ sở dữ liệu MySQL 3
1.1 Giới thiệu về MySQL 3
1.2 Các đặc tính của MySQL 3
2 Các câu lệnh được sử dụng trong MySQL 3
2.1 Tạo cơ sở dữ liệu và bảng 3
2.2 Các câu lệnh thêm, sửa, xóa dữ liệu 3
2.3 Truy xuất dữ liệu với câu lệnh SELECT 3
3 Kết hợp PHP và MySQL trong ứng dụng Website 3
3.1 Kết nối CSDL 3
3.2 Lựa chọn CSDL 3
3.3 Thực thi câu lệnh truy vấn 3
3.4 Lấy dữ liệu từ bảng vào mảng 3
Trang 33.5 Đóng kết nối CSDL 3
Chương 3: Joomla và ứng dụng mô hình MVC Joomla 3
1 Tổng quan về Joomla 3
1.1 Giới thiệu về Joomla 3
1.2 Kiến trúc Joomla 3
1.3 Tổ chức thư mục trong Joomla 3
1.4 Quản lý bài viết trong Joomla 3
1.5 Quản lý menu trong Joomla 3
1.6 Quản lý Templates trong Joomla 3
1.7 Quản lý ngôn ngữ 3
1.8 Quản lý Module 3
1.9 Quản lý Component 3
2 Thành phần mở rộng trong Joomla 3
2.1 Stalker_ Module mạng xã hội 3
2.2 Acajoom_Gửi thư theo danh sách 3
2.3 Community_ Component mạng xã hội 3
2.4 Expose Flash Gallery_Tạo album hình ảnh 3
2.5 Virtuemart_Bán hàng trực tuyến 3
2.6 JComments_Module truyền thông 3
2.7 Jumi_Nền tảng cho các module 3
2.8 Phoca Google Adsense Easy_Module Google Adsense 3
2.9 Joomla Pach_Sao lưu trang web 3
2.10 JCE_Trình biên tập WYSIWYG 3
3 Ứng dụng mô hình MVC Joomla 3
3.1 MVC là gì? 3
3.2 Kiến trúc của mô hình MVC 3
3.3 Sự tương tác trong MVC 3
3.3 Cấu trúc tổ chức thư mục của MVC component 3
II PHÂN TÍCH THIẾT KẾ HỆ THỐNG 3
Chương 1: Khảo sát, xác định yêu cầu và phân tích hệ thống 3
1 Khảo sát hệ thống 3
2 Xác định yêu cầu hệ thống 3
3 Phân tích yêu cầu hệ thống 3
Chương 2: Phân tích thiết kế hệ thống theo UML 3
Trang 41 Các chức năng chính của hệ thống 3
1.1 Quản trị hệ thống 3
1.2 Cập nhật 3
1.3 Quản lý 3
1.4 Tìm kiếm 3
1.5 Thống kê 3
2 Các chức năng đã có trong Joomla 3
3 Các chức năng cần có cho “Website tin tức của trường ĐHSPKT Hưng Yên” 3
4 Biểu đồ usercase 3
4.1 Danh sách các Actor 3
4.2 Danh sách các Usercase 3
4.3 Vẽ biểu đồ Usercase 3
4.3.1 Usercase hệ thống 3
4.3.2 Usercase quản trị hệ thống 3
4.3.3 Usercase cập nhật 3
4.3.4 Usercase quản lý 3
4.3.5 Usercase Thống kê 3
5 Biểu đồ tuần tự 3
5.1 Biểu đồ tuần tự cho chức năng hệ thống 3
5.2 Biểu đồ tuần tự cho chức năng cập nhật 3
5.2.1 Biểu đồ tuần tự cho chức năng cập nhật tin tức, chuyên mục, banner 3
5.2.2 Biểu đồ tuần tự cho chức năng cập nhật phản hồi 3
5.3 Biểu đồ tuần tự cho chức năng quản lý 3
5.3.1 Biểu đồ tuần tự cho chức năng quản lý giảng viên, điểm cho sinh viên 3
5.3.2 Biểu đồ tuần tự cho chức năng quản lý văn bản, tài liệu học và phần mềm,lịch công tác, thời gian làm việc 3
5.4 Biểu đồ tuần tự cho chức năng tìm kiếm 3
5.5 Biểu đồ tuần tự cho chức năng thống kê 3
6 Biểu đồ lớp 3
6.1 Danh sách các lớp đã có trong joomla 3
6.1.1 Lớp “User”_Người dùng 3
6.1.2 Lớp “UserGroup”_Nhóm 3
6.1.3 Lớp “User_ UserGroup”_Người dùng- nhóm 3
6.1.4 Lớp “Banner”_ Banner 3
Trang 56.1.5 Lớp “Categories”_ Chuyên mục 3
6.1.6 Lớp “Content”_Nội dung tin tức 3
6.1.7 Lớp “Content_Frontpage”_Nội dung trang đầu tin tức 3
6.1.8 Lớp “Content_Rating”_đánh giá tin tức 3
6.1.9 Lớp “Newfeeds”-phản hồi 3
6.1.10 Lớp “Menu”-Menu 3
6.2 Danh sách các lớp mới có trong Website 3
6.2.1 Lớp “Text”_văn bản 3
6.2.2 Lớp “Books”_Tài liệu học 3
6.2.3 Lớp “BookType”_Loại tài liệu học 3
6.2.4 Lớp “Software”_Phần mềm 3
6.2.5 Lớp “Staff”-Cán bộ, giảng viên 3
6.2.6 Lớp “Score”-Điểm 3
6.2.7 Lớp “Schedule”-Lịch công tác 3
6.2.8 Lớp “Timetable”-thời gian làm việc 3
6.3 Biểu đồ lớp tổng quát 3
Chương 3: Phân tích thiết kế Cơ sở dữ liệu 3
Chương 4: Phân tích thiết kế giao diện 3
4.1 Giao diện trang chủ 3
4.2 Giao diện module hiển thị các hình ảnh nổi bật 3
4.3 Giao diện module chứa các menu chính 3
4.4 Giao diện module tin gần đây 3
4.5 Giao diện trang module liên kết với các trang web tin tức khac 3
4.6 Giao diện module chứa video 3
4.7 Giao diện module chứa các mục chính của trang tin tức 3
4.8 Giao diện module chứa các liên kết với trường 3
PHẦN III: KẾT LUẬN 3
1 Thực nghiệm 3
2 Kết quả đạt được của đề tài 3
3 Hạn chế 3
4 Hướng phát triển 3
Trang 6PHẦN IV: TÀI LIỆU THAM KHẢO 3
Trang 7DANH MỤC CÁC BẢN
BẢNG 1: KIỂU DỮ LIỆU TRONG PHP 3
BẢNG 2: CÁC TOÁN TỬ SỐ HỌC TRONG PHP 3
BẢNG 3: CÁC TOÁN TỬ SO SÁNH TRONG PHP 3
BẢNG 4: CÁC TOÁN TỬ LOGIC TRONG PHP 3
BẢNG 5: CÁC TOÁN TỬ KẾT HỢP TRONG PHP 3
BẢNG 6: DANH SÁCH CÁC ACTOR 3
BẢNG 7: DANH SÁCH CÁC USERCASE 3
BẢNG 8: ĐẶC TẢ USERCASE QUẢN LÝ NGƯỜI DÙNG 3
BẢNG 9: ĐẶC TẢ USERCASE QUẢN LÝ NHÓM 3
BẢNG 10: ĐẶC TẢ USERCASE QUẢN LÝ CHUYÊN MỤC 3
BẢNG 11: ĐẶC TẢ USECASE QUẢN LÝ BÀI VIẾT 3
BẢNG 12 : ĐẶC TẢ USERCASE QUẢN LÝ BANNER 3
BẢNG 13 : ĐẶC TẢ USERCASE CẬP NHẬT PHẢN HỒI 3
BẢNG 14: ĐẶC TẢ USERCASE QUẢN LÝ VĂN BẢN 3
Trang 8BẢNG 15: ĐẶC TẢ USERCASE QUẢN LÝ TÀI LIỆU HỌC 3
BẢNG 16: ĐẶC TẢ USERCASE QUẢN LÝ PHẦN MỀM 3
BẢNG 17: ĐẶC TẢ USERCASE QUẢN LÝ LỊCH CÔNG TÁC 3
BẢNG 18: ĐẶC TẢ USERCASE QUẢN LÝ THỜI GIAN LÀM VIỆC 3
BẢNG 19: ĐẶC TẢ USERCASE QUẢN LÝ ĐIỂM CHO SINH VIÊN 3
BẢNG 20: ĐẶC TẢ USERCASE QUẢN LÝ CÁN BỘ 3
BẢNG 21: ĐẶC TẢ USERCASE THỐNG KÊ 3
BẢNG 22:DANH SÁCH THUỘC TÍNH BẢNG “USER” 3
BẢNG 23:DANH SÁCH PHƯƠNG THỨC BẢNG “USER” 3
BẢNG 24:DANH SÁCH THUỘC TÍNH BẢNG “USERGROUP” 3
BẢNG 25:DANH SÁCH PHƯƠNG THỨC BẢNG “USERGROUP” 3
BẢNG 26:DANH SÁCH THUỘC TÍNH BẢNG “USER_ USERGROUP” 3
BẢNG 27:DANH SÁCH THUỘC TÍNH BẢNG “BANNER” 3
BẢNG 28:DANH SÁCH PHƯƠNG THỨC BẢNG “BANNER” 3
BẢNG 29:DANH SÁCH THUỘC TÍNH BẢNG “CATEGORIES” 3
BẢNG 30:DANH SÁCH PHƯƠNG THỨC BẢNG “CATEGORIES” 3
BẢNG 31:DANH SÁCH THUỘC TÍNH BẢNG “CONTENT” 3
Trang 9BẢNG 32:DANH SÁCH PHƯƠNG THỨC BẢNG “CONTENT” 3
BẢNG 33: DANH SÁCH THUỘC TÍNH BẢNG “CONTENT_FRONTPAGE” 3
BẢNG 34:DANH SÁCH PHƯƠNG THỨC BẢNG “CONTENT_FRONTPAGE” 3
BẢNG 37:DANH SÁCH THUỘC TÍNH BẢNG “NEWFEEDS” 3
BẢNG 38:DANH SÁCH PHƯƠNG THỨC BẢNG “NEWFEEDS” 3
BẢNG 47:DANH SÁCH THUỘC TÍNH BẢNG “SOFTWARE” 3
BẢNG 48:DANH SÁCH PHƯƠNG THỨC BẢNG “SOFTWARE” 3
BẢNG 49:DANH SÁCH THUỘC TÍNH BẢNG “STAFF” 3
BẢNG 50:DANH SÁCH PHƯƠNG THỨC BẢNG “STAFF” 3
BẢNG 51:DANH SÁCH THUỘC TÍNH BẢNG “SCORE” 3
BẢNG 52:DANH SÁCH PHƯƠNG THỨC BẢNG “SCORE” 3
BẢNG 53:DANH SÁCH THUỘC TÍNH BẢNG “SCHEDULE” 3
BẢNG 54:DANH SÁCH PHƯƠNG THỨC BẢNG “SCHEDULE” 3
BẢNG 55:DANH SÁCH THUỘC TÍNH BẢNG “TIMETABLE” 3
BẢNG 56:DANH SÁCH PHƯƠNG THỨC BẢNG “TIMETABLE” 3
BẢNG 57: THIẾT KẾ CƠ SỞ DỮ LIỆU 3
Trang 10DANH MỤC CÁC HÌNH V
HÌNH 1: KIẾN TRÚC CỦA PHP 3
HÌNH 2: KIẾN TRÚC JOOMLA 3
HÌNH 3: TỔ CHỨC CÂY THƯ MỤC TRONG JOOMLA 3
HÌNH 4: HÌNH ẢNH CATEGORY MANAGER TRONG JOOMLA 3
HÌNH 5: HÌNH ẢNH ARTICLE MANAGER TRONG JOOMLA 3
HÌNH 6: HÌNH ẢNH MENU TRONG JOOMLA 3
HÌNH 7: HÌNH ẢNH QUẢN LÝ TEMPLATE TRONG JOOMLA 3
HÌNH 8: HÌNH ẢNH QUẢN TRỊ CÁC MODULE TRONG JOOMLA 3
HÌNH 9: HÌNH ẢNH QUẢN LÝ COMPONENT TRONG JOOMLA 3
HÌNH 10: HÌNH ẢNH CÁC COMPONENT MẶC ĐỊNH TRONG JOOMLA 3
HÌNH 11: STALKER_MODULE MẠNG XÃ HỘI 3
HÌNH 12: ACAJOOM_GỬI THƯ THEO DANH SÁCH 3
HÌNH 13: COMMUNITY_COMPONENT MẠNG XÃ HỘI 3
HÌNH 14: EXPOSE FLASH GALLERY_TẠO ALBUM HÌNH ẢNH 3
Trang 11HÌNH 15: VIRTUEMART_BÁN HÀNG TRỰC TUYẾN 3
HÌNH 16: JCOMMENT_MODULE TRUYỀN THÔNG 3
HÌNH 17: JUMI_NỀN TẢNG CHO CÁC MODULE 3
HÌNH 18: PHOCA GOOGLE ADSENSE EASY_ MODULE GOOGLE ADSENSE 3
HÌNH 19: JOOMLA PACH_SAO LƯU TRANG WEB 3
HÌNH 20:JCE_TRÌNH BIÊN TẬP WYSIWYG 3
HÌNH 21: LỚP VIEW 3
HÌNH 22: KIẾN TRÚC MÔ HÌNH MVC 3
HÌNH 23: TƯƠNG TÁC TRONG MÔ HÌNH MVC 3
HÌNH 24: VÍ DỤ VỀ COMPONENT ĐƠN GIẢN 3
HÌNH 25: BIỂU ĐỒ USERCASE HỆ THỐNG 3
HÌNH 26: BIỂU ĐỒ USECASE QUẢN TRỊ HỆ THỐNG 3
HÌNH 27: BIỂU ĐỒ PHÂN RÃ CHO CHỨC NĂNG USECASE QUẢN LÝ NGƯỜI DÙNG 3
HÌNH 28: BIỂU ĐỒ PHÂN RÃ CHO CHỨC NĂNG QUẢN LÝ NHÓM QUYỀN 3
HÌNH 29: BIỂU ĐỒ USECASE CHO CHỨC NĂNG CẬP NHẬT 3
HÌNH 30: BIỂU ĐỒ PHÂN RÃ CHỨC NĂNG CHO USERCASE “CẬP NHẬT CHUYÊN MỤC” 3
Trang 12HÌNH 31: BIỂU ĐỒ PHÂN RÃ CHỨC NĂNG CHO USERCASE “CẬP NHẬT BÀI VIẾT” 3
HÌNH 32: BIỂU ĐỒ PHÂN RÃ CHỨC NĂNG CHO USERCASE “CẬP NHẬT BANNER” 3
HÌNH 33: BIỂU ĐỒ PHÂN RÃ CHO USECASE CẬP NHẬT PHẢN HỒI 3
HÌNH 34 BIỂU ĐỒ USECASE CHO CHỨC NĂNG QUẢN LÝ 3
HÌNH 35:BIỂU ĐỒ PHÂN RÃ CHỨC NĂNG CHO USERCASE QUẢN LÝ VĂN BẢN 3
HÌNH 36:BIỂU ĐỒ PHÂN RÃ CHỨC NĂNG CHO USERCASE QUẢN LÝ TÀI LIỆU HỌC3 HÌNH 37:BIỂU ĐỒ PHÂN RÃ CHỨC NĂNG CHO USERCASE QUẢN LÝ PHẦN MỀM 3
HÌNH 38: BIỂU ĐỒ PHÂN RÃ CHO CHỨC NĂNG USECASE QUẢN LÝ CÔNG TÁC CHO CÁN BỘ, GIẢNG VIÊN 3
HÌNH 39: BIỂU ĐỒ PHÂN RÃ CHO CHỨC NĂNG USECASE QUẢN LÝ THỜI GIAN LÀM VIỆC 3
HÌNH 40: BIỂU ĐỒ PHÂN RÃ CHO CHỨC NĂNG USECASE QUẢN LÝ ĐIỂM 3
HÌNH 41:BIỂU ĐỒ PHÂN RÃ CHỨC NĂNG CHO USERCASE QUẢN LÝ CÁN BỘ 3
HÌNH 42:BIỂU ĐỒ USERCASE THỐNG KÊ 3
HÌNH 43: BIỂU ĐỒ TUẦN TỰ CHO CHỨC NĂNG HỆ THỐNG 3
HÌNH 44: BIỂU ĐỒ TUẦN TỰ CHO CHỨC NĂNG CẬP NHẬT TIN TỨC, CHUYÊN MỤC, BANNER 3
HÌNH 45: BIỂU ĐỒ TUẦN TỰ CHO CHỨC NĂNG CẬP NHẬT Ý KIẾN PHẢN HỒI 3
Trang 13HÌNH 46: BIỂU ĐỒ TUẦN TỰ CHO CHỨC NĂNG QUẢN LÝ GIẢNG VIÊN 3
HÌNH 47: BIỂU ĐỒ TUẦN TỰ CHO CHỨC NĂNG QUẢN LÝ VĂN BẢN, TÀI LIỆU HỌC, PHẦN MỀM, LỊCH CÔNG TÁC VÀ THỜI GIAN LÀM VIỆC 3
HÌNH 48: BIỂU ĐỒ TUẦN TỰ TÌM KIẾM 3
HÌNH 49: BIỂU ĐỒ TUẦN TỰ THỐNG KÊ 3
HÌNH 51: GIAO DIỆN TRANG CHỦ 3
HÌNH 52: GIAO DIỆN MODULE HIỂN THỊ CÁC HÌNH ẢNH NỔI BẬT 3
HÌNH 53: GIAO DIỆN MODULE CHỨA CÁC MENU CHÍNH 3
HÌNH 54: GIAO DIỆN MODULE TIN TỨC GẦN ĐÂY 3
HÌNH 55: GIAO DIỆN MODULE TRANG LIÊN KẾT 3
HÌNH 56: GIAO DIỆN MODULE CHỨA VIDEO 3
HÌNH 57: GIAO DIỆN SAU KHI CLICK VÀO VIDEO 3
HÌNH 58: GIAO DIỆN MODULE CHỨA CÁC MỤC CHÍNH CỦA TRANG TIN TỨC 3
HÌNH 59: GIAO DIỆN MODULE CHỨA CÁC LIÊN KẾT VỚI TRƯỜNG 3
Trang 14LỜI CẢM ƠN
Sau thời gian thực hiện làm đề tàiđến nay nhóm đã hoàn thành đề tài của mình Để cóđược kết quả như hôm nay, nhóm thực hiện đề tài đã nhận được rất nhiều sự quan tâm,giúp đỡ và chỉ đạo nhiệt tình của các thầy, cô trong khoa công nghệ thông tin
Đặc biệt nhóm thực hiện đề tài xin gửi lời cảm ơn chân thành nhất tới thầy “Lê Quang Lợi” Thầy là người đã tận tình chỉ bảo, chia sẻ cho nhóm những kiến thức bổ ích
hướng dẫn động viên trong suốt thời gian qua, tạo mọi điều kiện tốt nhất cho nhóm trongquá trình thực hiện
Mặc dù nhóm thực hiện đề tài đã rất cố gắng trong quá trình làm đề tài song đề tài củanhóm không thể tránh khỏi những thiếu sót, hạn chế Nhóm thực hiện đề tài rất mongnhận được sự đóng góp chân thành từ các thầy, cô và các bạn để đề tài của nhóm đượchoàn thiện hơn
Nhóm thực hiện đề tài xin chân thành cảm ơn!
Hưng Yên, ngày 27 tháng 11 năm 2014
Sinh viên thực hiện
Nguyễn Thị Như
Nguyễn Thị Thuỷ
Trang 15PHẦN I: MỞ ĐẦU
1 Lý do chọn đề tài
Tìm hiểu công nghệ là hành trang tốt nhất để chuẩn bị kiến thức cho chúng em saukhi ra trường Joomla được viết bằng ngôn ngữ PHP, kết nối cơ sở dữ liệu MYSQLcho phép người sử dụng có thể xuất bản nội dung của họ lên Internet Ứng dụngcủa Joomla là tạo ra giao diện thân thiện, hiệu ứng đẹp cho các trang web Để phục
vụ quá trình nghiên cứu và phát triển mô hình MVC Joomla nhóm đã ứng dụng mô
hình này vào quá trình xây dựng đề tài : “Nghiên cứu Joomla và xây dựng website tin tức khoa công nghệ thông tin theo mô hình MVC Joomla”.
Qua quá trình tìm hiểu chúng em đã hoàn thành bản báo cáo với nội dung sau:Phần I: Mở đầu
Phần II: Nội dung
I Tìm hiểu công nghệ
Chương 1: Tổng quan về PHP
Chương 2: Tìm hiểu về MySQL
Chương 3:Joomla và ứng dụng MVC trong Joomla
II Phân tích thiết kế hệ thống
Chương 1: Khảo sát, xác định yêu cầu và phân tích hệ thống
Chương 2: Phân tích thiết kế hệ thống theo UML
Chương 3: Phân tích thiết kế CSDL
Chương 4: Thiết kế và mô tả giao diện của hệ thốngPhần III: Kết luận
Phần IV: Tài liệu tham khảo
Trang 162 Đối tượng nghiên cứu
Ngôn ngữ lập trình PHP, ứng dụng mô hình MVC Joomla, hệ cơ sở dữliệuMySQL
Website Tin tức của khoa CNTT trường Đại học sư phạm kĩ thuật Hưng Yên
Công cụ xây dựng phần mềm: Visual Studio 2008, WampServer2.0c, Joomla 1.6.3
3 Giới hạn và phạm vi nghiên cứu
Tìm hiểu ngôn ngữ lập trìnhPHP ứng dụng MVC Joomla và xây dựng website tin tứckhoa CNTT trường Đại học sư phạm kĩ thuật Hưng Yên
4 Mục đích nghiên cứu
Xây dựng tài liệu giúp tìm hiểu về ngôn ngữ lập trình PHP ứng dụng MVC Joomla
Xây dựngWebsite tin tức khoa CNTT trường Đại học sư phạm kĩ thuật Hưng Yên
5 Nhiệm vụ nghiên cứu
Tìm hiểu và nghiên cứu ngôn ngữ lập trình PHP, Joomla và mô hình MVC Joomla,
6 Phương pháp nghiên cứu
Tìm hiểu hết tổng hợp kiến thức chung của PHP, MySQL, Joomla
Nghiên cứu sâu vào những kiến thức cụ thể về Joomla và ứng dụng MVC Joomla
để xây dựng Website tin tức khoa CNT
7 Ý nghĩa lý luận và thực tiễn của đề tài
Qua việc tìm hiểu đã giúp em biết thêm kiến thức một ngôn ngữ lập trình mới vớinhiều tính năng nổi trội để xây dựng một trang Web
Xây dựng website tin tức khoa công nghệ thông tin trường ĐHSPKT Hưng Yên
Trang 17Đề tài này sẽ tiếp tục phát triển lên đồ án tốt nghiệp.
PHẦN II: NỘI DUNG
Chương 1: Tổng quan về lập trình PHP cơ bản
1 Tổng quan về PHP
I.1 Giới thiệu PHP
PHPviết tắt của từ Personal Home Page
PHP là một ngôn ngữ lập trình kịch bản trên Server được dùng để phát triển các ứngdụng viết cho máy chủ, mã nguồn mở
Cú pháp của ngôn ngữ lập trình PHP giống cú pháp của C và Java
I.2 Đặc điểm của PHP trong lập trình web
Tốc độ nhanh, dễ sử dụng: PHP cung cấp các tính năng mạnh mẽ để thực hiện ứngdụng Web một cách nhanh chóng
Chạy trên nhiều điều hành: PHP có thể chạy trên nhiều điều hành như:WindowsNT/2000/2003, Unix với sự hỗ trợ của IIS và Apache, Netscape, Roxen…
Truy cập bất kì loại CSDL nào hiện nay như: SQL Server, Ms Access, MySQL,mSQL, Oracel, PostgreSQL, InterBase, Sysbase
Luôn được cải tiến và cập nhật: PHP đã được cải tiến từ PHP đầu tiên năm 1995đến nay đã cho ra đời đến PHP 6 PHP4 được phổ biến rộng rãi, nó giúp cho việc bổsung số lượng lớn các hàm chức năng một cách dễ dàng
Trang 18I.3 Quy trình hoạt động
Cách 3: Cú pháp giống với ASP: <% Mã lệnh PHP %>
Cách 4: Cú pháp bắt đầu bằng script: <script language=php>
2.2 Xuất giá trị ra trình duyệt
Để xuất dữ liệu ra trình duyệt chúng ta có những dòng cú pháp sau :
Echo "Thông tin";
Printf "Thông tin";
Trang 19Trong đó thông tin bao gồm : biến, chuỗi, hoặc lệnh HTML ….
Ví dụ minh họa:
<?php
Echo “Hello word”
Printf “<br><font color=red> Xin chào </font>”;
Một biến là hợp lệ khi thỏa mãn các yếu tố :
Tên của biến phải bắt đầu bằng dấu gạch dưới và theo sau là các ký tự
Tên của biến không được phép trùng với các từ khóa của PHP
Một số biến đã được tạo sẵn
Argv: Mảng tham số truyền cho script Khi đoạn script chạy bằng dòng lệnh tham
số này sẽ được dùng giống như C để truy nhập các tham số trên dòng lệnh
Argc : số các tham số được truyền Dùnggiống với Argv;
PHP_SELF : tên của đoạn mã script đang thực hiện Nếu PHP đang được chạy từdòng lệnh thì tham số này không có giá trị
HTTP_COOKIE_VARS: một mảng các giá trị được truyền tới script hiện tạibằng HTTP cookie Chỉ có tác dụng nếu "track_vars" trong cấu hình được đặthoặc chỉ dẫn <?php_track_vars?>
Trang 20 HTTP_GET_VARS: Mảng các giá trị truyền tới script thông qua phương thứcHTTP GET Chỉ có tác dụng nếu "track_vars" trong cấu hình được đặt hoặc chỉdẫn <?php_track_vars?>.
b Hằng trong PHP
Hằng trong PHP được định nghĩa bởi hàm define theo cú pháp:
define (string tên_hằng, giá_trị_hằng ).
Cũng giống với biến, hằng được xem là hợp lệ thì chúng phải đáp ứng 1 số yếu tố :
Hằng không có dấu "$" ở trước tên
Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh
Hằng chỉ được phép gán giá trị duy nhất 1 lần
Hằng thường viết bằng chữ in để phân biệt với biến
Trang 21 PHP coi 1 biến có một giới hạn Để xác định một biến tòan cục (global) có tác dụngtrong một hàm , ta cần khai báo lại Nếu không giá trị của biến sẽ được coi như làcục bộ trong hàm
e Các giá trị bên ngòai phạm vi PHP
HTML Form : khi 1 form gắn với 1 file php qua phương thức POST
VD:
<form action="foo.php3" method="post">
Name: <input type="text" name="name">
<input type="submit">
</form>
PHP sẽ tạo 1 biến $name bao gồm mọi giá trị trong truờng Name của Form PHP cóthể hiểu được một mảng một chiều gồm các giá trị trong 1 form Vì vậy, bạn có thểnhóm những giá trị liên quan lại với nhau hoặc sử dụng đặc tính này để nhận các giátrị từ 1 đầu vào tuỳ chọn.(multiselect input)
2.4 Kiểu dữ liệu trong PHP
Các kiểu dữ liệu khác nhau chiếm các lượng bộ nhớ khác nhau và có thể được xử lýtheo cách khác nhau khi chúng được theo tác trong 1 script
Trong PHP chúng ta có 6 kiểu dữ liệu chính như sau :
Trang 22Kiểu dữ liệu Mô tả Ví dụ
>= Lớn hơn hoặc bằng Vế trái lớn hơn hoặc bằng vế phải $a>=5
Trang 23<= Nhỏ hơn hoặc bằng Vế trái nhỏ hơn hoặc bằng vế phải $a<=5
Bảng 3: các toán tử so sánh trong PHP
d Toán tử logic
Toán tử logic là các tổ hợp các giá trị boolean
Ví dụ: toán tử or trở về true nếu toán tử trái hoặc toán tử phải là true
Ta có bảng các toán tử như sau:
|| Or Vế trái hoặc vế phải là true True || false True
Or Or Vế trái hoặc vế phải là true True || false TrueXor Xor Vế trái hoặc vế phải là true nhưng
&& And Vế trái và vế phải là true True && false FalseAnd And Vế trái và vế phải là true True && false False
Bảng 4: Các toán tử logic trong PHP
Trang 24e Toán tử kết hợp:
Khi tạo mã PHP, ta thấy cần phải tăng hoặc giảm lượng biến một số nguyên nào đó.Điều này sẽ thực hiện khi ta đếm 1 giá trị nào đó trong vòng lặp
Bảng 5: Các toán tử kết hợp trong PHP
2.6 Các biểu thức cơ bản trong PHP
a Biểu thức điều kiện
Là biểu thức dùng kiểm tra 1 sự kiện Nếu chúng thỏa điều kiện đó thì sẽ thực thimột hành động Ngược lại sẽ là một hành động khác
Trang 25 Phép lặp này yêu cầu phải thỏa mãn điều kiện thì mới thực thi được vòng lặp
Cú pháp:While(điều kiện){ Khối lệnh-công việc}
Trang 26 Phép lặp này sẽ thực thi hành động ít nhất là một lần Sau đó mới tiến hành kiểmtra điều kiện.
Cú pháp:Do {Khối lệnh-công việc}while(điều kiện)
Trang 27d Biểu thức switch case:
Là biểu thức sử dụng để giảm thiểu quá trình xử lý dữ liệu nếu có quá nhiều phéptoán if else
Trang 28case 1: echo “day la gia tri $a”; break;
case 2: echo “day la gia tri $a”; break;
case 3: echo “day la gia tri $a”; break;
case 4: echo “<font color=red> day la gia tri $a</font>”; break;
default: echo “khong co gia tri phu hop”; break;
Các câu lệnh được quyền gọi bất kì hàm nào đã được khai báo và định nghĩa
3.2 Biến toàn cục và biến cục bộ
Các biến được sử dụng trong than của hàm là biến cục bộ Biến trong than hàmkhông làm thay đổi giá trị của biến ở ngoài hàm Muốn làm thay đổ giá trị của biến
ngoài ta cần khai báo global trước biến đó trong than hàm.
VD:
Sposition = “m”;
Function change_pos()
{
Trang 29 Cookie đượ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ỗibrowser quản lý và lưu trữ cookie theo cách riêng của mình, cho nên 2 browsercùng truy cập vào 1 website sẽ nhận được 2 cookie khác nhau
b Thiết lập cookie:
Cú pháp: Setcookie("tên cookie","giá trị", thời gian sống)
Trong đó: Tên cookie là tên mà chúng ta đặt cho phiên làm việc
Giá trị là thông số của tên cookie
Ví dụ: Setcookie("username","admin", time() +3600)
Chú ý: Kịch bản cookie đặt trên mọi giá trị trả vềgồm thẻ HTML và lệnh echo
c Sử dụng cookie
Trang 30 Để 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ứ
Trang 31 Ví dụ: Tiếp tục tạo trang cookie3.php với nội dung sau:
Trang 32 Để 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 đó
Với “Name” là tên mà chúng ta sử dụng hàm session_register("name") để khai báo
Ví dụ: Tạo trang session.php với nội dung sau:
Trang 33 Để 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ụ: Tạo trang session3.php với nội dung sau:
Trang 343.3.3 Sử dụng kết hợp cookie với session
Để xem nội dung của các cookie đã được thiết lập bởi session ta sử dụng hàm:
Session_get_cookie_params()
Để thiết lập các tham số cho session cookie ta dung hàm:
Void session_set_cookie_params(int lifetime[, string path[, string domain]])
function remove_item ($artnr, $num)
{if ($this->items[$artnr] > $num)
Trang 35 Lớp Cart là một kiểu dữ liệu, vì vậy bạn có thể tạo một biến có kiểu này với toán tử
VD:
Trang 36Chương 2: Tổng quan về MySQL
1 Hệ cơ sở dữ liệu MySQL
1.1 Giới thiệu về MySQL
MySQL là hệ quản trị cõ sở dữ liệu mã nguồn mở cho phép người dùng có thể thaotác với cơ sở dữ liệu
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 và có tính bảo mật
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác
Trang 371.2 Các đặc tính của MySQL
Linh hoạt: Máy chủ cơ sở dữ liệu MySQL có sức chứa với dung lượng chỉ 1MB đểchạy các kho dữ liệu đồ sộ lên đến hàng terabytes thông tin Sự linh hoạt vềflatform là một đặc tính lớn của MySQL với tất cả các phiên bản của Linux, Unix,
và Windows đang được hỗ trợ
Thực thi cao: Kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ liệu cấuhình máy chủ cho các ứng dụng đặc thù MySQL có các tiện ích tải tốc độ cao, đặcbiệt bộ nhớ caches, và các cơ chế xử lý nâng cao khác
Tính toàn vẹn của dữ liệu được bảo đảm trong suốt quá trình server có hiệu lực, cácmức giao dịch độc lập được chuyên môn hóa
Chế độ bảo mật dữ liệu mạnh:Trong việc xác nhận truy cập cơ sở dữ liệu, MySQLcung cấp các kĩ thuật mạnh mà chỉ có người sử dụng đã được xác nhận mới có thểtruy cập được vào server cơ sở dữ liệu
Dễ dàng quản lý: Khi đã được cài đặt, tính năng tự quản lý như tự động mở rộngkhông gian, tự khởi động lại, và cấu hình động sẵn sàng cho người quản trị cơ sở dữliệu làm việc MySQL cũng cung cấp một bộ hoàn thiện các công cụ quản lý đồ họacho phép một DBA quản lý, sửa chữa, và điều khiển hoạt động của nhiều serverMySQL từ một máy trạm đơn
2 Các câu lệnh được sử dụng trong MySQL
2.1 Tạo cơ sở dữ liệu và bảng
Tạo cơ sở dữ liệu
CREATE DATABASE Tên_CSDL
[CHARACTER SET<character set name>]
[COLLATE<collation name>]
Với: Character set: xác định bộ ký tự mặc định cho CSDL mới
COLLATE: xác định bộ collation
Trang 38Character set name: tên của một bộ mã bao gồm các ký tự, ký số, và biểutượng để lưu trữ các thông tin trong CSDL
Collation name: tên của bộ mã tùy theo từng khu vực dựa trên bộ mã
VD: CREATE DATABASE qlsvCHARACTER SET utf8
COLLATE utf8_unicode_ci
Cú pháp sử dụng CSDL: Use tên_database
Cú pháp thoát khỏi CSDL: Exit
Xóa CSDL bằng câu lệnh: DROP DATABASE TÊN_CSDL
Tạo bảng :
CREATE TABLE Tên_bảng(
Tên_cột_1 kiểu_dữ_liệu[(kích cỡ)][NOT NULL]
Tên_cột_2 kiểu_dữ_liệu[(kích cỡ)][NOT NULL])
Chú ý:-Tạo khóa chính: PRIMARY KEY (Các cột tham gia làm khóa chính)
-Tạo cột tự tăng giá trị :AUTO_INCREMENT
-Tạo bảng có dữ liệu duy nhất: UNIQUE (các cột có giá trị duy nhất)
Sửa cấu trúc bảng
Thêm cột
ALTER TABLE Tên_bảng ADD Tên_cột kiểu_dữ_liệu [(kích_cỡ)][…]
Chú ý: Cột thêm vào tên không được trùng với các cột đã có
Ví dụ: ALTER TABLE sinhvien ADD mota varchar(255)
Trang 39 Xóa cột
ALTER TABLE Tên_bảng
DROP COLUMN Tên_cột
Xóa bảng
DROP TABLE Tên_bảng
2.2 Các câu lệnh thêm, sửa, xóa dữ liệu
Thêm dữ liệu
INSERT INTO Tên_bảng [(tên các cột trong bảng)] VALUES (Danh_sách_các_giá_trị)
VD: INSERT INTO monhoc (‘mamh’ , ‘tenmh’)
VALUES ('3','Anh văn 1’), ('4','Đại số tuyến tính’)
Sửa dữ liệu
UPDATE Tên_bảng SET Tên_cột=Giá_trị(hoặc biểu thức)[, ]
Trang 40 Lấy dữ liệu có điều kiện
SELECT tên_các_cột FROM tên_các_bảng WHERE đk
Truy xuất dữ liệu có giới hạn:
SELECT tên_cột FROM Tên_bảng
WHERE điều kiện (có thể có where hoặc không)
LIMIT vị trí bắt đầu, số record muốn lấy ra
Truy xuất dữ liệu từ nhóm
SELECT tên_các_cột, hàm_thống_kê[astên]
FROM tên_các_bảng
GROUP BY tên_các_cột_nhóm
Chú ý: các câu lệnh có phân nhóm:
Max: hàm trả về giá trị lớn nhất theo nhóm
MIN: hàm trả về giá trị nhỏ nhất theo nhóm
AVG: hàm trả về giá trị trung bình theo nhóm trong câu lệnh truy vấn trên bảng
SUM: hàm trả về tổng các giá trị theo nhóm
COUNT: hàm trả về số lượng mẩu tin theo nhómtrong câu truy vấn trênbảng
3 Kết hợp PHP và MySQL trong ứng dụng Website
3.1 Kết nối CSDL
Cú pháp: mysql_connect(“hos”t,"user","pass")
Trong đó: host là chuỗi chứa tên (hoặc địa chỉ IP) của máy chủ cài đặt MySQL User:Tên của người sử dụng được phép kết nối vào bộ máy CSDL Pass: mật khẩu của người sử dụng để kết nối
Ta có thể dùng hàm if để kiểm tra xem có kết nối được tới MySQL hay không: