Tải bản đầy đủ (.pdf) (64 trang)

Xây dựng website đặt phòng khách sạn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.05 MB, 64 trang )

TRƯỜNG ĐẠI HỌC QUẢNG BÌNH
KHOA KỸ THUẬT - CƠNG NGHỆ THƠNG TIN
---  ---

KHĨA LUẬN TỐT NGHIỆP
XÂY DỰNG WEBSITE ĐẶT PHỊNG KHÁCH SẠN
Giảng viên hướng dẫn : TS. Hồng Tuấn Nhã
Sinh viên thực hiện

: Phạm Đức Hiếu

Lớp

: Đại học Công nghệ thông tin K59

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


LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn Ban Giám Hiệu nhà trường đã tạo thời gian
và đ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 q trình hình


thành ý tưởng đến khi hồ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


Mục Lục
MỞ ĐẦU........................................................................................................................ 8
1. 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


1.7.3 Cách tạo một plugin cơ bản.......................................................................... 29
1.8 Tìm hiểu về Domain & Hosting .......................................................................... 32
CHƯƠ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 tố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


TÀI LIỆU THAM KHẢO ......................................................................................... 62


DANH MỤC HÌNH ẢNH
Hình 1.1: Kiến thức cần có viết plugin ........................................................................ 29
Hì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


Hình 3.3: Giao diện giới thiệu phịng ........................................................................... 57
Hình 3.4: Chức năng tin tức bài viết ............................................................................ 58
Hì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


Xây dựng website đặt phòng khách sạn

MỞ ĐẦU
1. Lý do chọn đề tài
Hiện nay, công nghệ thông tin ngày càng phát triển mạnh mẽ, internet được
phổ biến rộng rãi, nhu cầu du lịch trong những năm gần đây khiến lượng khách đặt
phòng khách sạn trực tuyến ngày càng tăng nên việc đặt phịng qua mạng khơng cịn
xa 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à hồn tồ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.
SVTH: Phạm Đức Hiếu

8


Xây dựng website đặt phòng khách sạn

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
SVTH: Phạm Đức Hiếu

9


Xây dựng website đặt phòng khách sạn

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:
1 <!DOCTYPE html>
2

<head>
<title>Tên tiêu đề</title>

3
4

</head>

5

<body>

6


7

echo "Pham Duc Hieu";

8

?>


9

</body>

10 </html>
Thẻ <?php và thẻ ?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã PHP
qua đó server biết để xử lý và dịch mã cho đúng. Một điểm khá tiện lợi đó là 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.
SVTH: Phạm Đức Hiếu

10


Xây dựng website đặt phịng khách sạn

PHP được tích hợp với một số Database thông dụng như MySQL, PostgreSQL,
Oracle, Sybase, Informix, và Microsoft SQL Server…
PHP còn hỗ trợ rộng rãi các giao thức lớn hiện nay như POP3, IMAP, và
LDAP. PHP4 bổ sung sự hỗ trợ cho Java và các cấu trúc đối tượng.
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.
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

SVTH: Phạm Đức Hiếu

11


Xây dựng website đặt phịng khách sạn

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.
 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 hồn tồ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ó. Ngồ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. Hồn tồ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 qn
khác.
Ngơn ngữ hồn tồ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

SVTH: Phạm Đức Hiếu

12


Xây dựng website đặt phịng khách sạn

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.
 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.

SVTH: Phạm Đức Hiếu

13


Xây dựng website đặt phòng khách sạn

Vớ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.
 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.

SVTH: Phạm Đức Hiếu

14


Xây dựng website đặt phòng khách sạn


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.
 PHP 6
Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng
thử đã có thể được download tại địa chỉ . Phiên bản PHP 6 được
kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại, ví dụ: hỗ
trợ namespace (hiện tại các nhà phát triển vẫn chưa công bố rõ ràng về vấn đề này);
hỗ trợ Unicode; sử dụng PDO làm API chuẩn cho việc truy cập cơ sở dữ liệu,
các API cũ sẽ bị đưa ra thành thư viện PECL...
 PHP ở cấp doanh nghiệp
Rất nhiều nhà phát triển ứng dụng và quản lý dự án có quan điểm rằng PHP vẫn
chưa sẵn sàng cho cấp doanh nghiệp (enterprise) và trên thực tế, PHP vẫn chưa xâm
nhập sâu được vào thị trường này. Chính vì thế, Zend đã tiến hành nhiều biện pháp
nhằm chuẩn hóa PHP, tạo được sự tin cậy hơn cho giới người dùng cao cấp.
- Zend Platform
là một bộ sản phẩm giúp quản lý hệ thống ứng dụng PHP, nâng cao hiệu suất, tăng
tốc độ của ứng dụng PHP.
- Zend Framework
là một tập hợp các lớp, các thư viện lập trình viết bằng PHP (PHP 5) nhằm cung cấp
một giao diện lập trình chuẩn cho các nhà phát triển ứng dụng.

SVTH: Phạm Đức Hiếu

15



Xây dựng website đặt phịng khách sạn

Ngồ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ó.

SVTH: Phạm Đức Hiếu


16


Xây dựng website đặt phòng khách sạn

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 ngun 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

SVTH: Phạm Đức Hiếu

17


Xây dựng website đặt phòng khách sạn

TINYINT: Lưu trữ một số nguyên có giá trị từ -128 đến -127 hoặc 0 đến 255
SMALLINT: Lưu trữ một số nguyên có giá trị từ -32768 đến 32767 hoặc 0
đến 65535
MEDIUMINT: Lưu trữ một số nguyên có giá trị từ -8388608 đến 8388607
hoặc 0 đến 16777215
BIGINT: Lưu trữ một số nguyên có giá trị từ -9223372036854775808 đến
9223372036854775807 hoặc 0 đến 18446744073709551615.
FLOAT(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
SVTH: Phạm Đức Hiếu

18


Xây dựng website đặt phòng khách sạn

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ể.

SVTH: Phạm Đức Hiếu

19


Xây dựng website đặt phòng khách sạn

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
MySQL.
Hàm xử lý chuỗi: Danh sách đầy đủ các hàm cần thiết để thao tác với chuỗi
trong MySQL.
1.3 PHP và MYSQL
PHP và MySQL đều có tính khả chuyển cao, có thể chạy nhiều nền tảng khác
nhau, tương thích với hầu hết các máy chủ Website hiện nay như Apache
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:

SVTH: Phạm Đức Hiếu

20


Xây dựng website đặt phòng khách sạn

 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ê:

SVTH: Phạm Đức Hiếu

21


Xây dựng website đặt phịng khách sạn

 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
SVTH: Phạm Đức Hiếu

22


Xây dựng website đặt phòng khách sạn

 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 < >...</>

SVTH: Phạm Đức Hiếu

23


Xây dựng website đặt phịng khách sạn


 Thẻ đóng và thẻ mở
 Ví dụ: <html>…</html>
 CSS
Cascading Style Sheets (CSS) – được sử dụng để thể hiện thêm các thuộc tính
cho thành phần HTML. Ngồi ra ngơn ngữ định kiểu theo tầng cũng có thể dùng
cho XML, SVG, XUL. Các đặc điểm kỹ thuật của CSS được duy trì bởi World Wide
Web Consortium (W3C). Thay vì đặt các thẻ quy định kiểu dáng cho văn
bản HTML ngay trong nội dung của nó, bạn nên sử dụng CSS.
Css đượ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.
SVTH: Phạm Đức Hiếu

24



Xây dựng website đặt phòng khách sạn

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à
đâ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 tồ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
SVTH: Phạm Đức Hiếu

25



×