CHƯƠNG I : CƠ SỞ LÝ THUYẾT1.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
Trang 1LỜ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áocá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 ơntớ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ốnkiế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ôitrườ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ànhtớ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ácvướ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
Trang 2LỜ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ủaquá 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àiliệ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áchnhiệ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
Trang 3MỤ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
Trang 42.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
Trang 5DANH 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
Trang 6LỜ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 tinvớ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ênthâ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ựcwebsite, sự phát triển của các nền tảng web như framework, phần mềm nguồn mở đikè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ácnề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ầygiá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ốngnà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ỏithiế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ànthiện và phát triển
Em xin chân thành cảm ơn!
Trang 7CHƯƠ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àngnhư thế nào:
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 ứngdụng HTTP
Trang 8Ngô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ậpnê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 RasmusLerdorf 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 đếncá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ácchứ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ểunhư 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àygiố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 đượchà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 ghinhậ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 giankhá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó, nó đã đượcthay 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à ZeevSuraski – 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ấyPHP/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ó
Trang 9củ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ủaPHP 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ộngmớ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ànhcô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: HypertextPreprocessor"
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ànngườ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ựatrê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àymộ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 đầutiên được giới thiệu vào giữa năm 1999 Họ sáng lập Zend Technologies tại RamatGan – 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ớihà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
Trang 10nhiề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ônngữ 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àngtriệ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ìnngườ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ủaPHP 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 PHP5.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 đầuvà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 đếnphiê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ểmnghiệ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ạikhỏi mã nguồn Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểmtra 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àmPHP 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ảnchí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ểmtra thử bao gồm Beta 4, RC 1, RC2, RC3 Mặc dù coi đây là phiên bản sản xuất đầutiê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ồimớ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 APInhấ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
Trang 11Engine 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ếnmớ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ừ Webserverchuyể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ầnmềm mã mở dưới giấy phép GNU/GPL Không như những dự án như Apache, phầnmề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 đượcsá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áttriể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 ứngdụ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ọnMySQL, ví dụ như:
Yahoo
NASA
Wikipedia
Trang 12Nó đượ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ềnbạc cho những Web sites có dung lượng lớn, phần mềm đóng gói – bao gồm cả nhữngnhà đ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ênnền Linux, Apache, MySQL, PHP/Perl/Python MySQL chạy trên hơn 20 flatform baogồm: Linux, Windows, OS/X, HP-UX, AIX, Netware, mang đến cho bạn tính linh hoạttrong 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àukinh 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áckho dữ liệu đồ sộ lên đến hàng terabytes thông tin Sự linh hoạt về flatform là một đặctí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àntoà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ỏikhắ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ớ
Trang 13caches, 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êuchuẩn đảm bảo của MySQL MySQL đưa ra nhiều tùy chọn có thể dùng ngay từ cấuhì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 ACIDhoà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 chongườ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ốtquá 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áthiệ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 websites 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ăngkhá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ảmcá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ả ứngdụ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ệtchắ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 đã đượcxá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ượngframework đặc quyền được đưa ra mà người sử dụng chỉ có thể nhìn thấy dữ liệu, cáchà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
Trang 14cùng, tiện ích backup và recovery cung cấp bởi MySQL và các hãng phần mềm thứ 3cho phép backup logic và vật lý hoàn thiện cũng như recovery toàn bộ hoặc tại mộtthờ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ấytrong 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ốinhư: ODBC, JDBC, … để cho phép tất cả các form của ứng dụng sử dụng MySQLnhư 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ờigian ở mức trung bình từ lúc download phần mềm đến khi cài đặt hoàn thành chỉ mấtchư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ộngkhông gian, tự khởi động lại, và cấu hình động sẵn sàng cho người quản trị cơ sở dữliệu làm việc MySQL cũng cung cấp một bộ hoàn thiện các công cụ quản lý đồ họacho phép một DBA quản lý, sửa chữa, và điều khiển hoạt động của nhiều serverMySQL từ một máy trạm đơn 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ảnquyề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ạnglướ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ểnmớ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 racá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
Trang 15cậ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ôngphải mất nhiều thời gian sửa chữa hay vấn đề thời gian chết.
Trang 161.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:
Trang 17 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àytháng hay dạng số
Dữ liệu kiểu số nguyên:
Trang 19 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ỗirấ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ạngchuỗ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
Trang 20- 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ớitừ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ềutí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
Trang 21- 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í
Trang 22- Hai mã nguồn bán hàng trực tuyến: Interchange và Agora
- 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 đậmPhầ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 cungcấ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ư
Trang 23mộ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éprồi, thì việc sử dụng ngoặc đơn là cần thiết
- 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 WideWeb (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ế chocá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ựatrê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ùngrộ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ụngcá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 Eichtạ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ànhLiveScript, 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ệtNetscape, LiveScript đã được đổi tên thành JavaScript để được chú ý hơn bởi ngônngữ lập trình Java lúc đó đang được coi là một hiện tượng JavaScript được bổ sung
Trang 24và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 12nă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ủaend-user và web-server
- Sau thành công của JavaScript, Microsoft bắt đầu phát triển JScript, một ngônngữ có cùng ứng dụng và tương thích với JavaScript JScript được bổ sung vào trìnhduyệt Internet Explorer bắt đầu từ Internet Explorer phiên bản 3.0 được phát hànhtháng 8 năm 1996
- DOM (Document Object Model), một khái niệm thường được nhắc đến vớiJavaScript trên thực tế không phải là một phần của chuẩn ECMAScript, DOM là mộtchuẩ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áttriể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ềmngô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ệnmộ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ậpvà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ẩnW3C 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ảncủ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ôngnghệ 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ủaAdobe Acrobat và Adobe Reader Điều khiển Dashboard trên hệ điều hànhMac OS Xphiên bản 10.4 cũng có sử dụng JavaScript Công nghệ kịch bản linh động (active
Trang 25scripting) của Microsoft có hỗ trợ ngôn ngữ JScript làm một ngôn ngữ kịch bản dùngcho hệ điều hành JScript NET là một ngôn ngữ tương thích với CLI gần giống JScriptnhư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ớimô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ậptrì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ềnriê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, bloggoogle, 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à
http://wordpress.com/ đâ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ểnnhiê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ỗichú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 takhô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ủathà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ướiGiấy phép Tài liệu Tự do GNU
Trang 261.6.2 Nét nổi bật của Wordpress
- Việc quản lý blog, quản lý các bài viết rất thuận tiện giống như các phần mềmthiết kế website chuyên nghiệp
- Thể hiện các tệp PDF, DOC, Powerpoint ngay trên nội dung bài viết Đặc biệttích hợp sẵn Latex – công cụ soạn thảo công thức toán học, giúp người sử dụng có thểviết công thức toán học ngay trên blog
- WordPress có 23 Widget (ứng dụng tạo thêm) như Thống kê số truy nhập blog,Các bài mới nhất, Các bài viết nổi bật nhất, Các comment mới nhất, Liệt kê cácchuyên mục, Liệt kê các Trang, Danh sách các liên kết, Liệt kê số bài viết trong từngtháng … Có 79 theme để thành viên lựa chọn
- Ngoài thống kê số truy nhập của từng ngày cho blog, WordPress còn thống kê
số truy nhập của từng ngày đối với mỗi bài viết của blog Trên cơ sở đó chủ blog sẽ cóđịnh hướng nên viết vấn đề gì tiếp theo
- Các comment có thể duyệt rồi mới cho đăng, comment nào có nội dung khôngphù hợp có thể xóa, nếu cho là spam thì sau này IP đó không có thể gửi comment vàoblog được nữa
- Admin (chủ blog) có thể cho 35 cộng tác viên gửi bài vào blog, có thể phânquyền cho các cộng tác viên theo các cấp độ khác nhau Lưu giữ danh sách thành viên
đã ghé thăm trang blog Admin cũng có thể cho bất kỳ ai đăng bài qua email vào blogmiễn là admin cho họ một địa chỉ email bí mật của blog (địa chỉ này có thể thay đổibất kỳ lúc nào)
- Sao lưu dữ liệu nhằm khôi phục nội dung blog một cách dễ dàn nếu chẳng mayblog bị hack, và cung cấp công cụ chuyển nhà từ các blog khác sang blog WordPress
- WordPress hỗ trợ 3 GB để lưu trữ các tệp hình ảnh và văn bản
- Hàng ngày WordPress có thống kê 100 bài trên các blog tiếng Việt củaWordPress được nhiều người đọc nhất trong vòng 48 tiếng Nhờ đó biết được cácthông tin quan trọng nhất đang diễn ra