Tải bản đầy đủ (.docx) (53 trang)

ĐATN Xây dựng website bán oto

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 (7.47 MB, 53 trang )

LỜI CẢM ƠN

Sau khoảng thời gian nghiên cứu và tìm hiểu, đến nay em đã hoàn thành bài báo
cáo đồ án tốt nghiệp của mình. Em xin bày tỏ lòng biết ơn sâu sắc và gửi lời cảm ơn
tới Ban chủ nhiệm khoa Công nghệ thông tin, các thầy cô giáo bộ môn Truyền thông
và mạng máy tính, các thầy cô đã tận tình giảng dạy, trang bị cho chúng em những vốn
kiến thức và kinh nhiệm quý báu, cung cấp cho chúng em những điều kiện và môi
trường học tập tốt nhất.
Để hoàn thành tốt được bài báo cáo này, em xin được gửi lời cảm ơn chân thành
tới Thầy giáo – Thạc sỹ Trịnh Văn Hà, người đã theo sát, sẵn sàng trả lời cho em các
vướng mắc và hướng dẫn tạo điều kiện tốt nhất giúp em hoàn thành bài báo cáo này.
Thái Nguyên, ngày… tháng … năm 2018
Sinh viên thực hiện
Nguyễn Trần Hùng Cường

1


LỜI CAM ĐOAN

Em xin cam đoan nội dung trong bài báo cáo đồ án tốt nghiệp này là kết quả của
quá trình nghiên cứu tìm hiểu thực sự của cá nhân em, được thực hiện dựa trên cơ sở
lý thuyết và sự hướng dẫn nhiệt tình chỉ bảo của Thầy giáo – Th.S Trịnh Văn Hà.
Các nội dung lý thuyết, sơ đồ phân tích được nghiên cứu và áp dụng từ phần tài
liệu tham khảo, chương trình demo do em tự thiết kế.
Nếu có sự sao chép, copy từ các bản báo cáo khác em xin tự chịu mọi trách
nhiệm trước bộ môn và nhà trường.
Thái Nguyên, ngày… tháng … năm 2018
Sinh viên thực hiện
Nguyễn Trần Hùng Cường


2


MỤC LỤC
LỜI CẢM ƠN................................................................................................................ 1
LỜI CAM ĐOAN..........................................................................................................2
MỤC LỤC..................................................................................................................... 3
DANH MỤC HÌNH ẢNH.............................................................................................5
LỜI NÓI ĐẦU............................................................................................................... 6
CHƯƠNG I : CƠ SỞ LÝ THUYẾT..............................................................................7
1.1 Tìm hiểu về PHP..................................................................................................7
1.1.1 Lịch sử phát triển của PHP............................................................................8
1.1.2 Tại sao ta sử dụng ngôn ngữ lập trình PHP?...............................................11
1.2 Tìm hiểu về MYSQL.........................................................................................11
1.2.1 Mười lý do chọn MySQL............................................................................12
1.2.2 Các kiểu dữ liệu trong cơ sở dữ liệu MySQL..............................................15
1.2.3 Các hàm thông dụng trong MySQL............................................................17
1.3 PHP và MySQL.................................................................................................17
1.3.1. Các tính năng chính....................................................................................17
1.3.2 Các tính năng khác......................................................................................18
1.4 Tìm hiểu về CSS và HTML...............................................................................20
1.5 Tìm hiểu về ngôn ngữ javascript........................................................................21
1.6 Tìm hiểu về WordPress......................................................................................23
1.6.1 Giới thiệu sơ lược về Wordpress.................................................................23
1.6.2 Nét nổi bật của Wordpress...........................................................................24
1.6.3 Các lý do khiến chúng ta chọn WordPress..................................................25
1.7 Tìm hiểu về cách xây dựng plugin cho WordPress.............................................25
1.7.1 Các kiến thức cần thiết................................................................................25
1.7.2 Các công cụ phát triển cần thiết..................................................................25
1.7.3 Cách viết một plugin cơ bản.......................................................................26

CHƯƠNG II: KHẢO SÁT & PHÂN TÍCH THIẾT KẾ HỆ THỐNG.........................29
2.1 Khảo sát.............................................................................................................29
2.1.1 Lý do chọn đề tài.........................................................................................29
2.1.2 Xác định yêu cầu bài toán...........................................................................29

3


