Xây dựng website đặt phòng khách sạn Xây dựng website đặt phòng khách sạn Xây dựng website đặt phòng khách sạn Xây dựng website đặt phòng khách sạn Xây dựng website đặt phòng khách sạn Xây dựng website đặt phòng khách sạn Xây dựng website đặt phòng khách sạn Xây dựng website đặt phòng khách sạn
Trang 1KHOA KỸ THUẬT - CÔNG NGHỆ THÔNG TIN
Chuyên ngành : Công nghệ thông tin
Hệ đào tạo : Liên Thông Chính quy
Quảng Bình, tháng 11 năm 2018
Trang 2và điều kiện cho em thực hiện đề tài này
Đặc biệt, em xin trân trọng bày tỏ lòng biết ơn sâu sắc tới giảng viên TS Hoàng Tuấn Nhã - Người đã trực tiếp hướng dẫn, giúp đỡ em tận tình trong suốt quá trình hình thành ý tưởng đến khi hoàn thành đề tài
Em xin chân thành cảm ơn các thầy giáo, cô giáo trong khoa Kỹ thuật - Công nghệ thông tin Trường Đại học Quảng Bình đã tạo mọi điều kiện thuận lợi giúp đỡ em trong suốt quá trình học tập và rèn luyện tại trường
Em xin bày tỏ lòng biết ơn vô hạn tới gia đình, người thân, bạn bè đã động viên, khích lệ, tạo mọi điều kiện thuận lợi nhất trong suốt quá trình học tập và nghiên cứu đề tài
Qua quá trình nghiên cứu thực hiện đề tài, bản thân em có những cố gắng nhất định, song do trình độ và thời gian có hạn nên đề tài không tránh khỏi những thiếu sót Vậy kính mong các thầy cô giáo và các bạn đóng góp ý kiến để đề tài của em được hoàn thiện hơn
Em xin chân thành cảm ơn!!!
Quảng Bình, ngày tháng năm 2018
Sinh viên
Phạm Đức Hiếu
Trang 31 Lý do chọn đề tài 8
2 Mục tiêu nghiên cứu 8
3 Đối tượng phạm vi, phương pháp nghiên cứu 9
4 Nội dung nghiên cứu 9
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 10
1.1 Tìm hiểu về ngôn ngữ lập trình PHP 10
1.1.1 Lịch sử phát triển của ngôn ngữ lập trình PHP 11
1.1.2 Tại sao ta sử dụng ngôn ngữ lập trình PHP? 16
1.2 Tìm hiểu về cơ sở dữ liệu MYSQL 16
1.2.2 Các kiểu dữ liệu trong cơ sở dữ liệu MYSQL 17
1.2.3 Các hàm hữu ích trong MYSQL 19
1.3 PHP và MYSQL 20
1.3.1 Các tính năng chính 20
1.3.2 Các tính năng khác 22
1.4 Tìm hiểu về HTML và CSS 23
1.5 Tìm hiểu về ngôn ngữ lập trình JAVASCRIPT 24
1.6 Tìm hiểu về WORDPRESS 25
1.6.2 Đặc điểm nổi bật của Wordpress 26
1.6.3 Lý do khiến chúng ta chọn Wordpress 27
1.7 Tìm hiểu về cách xây dựng plugin cho WordPress 28
1.7.1 Các kiến thức cần thiết 28
1.7.2 Các công cụ phát triển Wordpress 29
Trang 4CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 33
2.1 Khảo sát hiện trạng 33
2.1.1 Cơ cấu tổ chức 33
2.1.2 Quy trình đặt phòng khách sạn 34
2.1.3 Các website đặt phòng trực tuyến 35
2.2 Phân tích thiết kế hệ thống 39
2.2.1 Mô tả bài toán 39
2.2.3 Xây dựng cơ sở dữ liệu 49
CHƯƠNG 3: XÂY DỰNG WEBSITE 52
3.1 Các công cụ sử dụng trong quá trình xây dựng Website 52
3.2 Một số hình ảnh kết quả sau khi xây dựng website 53
3.2.1 Giao diện trang chủ 53
3.2.2 Chức năng đặt phòng khách sạn 56
3.2.3 Giao diện giới thiệu phòng 57
3.2.4 Giao diện tin tức website 58
3.3 Chức năng Admin 59
3.3.1 Quản lý danh sách phòng 59
3.3.2 Quản lý đặt phòng 59
3.3.3 Quản lý tin tức bài viết 60
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 60
1 Kết luận 60
2 Ứng dụng và hướng phát triển 61
Trang 6Hình 1.2: Cấu trúc thư mục và tập tin 30
Hình 1.3: Tên thư mục và tệp tin 31
Hình 1.4: Các tệp tin cần thiết 31
Hình 2.1: Sơ đồ cơ cấu tổ chức khách sạn 33
Hình 2.2: Website đặt phòng khách sạn trực tuyến Booking.com 36
Hình 2.3: Website đặt phòng khách sạn trực tuyến Travel.com.vn 37
Hình 2.4: Website đặt phòng trực tuyến Vntrip.vn 37
Hình 2.5: Website đặt phòng trực tuyến Agoda.com 38
Hình 2.6: Website đặt phòng trực tuyến Chudu24 39
Hình 2.7: Biểu đồ use case tổng quát 41
Hình 2.8: Biểu đồ đăng ký đặt phòng 42
Hình 2.9: Biểu đồ use case đặt phòng khách sạn 42
Hình 2.10: Biểu đồ use case đặt phòng trực tuyến qua website 43
Hình 2.11: Biểu đồ use case cập nhật thông tin khách sạn 44
Hình 2.12: Biểu đồ use case quản lý khách sạn 44
Hình 2.13: Biểu đồ use case quản lý bài viết tin tức 45
Hình 2.14: Biểu đồ use case user xem bài viết tin tức 45
Hình 2.15: Biểu đồ trình tự kiểm tra thông tin khách hàng 46
Hình 2.16: Biểu đồ trình tự thêm bài viết 47
Hình 2.17: Biểu đồ trình tự sửa bài viết 47
Hình 2.18: Biểu đồ trình tự xóa bài viết 48
Hình 2.19: Biểu đồ hoạt động cập nhật bài viết 48
Hình 2.20: Biểu đồ hoạt động xóa bài viết 49
Hình 2.21: Lược đồ liên kết dữ liệu 50
Hình 3.1: Giao diện trang chủ 56
Hình 3.2: Chức năng đặt phòng khách sạn 56
Trang 7Hình 3.5:Giao diện quản lý danh sách phòng 59 Hình 3.6: Giao diện quản lý đặt phòng 59 Hình 3.7: Gia diện quản lý tin tức bài viết 60
Trang 8xa lạ với mọi người Mặc dù để xây dựng một website đặt phòng trực tuyến ở nước
ta hiện nay không còn là mới mẻ nhưng rất thực tế khi đất nước đã và đang từng bước đổi mới và phát triển theo hướng công nghiệp 4.0, đây cũng là cơ hội lớn cho ngành thương mại điện tử Việt Nam phát triển ngày càng mạnh mẽ hơn
Đề tài “Xây dựng website đặt phòng khách sạn” rất thực tế và phù hợp với
tình hình hiện nay Việc xây dựng một website đặt phòng trực tuyến nhanh chóng với nhiều dịch vụ tiện ích và hoàn toàn miễn phí có thể quảng bá được hình ảnh khách sạn, tạo ra một cơ hội lớn thuận lợi cho mọi người tiết kiệm được thời gian đi lại và hoàn toàn thuận lợi cho tất cả mọi người
Đây có thể được coi là giải pháp tối ưu và thiết thực nhất đối với khách sạn ở nước ta hiện nay
2 Mục tiêu nghiên cứu
- Tiếp cận đến công nghệ lập trình web Wordpress trong thời đại công nghệ 4.0
- Hiểu rõ hơn về công nghệ Wordpress
- Biết được những tiềm năng, ứng dụng của công nghệ Wordpress trong công nghiệp 4.0
- Áp dụng công nghệ Wordpress vào thực tế
- Hiểu thêm về quy trình quản lý khách sạn
- Nắm bắt thêm quy trình đặt phòng trực tuyến
Trang 9SVTH: Phạm Đức Hiếu 9
3 Đối tượng phạm vi, phương pháp nghiên cứu
- Đối tượng nghiên cứu:
+ Công nghệ Wordpress
+ Ngôn ngữ PHP
+ Cơ sở dữ liệu MySQL
+ Khách sạn 3 sao, 4 sao, 5 sao, Resort
- Phương pháp nghiên cứu:
+ Khảo sát hiện trạng tại khách sạn Riverside
+ Thu thập các yêu cầu từ phía người dùng
+ Phân tích thiết kế hệ thống theo yêu cầu người dùng
+ Nghiên cứu các công cụ xây dựng hệ thống
+ Khảo sát thu thập thông tin từ các tài liệu và cơ sở dữ liệu có liên quan
+ Tiếp cận một số website đặt phòng khách sạn sẵn có
+ Đến trực tiếp các khách sạn có đặt phòng trực tuyến mà em đang cần tìm hiểu học hỏi thêm
4 Nội dung nghiên cứu
- Tìm hiểu tổng quan về công nghệ Wordpress
- Lợi ích của công nghệ Wordpress mang lại
- Hạn chế khi sử dụng công nghệ Wordpress
- Ứng dụng công nghệ Wordpress vào hệ thống website khách sạn thời đại công nghiệp 4.0
- Xây dựng được website tin tức và đặt phòng trực tuyến
Trang 10SVTH: Phạm Đức Hiếu 10
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tìm hiểu về ngôn ngữ lập trình PHP
PHP (viết tắt của "PHP: Hypertext Preprocessor") là một ngôn ngữ lập
trình kịch bản (scripting language)mã nguồn mở được sử dụng phổ biến để ra tạo các ứng dụng website chạy trên server PHP thích hợp với website và có thể dễ dàng nhúng vào trang HTML nhờ sử dụng cặp thẻ PHP <? php?> Nó được sử dụng để quản lý nội dung động, Database Do được tối ưu hóa chạy cho các ứng dụng website, đạt tốc độ nhanh, nhỏ gọn, cú pháp dễ code, dễ học và thời gian xây dựng một sản phẩm tương đối nhanh 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 website 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:
Trang 11Ngô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
1.1.1 Lịch sử phát triển của ngôn ngữ lập trình PHP
PHP/FI
PHP/FI do Rasmus Lerdorf tạo ra năm 1994, 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 Nó có các biến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTML nhúng Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và có phần thiếu nhất quán
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
Trang 12 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 đó Lý do chính
mà họ đã tạo ra phiên bản này là do họ nhận thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà họ đang xúc tiến trong một dự
án của trường đại học Trong một nỗ lực hợp tác và bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đã quyết định hợp tác và công
bố PHP 3.0 như là phiên bản thế hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0
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 mớ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 Các tính năng khác được giới thiệu trong PHP 3.0 gồm có hỗ trợ cú pháp hướng đối tượng và nhiều cú pháp ngôn ngữ nhất quán khác
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
Trang 13PHP 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
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 14 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 Một thảo luận trên Slashdot đã cho thấy việc phát triển PHP 5.0 có thể
đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng những bài phỏng vấn Zeev liên quan đến phiên bản này thì đã có mặt trên mạng Internet vào khoảng tháng 7 năm
2002 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 năm 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
Trang 15SVTH: Phạm Đức Hiếu 15
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 16SVTH: Phạm Đức Hiếu 16
Ngoài ra, một số framework khác cũng đã được phát triển nhằm hỗ trợ lập trình PHP ở cấp doanh nghiệp, trong đó đáng chú ý có thể kể đến là CodeIgniter,
CakePHP, Symfony, Seagull
1.1.2 Tại sao ta sử dụng ngôn ngữ lập trình PHP?
PHP chạy được trên mọi nền tảng khác nhau (Windows, Linux, Unix, Mac OS
X…)
PHP tương thích với hầu như tất cả các máy chủ sử dụng ngày nay (Apache, IIS,Nginx…)
PHP hỗ trợ một loạt các cơ sở dữ liệu như MySQL,SQL server, Oracle
PHP là mã nguồn miễn phí Có thể tải về từ nguồn PHP chính thức:
www.php.net
PHP là dễ dàng để tìm hiểu và chạy hiệu quả ở phía máy chủ
1.2 Tìm hiểu về cơ sở dữ liệu MYSQL
MySQL là một hệ quản trị cơ sở dữ liệu tự do mã nguồn mở phổ biến nhất thế giới hiện nay và được các nhà phát triển rất ưa chuộng để 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 Người dùng có thể tải về MySQL miễn phí từ trang chủ MySQL là 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 bổ trợ NodeJs, PHP, Perl, và nhiều ngôn ngữ khác,
1.2.1 Lý do chọn cơ sở dữ liệu MYSQL
Tốc độ: MySQL rất nhanh MySQL là cơ sở dữ liệu nhanh nhất mà bạn có
thể có
Trang 17SVTH: Phạm Đức Hiếu 17
Dễ sử dụng: MySQL có tính năng cao nhưng thực sự là một hệ thống cơ sở
dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn khác
Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ
chức Hỗ trợ ngôn ngữ truy vấn: MySQL hiểu SQL, là ngôn ngữ của sự chọn lựa cho tất cả các hệ thống cơ sở dữ liệu hiện đại
Năng lực: Nhiều client có thể truy cập đến server trong cùng một thời gian
Các client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời Có thể truy cập MySQL tương tác một vài giao diện để bạn có thể đưa vào các truy vấn và xem các kết quả: khách hàng yêu cầu, các trình duyệt Web…
Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ sở dữ
liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó bạn có thể chia sẽ dữ liệu của bạn với bất kỳ ai, bất kỳ nơi nào Nhưng MySQL kiểm soát quyền truy cập cho nên người mà không nên nhìn thấy dữ liệu của bạn thì không thể nhìn được
Tính linh động: MySQL chạy trên nhiều hệ thống UNIX MySQL chạy được
với mọi phần cứng từ các máy PC ở nhà cho đến các máy server
Sự phân phối rộng: MySQL rất dễ dàng đạt được, chỉ cần sử dụng trình duyệt web của bạn
Sự hỗ trợ: Bạn có thể tìm thấy các tài nguyên có sẵn mà MySQL hỗ trợ Cộng đồng
MySQL rất có trách nhiệm cao Họ trả lời các câu hỏi trên mailing list thường chỉ trong vài phút Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phục trong vài ngày, thậm chí có khi trong vài giờ và cách khắc phục đó sẽ ngay lập tức có sẵn trên Internet
1.2.2 Các kiểu dữ liệu trong cơ sở dữ liệu MYSQL
Kiểu số
INT: Lưu trữ một số nguyên có giá trị từ -2147483648 đến 2147483647 hoặc
0 đến 4294967295
Trang 18FLOAT(M,D): Lưu trữ một số thập phân loại nhỏ (Ví dụ: 567.25) Tham số
“size” dùng để xác định kích thước tối đa của phần nguyên (nằm bên trái dấu chấm) Tham số “d” dùng để xác định kích thước tối đa của phần thập phân (nằm bên phải dấu chấm)
DOUBLE(M,D): Lưu trữ một số thập phân loại lớn Tham số “size” dùng để
xác định kích thước tối đa của phần nguyên (nằm bên trái dấu chấm) Tham số “d” dùng để xác định kích thước tối đa của phần thập phân (nằm bên phải dấu chấm)
DECIMAL(M,D): Lưu trữ như một chuỗi, cho phép một dấu thập phân cố
định Tham số “size” dùng để xác định kích thước tối đa của phần nguyên (nằm bên trái dấu chấm) Tham số “d” dùng để xác định kích thước tối đa của phần thập phân (nằm bên phải dấu chấm)
Kiểu ngày tháng
DATE: Lưu trữ một ngày theo định dạng YYYY-MM-DD (Ví dụ:
2016-09-12 tức là lưu ngày 12 tháng 9 năm 2016)
DATETIME: Một tổ hợp Date và Time trong định dạng YYYY-MM-DD
HH:MM:SS, giữa 1000-01-01 00:00:00 và 9999-12-31 23:59:59
TIME: Lưu time trong định dạng HH:MM:SS
YEAR(M): Lưu trữ một năm theo định dạng hai số hoặc bốn số
Kiểu chuỗi
Trang 19SVTH: Phạm Đức Hiếu 19
CHAR(M): Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là 255 ký
tự
VARCHAR(M): Dùng để lưu trữ một chuỗi ký tự có chiều dài tối đa là
255 ký tự Nếu đặt “size” lớn hơn 255 thì nó sẽ chuyển sang kiểu TEXT
BLOB hoặc TEXT: Trường kiểu này có độ dài tối đa 65535 kí tự BLOBs là
viết tắt của "Binary Large Objects", và được sử dụng để lưu trữ một lượng lớn dữ liệu nhị phân như các bức ảnh hoặc các loại tập tin khác Với TEXT, trường cũng lưu trữ được một lượng lớn dữ liệu Điểm khác nhau giữa chúng là: khi sắp xếp và so sánh
dữ liệu đã lưu trữ thì với BLOBs là phân biệt kiểu chữ, còn với TEXT là không phân biệt kiểu chữ Bạn không phải xác định độ dài với BLOBs hoặc TEXT
TINYBLOB hoặc TINYTEXT: Một cột BLOB hoặc TEXT với độ dài tối đa
là 255 ký tự Bạn không cần xác định độ dài với TINYBLOB hoặc TINYTEXT
MEDIUMBLOB hoặc MEDIUMTEXT: Một cột BLOB hoặc TEXT với độ
dài tối đa là 16777215 ký tự Bạn không cần xác định độ dài với MEDIUMBLOB hoặc MEDIUMTEXT
LONGBLOB hoặc LONGTEXT: Một cột BLOB hoặc TEXT với độ dài tối
đa là 4294967295 ký tự Bạn không cần xác định độ dài với LONGBLOB hoặc LONGTEXT
ENUM: Khi định nghĩa một trường kiểu này, tức là, ta đã chỉ ra một danh sách các đối tượng mà trường phải nhận (có thể là Null)
1.2.3 Các hàm hữu ích trong MYSQL
Hàm COUNT: Hàm tập hợp COUNT trong MySQL được sử dụng để đếm số
hàng trong một bảng dữ liệu
Hàm MAX: Hàm tập hợp MAX trong MySQL cho phép chúng ta lựa chọn
giá trị lớn nhất (tối đa) trong một cột cụ thể
Trang 20SVTH: Phạm Đức Hiếu 20
Hàm MIN: Hàm tập hợp MIN trong MySQL cho phép chúng ta lựa chọn giá
trị nhỏ nhất (tối thiểu) trong một cột cụ thể
Hàm AVG: Hàm tập hợp AVG trong MySQL cho phép chúng ta lựa chọn giá
trị trung bình trong một cột cụ thể
Hàm SUM: Hàm tập hợp AVG trong MySQL cho phép chúng ta lựa chọn giá
trị trung bình trong một cột cụ thể
Hàm SQRT: Được sử dụng để tính căn bậc hai của một số đã cho
Hàm RAND: Được sử dụng để tạo một số ngẫu nhiên bởi sử dụng lệnh trong
MySQL
Hàm CONCAT: Được sử dụng để nối bất kỳ chuỗi nào trong bất kỳ lệnh
MySQL nào
Hàm xử lý DATE và Time: Danh sách đầy đủ các hàm liên quan tới Date và
Time trong MySQL
Hàm xử lý số: Danh sách đầy đủ các hàm cần thiết để thao tác với số trong
Linux/UNIX, IIS (Internet Information Services) Windows Sử dụng PHP và
MySQL chúng ta có thể tạo ra ứng dụng chéo nền (cross-platform), chẳng hạn có
thể vận hành máy chủ sở dữ liệu trên Linux và sử dụng ứng dụng trên Windows 1.3.1 Các tính năng chính
Sao lưu:
Trang 21SVTH: Phạm Đức Hiếu 21
Tạo các bản sao lưu của file và các CSDL, phục hồi file và CSDL trên máy chủ từ một bản sao lưu, ví dụ từ máy tính cá nhân của người dùng
Mail:
Quản lý các tài khoản
Tạo, xáo các tạo khoản POP3, thay đổi mật khẩu và định mức tài nguyên sử dụng
Cấu hình tự động hoặc hướng dẫn cấu hình bằng tay cho trình duyệt mail
Máy khách như Microsoft Outlook, Microsoft Outlook Express…
Hệ thống trả lời tự động, bộ lọc, danh sách từ chối Tạo, xóa hoặc thay đổi
Bộ lọc Spam Assassin
Thay đổi bản ghi MX đối với mỗi tên miền
FTP:
Tạo, xóa tài khoản FTP Thay đổi mật khẩu và thư mục có thể truy
cập với từng tài khoản
Quản lý truy cập nặc danh (anonymous access)
Quản lý phiên làm việc FTP
Thay đổi thông điệp hiển thị trên nhật ký FTP
Quản lý cơ sở dữ liệu MySQL & PostgreSQL
Tạo, xóa cơ sở dữ liệu
Tạo, xóa tài khoản truy cập cơ sở dữ liệu
Trình quản lý cơ sở dữ liệu PHPMyAdmin
Thống kê:
Trang 22SVTH: Phạm Đức Hiếu 22
3 chương trình thống kê: Webalizer Web Stats, AWStats, Analog Stats
Thống kê theo tên miền phụ
Xem băng thông đã sử dụng
Xem nhật ký lỗi của các ngôn ngữ web phục vụ cho công tác bảo trì
và sửa lỗi
Xem nhật ký của dịch vụ Apache, có thể tải về
1.3.2 Các tính năng khác
Đổi mật khẩu tài khoản
Quản lý các tên miền thêm vào
Trình quản lý file
Không thật sự thuận lợi và dễ dùng nhưng một loạt các tiện ích có nhiều tínhnăng rất đáng sử dụng như trình soạn thảo, làm việc với file nén…
Tiện ích thống kê dụng lượng đã sử dụng và chi tiết tới từng cấp thư mục
Đặt mật khẩu truy cập cho từng thư mục
Quản lý tên miền phụ bao gồm cả liên kết tên miền phụ tới tên miền khác
Chương trình Java xây dựng sẵn dành cho truy cập bằng SSH
Liên kết một thư mục tới một tên miền khác
Quản lý các phần mở rộng của FrontPage
Lịch trình chạy lệnh Cho phép thiết lập các tác vụ định kỳ
Quản lý các định nghĩa loại file của Apache
Chống việc sử dụng các file của tài khoản từ các website khác
Chống việc truy cập site thông qua các địa chỉ IP
Trang 23SVTH: Phạm Đức Hiếu 23
Cài đặt giao thức SSL
Quản lý khóa PGP
Tiện ích hỗ trợ tìm kiếm trên hệ thống
Tài liệu trực tuyến cũng được cung cấp sẵn
Quản lý các trang thông báo lỗi của website như
400 (Yêu cầu sai)
401 (Yêu cầu xác thực trước khi truy cập)
403 (Cấm truy cập)
404 (Trang được yêu cầu không tồn tại)
500 (Có lỗi xảy ra trên máy chủ khi xử lý yêu cầu)
1.4 Tìm hiểu về HTML và CSS
HTML
HTML (HyperText Markup Language) là một ngôn ngữ đánh dấu siêu văn bản được thiết kế ra để tạo nên các trang website với các mẫu thông tin được trình bày trên World Wide Web Cho phép định dạng văn bản, bổ sung hình ảnh, và video Cùng với sự kết hợp hoàn hảo CSS và JavaScript, HTML tạo ra bộ ba nền tảng kỹ thuật cho World Wide Web HTML đã trở thành một chuẩn Internet do tổ chức World Wide Web Consortium (W3C) duy trì Phiên bản chính thức mới nhất của HTML là HTML 4.01 (1999) Sau đó, các nhà phát triển đã thay thế nó bằng XHTML Hiện nay HTML đã có phiên bản mới là phiên bản HTML5 sẽ mang lại những trãi nghiệm và giao diện mới cho website
HTML là cơ sở hoạt động chính của website
Trình duyệt đọc và xử lý HTML để bố cục và định dạng cho các thành phần như văn bản, hình ảnh, video… trên trang website
HTML xây dựng trên các thẻ dạng < > </>
Trang 24Css được thêm vào thành phần HTML bằng các cách sau:
Inline: được viết luôn trong thẻ HTML
Internal: viết trong thẻ < style > ở phần <head>
External: viết ở file css bên ngoài
Một số quy tắc của CSS:
Quy tắc kế thừa: nếu luật CSS được áp dụng cho thẻ cha thì các thẻ con cũng được áp dụng mặc định nội dung trong đó
Quy tắc tầng: nếu có 2 luật CSS, một luật áp dụng cho thẻ cha một luật
áp dụng thẻ con thì luật thứ 2 sẽ áp dụng cho thẻ con
Quy tắc dựa trên mức độ: nếu có 2 luật CSS cùng áp dụng cho một đối tượng, luật nào có giá trị weight/specific lớn hơn thì sẽ được áp dụng
Quy tắc !important: nếu luật thêm từ khóa “!important” thì sẽ được áp dụng, không phụ thuộc quy tắc khác
1.5 Tìm hiểu về ngôn ngữ lập trình JAVASCRIPT
JavaScript là một ngôn ngữ lập trình được sử dụng để tạo ra những trang web tương tác JavaScript tích hợp và nhúng trong HTML JavaScript kết hợp vào
HTML, chạy trên Windows, Macintosh và các hệ thống hỗ trợ Netscape khác
Trang 25SVTH: Phạm Đức Hiếu 25
JavaScript được biết đến lần đầu tiên với tên Mocha, và sau đó là LiveScript, nhưng Hãng Netscape thay đổi tên của nó thành JavaScript, bởi vì sự phổ biến như là một hiện tượng của Java lúc bấy giờ JavaScript xuất hiện lần đầu trong Netscape 2.0 năm 1995 với tên LiveScript
JavaScript có thể học nhanh và dễ dàng áp dụng cho nhiều mục đích khác nhau, từ việc cải thiện tính năng của website đến việc chạy game và tạo phần mềm nền website
1.6 Tìm hiểu về WORDPRESS
1.6.1 Giới thiệu sơ lược về Wordpress
WordPress là một hệ thống xuất bản blog viết bằng ngôn ngữ lập
trình PHP và sử dụng MySQL database WordPress là hậu duệ chính thức
của b2/cafelog, được phát triển bởi Michel Valdrighi Cái tên WordPress được đề xuất bởi Christine Selleck
Tuy nhiên wordpress vẫn cho phép người dùng tạo blog với nhà cung cấp là http://wordpress.com/ đây là nơi đáng tin cậy cho việc tạo blog miễn phí tuy nhiên
dù hỗ trợ nhiều dịch vụ tốt nhưng vẫn có những hạn chế ví dụ: tên miền thì ta phải mua từ nhà cung cấp khác
Có nhiều mã nguồn giúp thành viên tạo blog cá nhân: Joomla, Drupal, Bo- blog… nhưng theo tôi thì WordPress là tốt nhất hiện nay bởi sự đơn giản, quản lý dễ dàng
và tùy biến của nhiều thành viên với mã nguồn cao nhất
WordPress đã được phát triển cùng với những cải tiến theo thời gian, với sự
hỗ trợ bởi những lập trình viên giàu kinh nghiệm, các nhà thiết kế, nhà khoa học, blogger và nhiều người khác WordPress cung cấp cơ hội cho bất kì ai muốn tạo và chia sẻ, từ những dấu ấn bản thân cho đến những đổi thay có sức ảnh hưởng tới toàn thế giới Kể cả những người ít hiểu biết về công nghệ cũng có thể sử dụng
Trang 26SVTH: Phạm Đức Hiếu 26
WordPress một cách sáng tạo và tuỳ chỉnh WordPress theo những cách riêng của mình
1.6.2 Đặc điểm nổi bật của Wordpress
Cài đặt đơn giản và thao tác cực kì nhanh chóng chính xác
Hệ thống Plugin phong phú đa dạng và cập nhật liên tục, chúng ta cũng có thể tự viết một plugin riêng cho sản phẩm của mình
Hỗ trợ đa dạng ngôn ngữ (bao gồm cả tiếng Việt)
Được cập nhật, vá lỗi và hỗ trợ liên tục
Có rất nhiều Theme miễn phí, chuyên nghiệp và SEO rất tốt
Dễ dàng quản lý và thao tác, việc quản lý blog, bài viết giống như các phần mềm thiết kế web chuyên nghiệp
Tích hợp sẵn Latex – công cụ soạn thảo công thức toán học, bạn có thể viết công thức toán học ngay trong bài viết
Upload và quản lý hình ảnh một cách dễ dàng, đặc biệt là chức năng tạo thumbnail rất hay
Có một hệ thống Widget đa dạng phong phú nhiều mẫu mã (ứng dụng tạo thêm) như thống kê người truy cập website, danh sách bài viết mới, các bài viết nổi bật, được xem nhiều, được comment nhiều, liệt kê các chuyên mục, liệt kê các trang, bài viết theo ngày tháng, giá vàng theo ngày tháng, thời tiết theo ngày tháng
có nhiều Widget để bạn tùy chọn
Hệ thống quản lý và duyệt Comment rất hay, có thể chặn spam theo IP
Hệ thống phân quyền với nhiều cấp độ khác nhau như: Administrator,
Author, Editor, Contributer, Subcriber Mỗi phân quyền sẽ có các quyền hạn khác nhau như được phép đăng bài viết, sửa bài viết, xóa bài viết, duyệt comment
Trang 27WordPress hỗ trợ đến 3 GB lưu trữ hình ảnh và văn bản
Hàng ngày WordPress sẽ thống kê 100 bài viết trên các blog tiếng Việt được nhiều người đọc nhất Nhờ đó bạn biết được các thông tin quan trọng nhất đang diễn ra
Và đặc biệt mới đây nhất WordPress hỗ trợ việc quản lý blog qua điện thoại rất thuận tiện và dễ dàng
1.6.3 Lý do khiến chúng ta chọn Wordpress
Dễ sử dụng: WordPress được phát triển nhằm phục vụ đối tượng người dùng
phổ thông, không có nhiều kiến thức về lập trình website nâng cao Các thao tác trong WordPress rất đơn giản, giao diện quản trị trực quan giúp bạn có thể nắm rõ cơ cấu quản lý một website WordPress trong thời gian ngắn Cách cài đặt dễ dàng hơn, bạn
có thể tự cài đặt một website WordPress trên host (máy chủ) riêng của mình
Cộng đồng hỗ trợ đông đảo: Là một mã nguồn CMS mở phổ biến nhất thế
giới, điều này cũng có nghĩa là bạn sẽ được cộng đồng người sử dụng WordPress hỗ trợ bạn các những lúc khó khăn gặp phải trong quá trình sử dụng một cách nhanh chóng
Nhiều gói giao diện có sẵn: Hiện nay WordPress có rất nhiều theme miễn phí
khác nhau để chúng ta có thể dễ dàng thay đổi giao diện cũng như tùy biến của website mình chỉ với vài cú click chuột mà không cần bận tâm việc làm sao để thiết kế một theme cho riêng mình Còn nếu bạn muốn website đẹp và chuyên nghiệp hơn, bạn có thể mua các theme trả phí với giá bán dao động từ $30 đến $85 cho một bộ theme website tuyệt đẹp
Trang 28SVTH: Phạm Đức Hiếu 28
Nhiều plugin hỗ trợ: Plugin là một trình cắm thêm vào website để bổ sung
các chức năng mà bạn cần Ví dụ mặc định sau khi cài website WordPress, bạn không
có chức năng hiển thị các bài viết liên quan ở dưới mỗi bài viết, nhưng với nhiều plugin miễn phí hỗ trợ thì bạn có thể dễ dàng cài thêm một plugin miễn phí để website mình có chức năng đó Tương tự với theme, cũng có rất nhiều plugin trả phí mang những tính năng rất độc đáo và có ích vào website và nó sẽ có giá khoảng từ $10 đến
$100 tùy theo độ phức tạp
Dễ phát triển cho lập trình viên: Nếu bạn là một người có am hiểu về việc
làm website như thành thạo HTML, CSS, PHP thì có thể dễ dàng mở rộng website WordPress của bạn ra với rất nhiều tính năng vô cùng có ích Cách phát triển cũng rất đơn giản vì WP là một mã nguồn mở nên bạn có thể dễ dàng hiểu được cách hoạt động của nó và phát triển thêm các tính năng Với hàng nghìn hàm (function) có sẵn của nó, bạn có thể thoải mái sử dụng, bạn cũng có thể thay đổi cấu trúc của một hàm với filter hook và hầu như quy trình làm việc của một lập trình viên chuyên nghiệp
có thể ứng dụng dễ dàng vào WordPress
Hỗ trợ nhiều ngôn ngữ: Mã nguồn WP hiện tại có rất nhiều gói ngôn ngữ đi
kèm, bao gồm tiếng Việt Mặc dù trong mỗi giao diện hay plugin đều có ngôn ngữ riêng nhưng bạn có thể dễ dàng tự dịch lại nó với các phần mềm hỗ trợ
1.7 Tìm hiểu về cách xây dựng plugin cho WordPress
1.7.1 Các kiến thức cần thiết
Kiến thức cơ bản về HTML và CSS
Kiến thức cơ bản về PHP
Ngoài ra 2 loại kiến thức bên trên thì bạn có thể bổ sung thêm kiến thức về
cơ sở dữ liệu MySQL, Javascript, Ajax… nếu cần
Kiến thức về Action Hook và Filter Hook
Trang 29SVTH: Phạm Đức Hiếu 29
Hình 1.1: Kiến thức cần có viết plugin
1.7.2 Các công cụ phát triển Wordpress
Phần mềm hỗ trợ lập trình PHP (Đề nghị dùng Notepad++ hoặc Sublime Text 2)
Máy tính của bạn đã cài đặt giả lập localhost (Đề nghị dùng XAMP hoặc AppServ)
Bạn đã cài đặt sẵn một blog WordPress trên localhost
1.7.3 Cách tạo một plugin cơ bản
Cấu trúc thư mục và tập tin
Tạo thư mục và tập tin là hai bước phải làm trong quá trình viết một plugin, cũng giống như việc xây một ngôi nhà, bạn phải tạo ra được một cái mống cố định rồi sau đó mới tiếp tục xây tiếp phần bên trên, ở đây cấu trúc thư mục đóng vai trò tương tự vậy
Thư mục của plugin phải được đặt trong thư mục mà WordPress dành riêng cho các plugin hoạt động, bắt buộc bạn phải bỏ plugin vào thư mục này thì mới có thể kích
hoạt và sử dụng, đường dẫn wp-content/plugins
Trang 30SVTH: Phạm Đức Hiếu 30
Như vậy, thư mục plugin của bạn phải được đặt bên trong thư mục plugins với đường dẫn như bên trên, sau đó các thư mục con và các tập tin sẽ được đặt nằm trong thư mục gốc plugin của bạn
Hình 1.2: Cấu trúc thư mục và tập tin
Tên của plugin
Phần tên của plugin phải được bạn suy nghĩ và đặt ra trước Ở đây là phần hướng dẫn viết plugin nên tôi sẽ đặt tên cho plugin là my-plugin
Tên của plugin phải rõ ràng và không được trùng tên với các plugin đã có sẵn
Có thể sử dụng nhiều từ để diễn tả cho tên của plugin để tránh sự trùng lặp khi đặt tên
Tên thư mục và tên của các tập tin
Tên của thư mục cũng là tên của plugin mà bạn viết thường không có dấu Tiếng Việt và các từ được nối với nhau bằng dấu gạch ngang ( - ) Như trong ví dụ ở trên thì mình sẽ đặt tên cho plugin của tôi là my-plugin Tên của plugin sẽ đại diện cho plugin của tôi, sau này nếu như bạn truy vấn tới các tập tin hình ảnh, css hay javascript trong thư mục của plugin thì bạn sẽ phải sử dụng đến tên này, WordPress gọi tên của thư mục chứa plugin là text-domain
Trang 31SVTH: Phạm Đức Hiếu 31
Hình 1.3: Tên thư mục và tệp tin
Các tệp tin cần thiết
Đối với mỗi plugin thì chỉ cần có ít nhất 2 tập tin, đó là tập tin PHP chính của
plugin và tập tin readme.txt chứa thông tin về tên, thông tin các phiên bản cũng như các thông tin liên quan khác đối với plugin Nếu tự viết plugin với mục đích là tự dùng thì không cần tạo tập tin readme.txt Mục đích của tập tin readme là để bạn upload plugin của mình lên trang chủ của WordPress.org mà bạn sẽ viết bài hướng dẫn sau
Hình 1.4: Các tệp tin cần thiết
Trang 32SVTH: Phạm Đức Hiếu 32
Bắt đầu viết code cho plugin
Đối với tập tin PHP chính của plugin, phải đặt ghi chú ở phía trên cùng của tập tin, ghi chú này bao gồm tên plugin, tên tác giả, mô tả về plugin, phiên bản hiện tại plugin và đường dẫn trang chủ của plugin với trang chủ của tác giả
1.8 Tìm hiểu về Domain & Hosting
Phân cấp domain gồm có 2 cấp chính: Cấp cao nhất và cấp thứ cấp
Domain cấp cao nhất bao gồm các mã quốc gia: VN (Việt Nam), US: (Mỹ)… Hoặc một số lĩnh vực sử dụng chung như: Com (thương mại), Net (Mạng lưới), Org(Các tổ chức), Info(thông tin), Edu(giáo dục)
Domain cấp thứ cấp bao gồm tất cả những domain còn lại phụ thuộc vào domain cấp cao nhất
Hosting
Hosting là nơi đặt nội dung trang website Có hai loại hosting thường dùng nhất: Windows hosting dựa vào nền tảng hệ điều hành windows của microsoft Linux hosting: dựa vào nền tảng hệ điều hành linux
Web hosting thường đặt trên máy chủ server vì nếu truy cập internet thông thường qua nhà cung cấp dịch vụ Internet thì địa chỉ ip luôn được thay đổi nên máy khác không thể truy cập dữ liệu của máy chúng ta qua môi trường internet được Nếu đặt nội dung website trên máy chủ chuyên dụng thì địa chỉ ip phải cố định