2.2 Biểu đồ phân tích thiết kế hệ thống....................................................................29
2.2.1 Biểu đồ Use case.........................................................................................29
2.2.2 Biểu đồ trình tự...........................................................................................31
2.2.3 Biểu đồ hoạt động.......................................................................................34
CHƯƠNG III: GIỚI THIỆU SẢN PHẨM...................................................................37
3.1 Plugins hỗ trợ.....................................................................................................37
3.2 Một số hình ảnh giao diện backend....................................................................37
3.3 Một số hình ảnh giao diện frontend...................................................................39
KẾT LUẬN.................................................................................................................48
TÀI LIỆU THAM KHẢO...........................................................................................49
NHẬN XÉT CỦA GIÁO VIÊN...................................................................................50

4


DANH MỤC HÌNH ẢNH
Hình 2.1: Biểu đồ User case tổng quát.........................................................................29
Hình 2.2: Biểu đồ Usecase Đăng nhập.........................................................................30
Hình 2.3: Biểu đồ UseCase Post new...........................................................................30
Hình 2.4: Biểu đồ trình tự đăng nhập...........................................................................31
Hình 2.5: Biểu đồ trình tự thêm thông tin sản phẩm mới.............................................32
Hình 2.6: Biểu đồ trình tự sửa thông tin sản phẩm.......................................................33

Hình 2.7: Biểu đồ hoạt động đăng nhập.......................................................................34
Hình 2.8: Biểu đồ hoạt động thêm thông tin sản phẩm mới.........................................35
Hình 2.9: Biểu đồ hoạt động cập nhật thông tin sản phẩm...........................................36
Hình 3.1: Giao diện danh sách sản phẩm.....................................................................37
Hình 3.2: Danh sách các hãng xe ô tô..........................................................................38
Hình 3.3: Giao diện trang chủ......................................................................................39
Hình 3.4: Giao diện danh sách ô tô..............................................................................40
Hình 3.5: Giao diện logo ô tô.......................................................................................41
Hình 3.6: Giao diện đăng nhập....................................................................................42
Hình 3.7: Giao diện đăng bán xe..................................................................................43
Hình 3.8: Giao diện đăng ký tài khoản........................................................................44
Hình 3.9: Giao diện hãng xe........................................................................................45
Hình 3.10: Giao diện website.......................................................................................46
Hình 3.11: Giao diện chi tiết trang mua bán................................................................47

5


LỜI NÓI ĐẦU

Ngày nay chúng ta đang được sống trong kỷ nguyên của công nghệ thông tin
với sự phát triển mạnh mẽ. Công nghệ thông tin không chỉ dừng lại ở mục đích phục
vụ cho khoa học kỹ thuật mà còn đi sâu vào đời sống, chính trị, kinh tế, xã hội, trở nên
thân thiện, gần gũi, mang lại nhiều lợi ích cho con người. Đặc biệt là trong lĩnh vực
website, sự phát triển của các nền tảng web như framework, phần mềm nguồn mở đi
kèm là các trình duyệt hỗ trợ đa dạng đã quyết định đến sự phát triển mạnh mẽ và
nhanh chóng của công nghệ web. Việc sử dụng các framework, phần mềm nguồn mở
rút ngắn được quá trình tạo ra một website, bảo mật hơn và thuận tiện hơn trong quá
trình cài đặt cũng như sử dụng. Chính vì nhờ có các thành phần tích hợp, extensions,
plugins cung cấp khả năng mở rộng chức năng, giao diện hệ thống đã khiến cho các

nền tảng phần mềm nguồn mở ngày càng trở nên mạnh mẽ và đa dạng. Ngoài ra nó tạo
ra nhiều cơ hội cho các nhà phát triển website mang lại doanh thu lớn và tạo thêm
được nhiều cơ hội việc làm. Hiện nay việc giới thiệu và kinh doanh ô tô đang rất phổ
biến, vậy nên em phát triển một hệ thống tìm kiếm và mua bán ô tô. Đề tài này là kết
quả của quá trình tích lũy và vận dụng những kiến thức mà em tiếp thu và tìm hiểu
được trong quá trình học tập. Trong quá trình thực hiện đề tài này em xin cám ơn thầy
giáo Th.S Trịnh Văn Hà đã đưa ra những giải pháp và hướng đi để phát triển hệ thống
này trong tương lai. Mặc dù đã cố gắng trong quá trình nghiên cứu làm đề tài nhưng
do còn nhiều hạn chế về thời gian và trình độ nên đề tài của em không tránh khỏi
thiếu sót , nhiều vấn đề chưa được giải quyết hoàn chỉnh. Vì vậy em rất mong nhận
được những ý kiến đóng góp của các thầy cô và các bạn để đề tài của em được hoàn
thiện và phát triển.
Em xin chân thành cảm ơn!

6


CHƯƠNG I : CƠ SỞ LÝ THUYẾT

1.1 Tìm hiểu về PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trình
kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho
máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có
thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc
độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm
tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một
ngôn ngữ lập trình web phổ biến nhất thế giới.
Đoạn mã sau minh họa giúp cách viết PHP lồng vào các trang HTML dễ dàng
như thế nào:
<html>

<head>
<title>Mã mẫu</title>
</head>
<body>
echo "Chào thế giới PHP!";
?>
</body>
</html>
Thẻ sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã PHP qua đó máy chủ biết
để xử lý và dịch mã cho đúng. Đây là một điểm khá tiện lợi của PHP giúp cho việc viết
mã PHP trở nên khá trực quan và dễ dàng trong việc xây dựng phần giao diện ứng
dụng HTTP.

7


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ô xí nghiệp.
1.1.1 Lịch sử phát triển của PHP
PHP được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus
Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã
kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng.
Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools'. Khi cần đến
các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể
truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web
đơn giản. Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem,
sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn.
PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các

chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay. 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 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 – 2 nhà phát triển người Israel 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 nhận họ 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 Technion – Học viện công nghệ
Israel. 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ó
8


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 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. Họ sáng lập Zend Technologies tại Ramat
Gan – thành phố của khu vực Tel Avis. 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

9


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.

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 đã 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 5 bản
chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm
tra thử bao gồm Beta 4, RC 1, RC2, RC3. Mặc dù coi đây là phiên bản sản xuất đầu
tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP. Ngày
14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồi
mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một hệ thống API
nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn. Ngoài ra,
trong PHP 5.1, các nhà phát triển PHP tiếp tục có những cải tiến trong nhân Zend

10



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.
1.1.2 Tại sao ta sử dụng ngôn ngữ lập trình PHP?
PHP là một ngôn ngữ lập trình. Ngôn ngữ này hoạt động cận kề với Webserver để
thông dịch các yêu cầu từ trên World Wide Web, sau đó nhận các trả lời từ Webserver
chuyển tải đến trình duyệt Web nhằm đáp ứng các nhu cầu đó.
Các đặc điểm nổi bật:
 PHP là mã nguồn mở
 Tốc độ nhanh, dễ sử dụng
 Chạy trên nhiều hệ điều hành
 Truy cập bất kỳ loại CSDL nào
 Luôn được cải tiến và cập nhật
Tương thích với hầu hết các server đang sử dụng hiện nay như Apache, IIS…
1.2 Tìm hiểu về MYSQL
MySQL là một hệ quản trị cơ sở dữ liệu đa luồng, đa người dùng với ước tính có
khoảng 6 triệu lượt cài đặt. Công ty MySQL AB xây dựng MySQL như là một phần
mềm mã mở dưới giấy phép GNU/GPL. Không như những dự án như Apache, phần
mềm được phát triển bởi cộng đồng công cộng, và bản quyền về mã nguồn thuộc sở
hữu bởi nhiều tác giả riêng lẻ. MySQL được sở hữu và bảo trợ bởi một công ty, công
ty MySQL AB – một công ty Thụy Điển, nơi giữ bản quyền cho toàn bộ mã nguồn.
Công ty phát triển và duy trì hệ thống, hỗ trợ bán hàng và dịch vụ. MySQL AB được
sáng lập bởi David Axmark, Allan Larsson, và Michael “Monty” Widenius.
MySQL là hệ quản trị cơ sở dữ liệu phổ biến nhất hiện nay và được các nhà phát
triển rất ưa chuộng trong việc phát triển các ứng dụng. Không chỉ dừng lại các ứng
dụng có tầm vừa và nhỏ. Mà ngay cả những ứng dụng có tầm cỡ lớn cũng đã lựa chọn
MySQL, ví dụ như:
 Yahoo
 NASA
 Wikipedia


11


 Alcatel
 …….
1.2.1 Mười lý do chọn MySQL
Cơ sở dữ liệu MySQL đã trở thành cơ sở dữ liệu mã nguồn mở phổ biến nhất trên
thế giới vì cơ chế xử lý nhanh và ổn định của nó, sự đáng tin cậy cao và dễ sử dụng.
Nó được sử dụng mọi nơi – ngay cả châu Nam Cực - bởi các nhà phát triển Web riêng
lẻ cũng như rất nhiều các tổ chức lớn nhất trên thế giới để tiết kiệm thời gian và tiền
bạc cho những Web sites có dung lượng lớn, phần mềm đóng gói – bao gồm cả những
nhà đi đầu trong lĩnh vực công nghiệp như Yahoo!, Alcatel-Lucent, Google, Nokia,
YouTube và Zappos.com.
MySQL không chỉ là cơ sở dữ liệu mã nguồn mở phổ biến nhất trên thế giới, nó
còn trở thành cơ sở dữ liệu được chọn cho thế hệ mới của các ứng dụng xây dựng trên
nền Linux, Apache, MySQL, PHP/Perl/Python. MySQL chạy trên hơn 20 flatform bao
gồm: Linux, Windows, OS/X, HP-UX, AIX, Netware, mang đến cho bạn tính linh hoạt
trong việc sử dụng.
Dù bạn mới làm quen với công nghệ cơ sở dữ liệu hay là một nhà phát triển giàu
kinh nghiệm hoặc là DBA, MySQL sẽ giúp bạn thành công.
Đây là 10 lý do bạn nên chọn MySQL cho ứng dụng của mình:
+Tính linh hoạt: Máy chủ cơ sở dữ liệu MySQL cung cấp đặc tính linh hoạt, có
sức chứa để xử lý các ứng dụng được nhúng sâu 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ợ. Và dĩ nhiên, tính chất mã nguồn mở của MySQL cho phép sự tùy biến hoàn
toàn theo ý muốn để thêm vào các yêu cầu thích hợp cho database server.
+Tính thực thi cao: Kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ
liệu cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng đặc thù. Dù

ứng dụng là một hệ thống xử lý giao dịch tốc độ cao hay web site dung lượng lớn phục
vụ hàng triệu yêu cầu mỗi ngày, MySQL có thể đáp ứng khả năng xử lý những đòi hỏi
khắt khe nhất của bất kì hệ thống nào. Với các tiện ích tải tốc độ cao, đặc biệt bộ nhớ

12


caches, và các cơ chế xử lý nâng cao khác, MySQL đưa ra tất cả các vũ khí cần phải có
cho các hệ thống doanh nghiệp khó tính ngày nay.
+Có thể sử dụng ngay: Sự đáng tin cậy cao và tính “mì ăn liền” là những tiêu
chuẩn đảm bảo của MySQL. MySQL đưa ra nhiều tùy chọn có thể dùng ngay từ cấu
hình tái tạo chủ/tớ tốc độ cao, để các nhà phân phối thứ 3 đưa ra những giải pháp có
thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL.
+Hỗ trợ giao dịch mạnh: MySQL đưa ra một trong số những engine giao dịch cơ
sở dữ liệu mạnh nhất trên thị trường. Các đặc trưng bao gồm hỗ trợ giao dịch ACID
hoàn thiện ( Atomic – tự động, Consistent – thống nhất, Isolated – độc lập, Durable –
bền vững), khóa mức dòng không hạn chế, khả năng giao dịch được phân loại, và hỗ
trợ giao dịch đa dạng (multi-version) mà người đọc không bao giờ gây trở ngại cho
người viết và ngược lại. Tính toàn vẹn của dữ liệu cũng phải được bảo đảm trong suốt
quá trình server có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, và phát
hiện khóa chết ngay lập tức.
+Nơi lưu trữ Web và Data đáng tin cậy: MySQL là nhà máy chuẩn cho các web
sites phải trao đổi thường xuyên vì nó có engine xử lý tốc độ cao, khả năng chèn dữ
liệu nhanh ghê gớm, và hỗ trợ mạnh cho các chức năng chuyên dụng của web như tìm
kiếm văn bản nhanh. Những tính năng này cũng được áp dụng cho môi trường lưu trữ
dữ liệu mà MySQL tăng cường đến hàng terabyte cho các server đơn. Các tính năng
khác như bảng nhớ chính, cây B và chỉ số băm, và bảng lưu trữ đã được cô lại để giảm
các yêu cầu lưu trữ đến 80% làm cho MySQL trở thành lựa chọn tốt nhất cho cả ứng
dụng web và các ứng dụng doanh nghiệp.
+Chế độ bảo mật dữ liệu mạnh: Vì bảo mật dữ liệu cho một công ty là công việc

số một của các chuyên gia về cơ sở dữ liệu, MySQL đưa ra tính năng bảo mật đặc biệt
chắc chắn dữ liệu sẽ được bảo mật tuyệt đối. Trong việc xác nhận truy cập cơ sở dữ
liệu, MySQL cung cấp các kĩ thuật mạnh mà chắc chắn chỉ có người sử dụng đã được
xác nhận mới có thể truy nhập được vào server cơ sở dữ liệu, với khả năng này để
chặn người dùng ngay từ mức máy khách là điều có thể làm được. SSH và SSL cũng
được hỗ trợ để chắc chắn các kết nối được an toàn và bảo mật. Một đối tượng
framework đặc quyền được đưa ra mà người sử dụng chỉ có thể nhìn thấy dữ liệu, các
hàm mã hóa và giải mã dữ liệu mạnh chắc chắn rằng dữ liệu sẽ được bảo mật. Cuối

13


cùng, tiện ích backup và recovery cung cấp bởi MySQL và các hãng phần mềm thứ 3
cho phép backup logic và vật lý hoàn thiện cũng như recovery toàn bộ hoặc tại một
thời điểm nào đó.
+Sự phát triển ứng dụng hỗn hợp: Một trong số các lý do khiến cho MySQL là cơ
sở dữ liệu mã nguồn mở phổ biến nhất thế giới là nó cung cấp hỗ trợ hỗn hợp cho bất
kì sự phát triển ứng dụng nào cần. Trong cơ sở dữ liệu, hỗ trợ có thể được tìm thấy
trong các stored procedure, trigger, function, view, cursor, ANSI-standard SQL, và
nhiều nữa. Với các ứng dụng nhúng, thư viện plug-in có sẵn để nhúng vào cơ sở dữ
liệu MySQL hỗ trợ trong bất kì ứng dụng nào. MySQL cũng cung cấp các bộ kết nối
như: ODBC, JDBC, … để cho phép tất cả các form của ứng dụng sử dụng MySQL
như một server quản lí dữ liệu được ưu tiên.
+Dễ dàng quản lý: MySQL trình diễn khả năng cài đặt nhanh đặc biệt với thời
gian ở mức trung bình từ lúc download phần mềm đến khi cài đặt hoàn thành chỉ mất
chưa đầy 15 phút. Điều này đúng cho dù flatform là Microsoft Windows, Linux,
Macintosh hay Unix. Khi đã được cài đặt, tính năng tự quản lý như tự động mở rộng
khô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ọa
cho phép một DBA quản lý, sửa chữa, và điều khiển hoạt động của nhiều server

MySQL từ một máy trạm đơn. Nhiều công cụ của các hãng phần mềm thứ 3 cũng có
sẵn trong MySQL để điều khiển các tác vụ từ thiết kế dữ liệu và ETL, đến việc quản trị
cơ sở dữ liệu hoàn thiện, quản lý công việc, và thực hiện kiểm tra.
+Mã nguồn mở tự do và hỗ trợ 24/7: Nhiều công ty lưỡng lự trong việc giao phó
toàn bộ cho phần mềm mã nguồn mở vì họ tin họ không thể tìm được một cách hỗ trợ
hay mạng lưới an toàn phục vụ chuyên nghiệp, hiện tại, họ tin vào phần mềm có bản
quyền để chắc chắn về sự thành công toàn diện cho các ứng dụng chủ chốt của họ.
Những lo lắng của họ có thể được dẹp bỏ với MySQL, sự bồi thường là có trong mạng
lưới MySQL.
+Tổng chi phí thấp nhất: Bằng cách sử dụng MySQL cho các dự án phát triển
mới, các công ty đang thấy rõ việc tiết kiệm chi phí. Được hoàn thành thông qua sử
dụng server cơ sở dữ liệu MySQL và kiến trúc scale-out, các doanh nghiệp đã tìm ra
cái mà họ có thể đạt được ở mức ngạc nhiên về khả năng xử lý. Thêm vào đó, tính tin

14


cậy và dễ duy trì của MySQL ở mức trung bình mà người quản trị cơ sở dữ liệu không
phải mất nhiều thời gian sửa chữa hay vấn đề thời gian chết.

15


1.2.2 Các kiểu dữ liệu trong cơ sở dữ liệu MySQL
 Loại dữ liệu numeric: bao gồm kiểu số nguyên và kiểu số chấm động.
-

Kiểu dữ liệu số nguyên:

- Kiểu dữ liệu số chấm động:


16


 Loại dữ liệu kiểu Date and Time
Kiểu dữ liệu Date and Time cho phép bạn nhập dữ liệu dưới dạng chuỗi ngày
tháng hay dạng số.
 Dữ liệu kiểu số nguyên:

17


18


 Loại dữ liệu String
Kiểu dữ liệu String chia làm 3 loại: Loại thứ nhất như char( chiều dài cố định) và
varchar( chiều dài biến thiên); loại thức hai là Text hay Blob, Text cho phép lưu chuỗi
rất lớn, Blob cho phép lưu đối tượng nhị phân; loại thứ ba là Enum và Set.
1.2.3 Các hàm thông dụng trong MySQL
Các hàm trong phát biểu GROUP BY
- Hàm AVG: Hàm trả về giá trị bình quân của cột hay trường trong câu truy vấn.
- Hàm MIN: Hàm trả về giá trị nhỏ nhất của cột hay trường trong câu truy vấn.
- Hàm MAX: Hàm trả về giá trị lớn nhất của cột hay trương trong câu truy vấn.
- Hàm Count: Hàm trả về số lượng mẩu tin trong câu truy vấn.
- Hàm SUM: Hàm trả về tổng các giá trị của trường, cột trong câu truy vấn.
Các hàm xử lý chuỗi:
- Hàm ASCII: Hàm trả về giá trị mã ASCII của ký tự bên trái chuỗi.
- Hàm Char: Hàm này chuyển đổi kiểu mã ASCII từ số nguyên sang dạng
chuỗi.

- Hàm UPPER: Hàm này chuyển đổi chuỗi sang kiểu chữ hoa.
- Hàm LOWER: Hàm này chuyển đổi chuỗi sang kiểu chữ thường.
- Hàm LEN: Hàm này trả về chiều dài chuỗi.
- Thủ tục LTRIM: Thủ tục loại bỏ khoảng trắng bên trái của chuỗi…
1.3 PHP và MySQL
PHP kết hợp với MySQL sẽ tạo ra các ứng dụng chéo nền (cross-platform), nghĩa
là có thể phát triển ứng dụng trên Windows và máy chủ là Unix.
1.3.1. Các tính năng chính
a) Sao lưu: 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.
b) 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.

19


- 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.
c) Thống kê:
3 chương trình thống kê: : Webalizer Web Stats, AWStats, Analog Stats.
- Thống kê theo tên miền phụ.
- Xem danh sách 300 khách ghé thăm website gần nhất bao gồm thông tin: IP,
thời gian và nơi truy cập, trình duyệt nào và hệ điều hành khách viếng thăm sử dụng.
- 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ề.
d) 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.
e) 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.
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.
20


- 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.
- 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)
- 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
- 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.
CÁC KỊCH BẢN THIẾT LẬP SẴN:
- Simple CGI Wrapper
- Random HTML – Tự động chèn mã HTML định sẵn vào các file html.
- Simple GuestBook.
- Advanced GuestBook
- Counter – Bộ đếm khách ghé thăm website và số trang khách xem.
- Clock-Java
- Countdown - the timer - Đồng hồ đếm ngược.
- CGI mail – Chương trình gửi email viết bằng CGI
- Entropy Banner – hệ thống quản lý banner đơn giản.
- FormMail Clone – form liên hệ đơn giản.
- Entropy Search – Bộ máy tìm kiếm xây dựng sẵn.
- phpBB – Một mã nguồn diễn đàn miễn phí.

21


- Hai mã nguồn bán hàng trực tuyến: Interchange và Agora
1.4 Tìm hiểu về CSS và HTML
* Định nghĩa về HTML:

- HTML được biết đến là một loại ngôn ngữ dùng để mô tả hiển thị các trang
web.Hyper Text Markup Language chính là HTML (Viết tắt)
- Nhiều người nhầm tưởng HTML là ngôn ngữ lập trình nhưng sự thực
không phải như vậy, nó là một ngôn ngữ đánh dấu
- Một ngôn ngữ đánh dấu là một bộ các thẻ đánh dấu
- Để có thể miêu tả trang web ta cần đánh dấu các thẻ HTML
* Thành phần của HTML:
- Thành phần của HTML bắt đầu với thẻ: <b>Nội dung của nó là: web design
resources. Thành phần của HTML kết thúc với thẻ: </b>. Mục đích của thẻ <b> là để
xác định một thành phần của HTML phải được thể hiện dưới dạng in đậm
Phần này bắt đầu bằng thẻ bắt đầu <body> và kết thúc bằng thẻ kết thúc </body>. Mục
đích của thẻ <body> là xác định thành phần của HTML bao gồm nội dung của tài liệu.
* Các thuộc tính của thẻ HTML:
- Những thẻ HTML đều có những thuộc tính riêng. Những thuộc tính này cung
cấp thông tin về thành phần HTML của trang web. Tag này xác định thành phần
thân của trang HTML: <body>. Với một thuộc tính thêm vào là bgcolor, có
thể báo cho trình duyệt biết rằng màu nền của trang này là màu đỏ, giống như sau:
<body bgcolor="red">
hoặc
<body bgcolor="#E6E6E6"> (#E6E6E6 là giá trị hex của màu)
- Thẻ này sẽ xác định dạng bảng HTML:<table> với một thuộc tính đường
viền (border), có thể báo cho trình duyệt biết rằng bảng sẽ không có đường
viền:
<table border="0">
- Thuộc tính luôn luôn đi kèm một cặp như name/value: name="value"
(tên="giá trị") thuộc tính luôn luôn được thêm vào thẻ mở đầu của thành phần
HTML. Dấu ngoặc kép, "red" hoặc 'red'.
- Giá trị thuộc tính nên được đặt trong dấu trích dẫn " và ". Kiểu ngoặc kép như
vậy thì phổ biến hơn, tuy nhiên kiểu đơn như ' và ' cũng có thể được dùng. Ví dụ trong
22



một vài trường hợp đặc biệt hiếm, ví dụ như giá trị thuộc tính đã mang dấu ngoặc kép
rồi, thì việc sử dụng ngoặc đơn là cần thiết.
- Ví dụ: name='ban"tay"den'
* Tìm hiểu về CSS:
<head>
<style>
và ở giữa này là nơi thêm vào sau này
</style>
</head>
- CSS là chữ viết tắt của cụm từ tiếng Anh “Cascading Style Sheet”, là kiểu
thiết kế sử dụng nhiều lớp định dạng chồng lên nhau. CSS được tổ chức World Wide
Web (W3C) giới thiệu vào năm 1996. Cách đơn giản nhất để hiểu CSS là hãy coi nó
như một phần mở rộng của HTML để giúp đơn giản hóa và cải tiến việc thiết kế cho
các trang web.
- Mỗi khi bắt đầu một Style Sheets, thì bắt buộc mở bằng <HEAD> và kết
thúc bằng </HEAD> và tiếp theo sau đó là khai báo <STYLE> và kết thúc bằng
</STYLE>
và sau những bước trên thì có thể nhìn thấy nguyên đoạn code như sau:
1.5 Tìm hiểu về ngôn ngữ javascript
- JavaScript, theo phiên bản hiện hành, là một ngôn ngữ lập trình kịch bản dựa
trên đối tượng được phát triển từ các ý niệm nguyên mẫu. Ngôn ngữ này được dùng
rộng rãi cho các trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụng
các đối tượng nằm sẵn trong các ứng dụng. Nó vốn được phát triển bởi Brendan Eich
tại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tên thành
LiveScript, và cuối cùng thành JavaScript. Giống Java, JavaScript có cú pháp tương tự
C, nhưng nó gần với Self hơn Java. .js là phần mở rộng thường được dùng cho tập tin
mã nguồn JavaScript.
Java, JavaScript và JScript

- Cùng thời điểm Netscape bắt đầu sử dụng công nghệ Java trên trình duyệt
Netscape, LiveScript đã được đổi tên thành JavaScript để được chú ý hơn bởi ngôn
ngữ lập trình Java lúc đó đang được coi là một hiện tượng. JavaScript được bổ sung
23


vào trình duyệt Netscape bắt đầu từ phiên bản 2.0b3 của trình duyệt này vào tháng 12
năm 1995. Trên thực tế, hai ngôn ngữ lập trình Java và JavaScript không có liên quan
gì đến nhau, ngoại trừ việc cú pháp của cả hai ngôn ngữ cùng được phát triển dựa trên
cú pháp của C. Java Script gồm 2 mảng là client-server thực hiện lệnh trên máy của
end-user và web-server.
- Sau thành công của JavaScript, Microsoft bắt đầu phát triển JScript, một ngôn
ngữ có cùng ứng dụng và tương thích với JavaScript. JScript được bổ sung vào trình
duyệt Internet Explorer bắt đầu từ Internet Explorer phiên bản 3.0 được phát hành
tháng 8 năm 1996.
- DOM (Document Object Model), một khái niệm thường được nhắc đến với
JavaScript trên thực tế không phải là một phần của chuẩn ECMAScript, DOM là một
chuẩn riêng biệt có liên quan chặt chẽ với XML.
- Ứng dụng
- JavaScript là một ngôn ngữ lập trình dựa trên nguyên mẫu với cú pháp phát
triển từ C. Giống như C, JavaScript có khái niệm từ khóa, do đó, JavaScript gần như
không thể được mở rộng.
- Cũng giống như C, JavaScript không có bộ xử lý xuất/nhập (input/output)
riêng. Trong khi C sử dụng thư viện xuất/nhập chuẩn, JavaScript dựa vào phần mềm
ngôn ngữ được gắn vào để thực hiện xuất/nhập.
- Trên trình duyệt, rất nhiều trang web sử dụng JavaScript để thiết kế trang web
động và một số hiệu ứng hình ảnh thông qua DOM. JavaScript được dùng để thực hiện
một số tác vụ không thể thực hiện được với chỉ HTML như kiểm tra thông tin nhập
vào, tự động thay đổi hình ảnh,... Ở Việt Nam, JavaScript còn được ứng dụng để làm
bộ gõ tiếng Việt giống như bộ gõ hiện đang sử dụng trên trang Wikipedia tiếng Việt.

Tuy nhiên, mỗi trình duyệt áp dụng JavaScript khác nhau và không tuân theo chuẩn
W3C DOM, do đó trong rất nhiều trường hợp lập trình viên phải viết nhiều phiên bản
của cùng một đoạn mã nguồn để có thể hoạt động trên nhiều trình duyệt. Một số công
nghệ nổi bật dòng JavaScript để tương tác với DOM bao gồm DHTML, Ajax và SPA.
- Bên ngoài trình duyệt, JavaScript có thể được sử dụng trong tập tinPDF của
Adobe Acrobat và Adobe Reader. Điều khiển Dashboard trên hệ điều hànhMac OS X
phiên bản 10.4 cũng có sử dụng JavaScript. Công nghệ kịch bản linh động (active

24


scripting) của Microsoft có hỗ trợ ngôn ngữ JScript làm một ngôn ngữ kịch bản dùng
cho hệ điều hành. JScript .NET là một ngôn ngữ tương thích với CLI gần giống JScript
nhưng có thêm nhiều tính năng lập trình hướng đối tượng.
Mỗi ứng dụng này đều cung cấp mô hình đối tượng riêng cho phép tương tác với
môi trường chủ, với phần lõi là ngôn ngữ lập trình JavaScript gần như giống nhau.
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 (cơ sở dữ liệu MySQL). 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, một người của nhà phát triển chính Matt Mullenweg.
WordPress là phần mềm mã nguồn mở được cung cấp miễn phí, sử dụng ngôn ngữ lập
trình PHP và hệ cơ sở dữ liệu MySQL. Thành viên có thể sử dụng nó với tên miền
riêng của mình mà không phụ thuộc vào một nhà cung cấp nào ví dụ: blog yahoo, blog
google, blog opera …
Tuy nhiên wordpress vẫn cho phép thành viên tạo blog với nhà cung cấp là
đây là nơi đáng tin cho 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ế nhất định của nó ví dụ: tên miền hiển
nhiên là không được như ý rồi, và đôi khi chịu một số quảng cáo ngoài ý muốn từ nhà

cung cấp dịch vụ hay một số bất cập khác.
Một hướng đi mới cho việc viết blog, blog là một quyển sổ nhật ký online của mỗi
chúng ta, ngôi nhà trên mạng chúng ta có thể chia sẻ kiến thức,… Do vậy chúng ta
không muốn phụ thuộc vào bất kỳ ai hay một dịch vụ nào, tên miền của riêng chúng ta,
thỏa sức viết bài mà không ai quản lý, đặt quảng cáo… một cách tự do nhất. Mã
nguồn WordPress sẽ giúp thực hiện điều đó.
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, sự đơn giản, quản lý dễ dàng và tùy biến của
thành viên với mã nguồn cao nhất.
Phiên bản mới nhất của WordPress là phiên bản 3.8. Nó được phát hành dưới
Giấy phép Tài liệu Tự do GNU.

25


×