Từ kiến thức nền tảng có được trong việc sử dụng những thành phần mở rộng của có sẳn trong Joomla, bạn sẽ tục tìm những thành phần mở rộng nâng cao để thiết kế một trang web chuyên ngh
Trang 1–&—
Trang 2LỜI CỦA TÁC GIẢ
Xin kính chào các bạn! Tôi không phải là một người chuyên nghiệp trong lĩnh vực thiết kế web Tôi cũng không phải là một giáo viên dạy công nghệ thông tin Đây là đầu tiên trong đời tôi tự viết được một cuốn sách và chia sẽ nó cho cộng động Tôi rất vui vì điều này, và tôi tin chắc những bạn IT nào cũng có cảm giác đó như tôi
Chuyên đề THIẾT KẾ WEB VỚI JOOMLA này là những ngày đêm miệt mài nghiên cứu của
tôi Tôi rất vinh hạnh chia sẽ kiến thức của mình cho các bạn Đặc biệt là những bạn mới làm quen với Joomla, để các bạn không phải mệt óc với cả khối tài liệu rời rạc, vừa tiếng Anh, vừa tiếng Việt trên mạng như hiện nay
Với tất cả những gì có thể tôi đã biên soạn thành công tài liệu thiết kế web với Joomla này bao gồm những nội dung cơ bản nhất giúp các bạn tự tạo, và quản trị một website đơn giãn bằng
Joomla Bạn sẽ bắt đầu với việc tìm hiểu về những nguyên lý hoạt động của internet và
website Tiếp đó bạn cùng tôi khám phá cách cài đặt một website mã nguồn Joomla như thế
nào Từ kiến thức nền tảng có được trong việc sử dụng những thành phần mở rộng của có
sẳn trong Joomla, bạn sẽ tục tìm những thành phần mở rộng nâng cao để thiết kế một trang
web chuyên nghiệp hơn, như trang web tin tức, web chia sẽ file, web thương mại điện tử,
diễn đàn Công việc cuối cùng mà bạn sẽ được tìm hiểu là việc bảo mật cho website, và tối
ưu hóa website sử dụng Joomla Hầu hết các bài thực hành đều làm trên localhost, như vậy nếu
bạn có nhu cầu chia sẽ website cho mọi người thì làm sao Chương cuối cùng của cuốn sách này
sẽ hướng dẫn cách up website lên internet
Mặc dù đã cố gắn hết sức, nhưng cũng còn nhiều phần mà tôi chưa kịp chia sẽ với các bạn Kiến thức thì quá là bao la, tôi cũng chia kịp khám phá ra hết Vì vậy nếu có phần nao thiếu xót mong các bạn góp ý tậng tình
Tôi là người rất ngay thẳng, nghĩ sao nói vậy, “nói sao viết vậy” Đó chính là khuyết điểm lớn
nhất của tôi – sai lổi chính ta Vì vậy nếu bạn có gặp những từ nào trong cuốn sách này viết sai lổi chính tả thì mong bạn bỏ qua lổi đó cho tôi
Lời cuối cùng, mong các bạn học thật tốt Khi đã đọc xong cuốn sách và tạo được một website thì đừng quên chia sẽ nó cho tôi Gửi về địa chỉ email bên dưới!
Trang 3PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 3
MỤC LỤC
LỜI CỦA TÁC GIẢ 2
M Ụ C L Ụ C 3
CHƯƠNG 1: CÁC VẤN ĐỀ TRƯỚC KHI SỬ DỤNG JOOMLA 7
BÀI 1: INTERNET 7
I: GIAO THỨC (PROTOCOL) 7
II: PHÂN LOẠI WEB 8
BÀI 2: DOMAIN AND HOSTING 9
I: DOMAIN 9
II: HOSTING 10
BÀI 3: NGÔN NGỮ LẬP TRÌNH VÀ CƠ SỞ DỮ LIỆU 11
I: NGÔN NGỮ LẬP TRÌNH 11
II: CƠ SỞ DỮ LIỆU (DATABASES) 12
BÀI 4: CÀI ĐẶT WEB SERVER XAMPP 12
I: GIỚI THIỆU 12
II: CÀI ĐẶT 12
III: CẤU HÌNH 16
BÀI 5: QUẢN TRỊ CƠ SỞ DỮ LIỆU BẰNG PHPMYADMIN 18
I: GIỚI THIỆU 18
II: THAY ĐỔI MẬT KHẨU TRUY CẬP DỮ LIỆU 18
III: QUẢN TRỊ CƠ SỞ DỮ LIỆU 19
BÀI 6: QUẢN TRỊ CSDL BẰNG NAVICAT 24
I: GIỚI THIỆU 24
II: QUẢN TRỊ CSDL VỚI NAVICAT 24
BÀI 7: LẬP TRÌNH PHP 27
CHƯƠNG 2: CÀI ĐẶT VÀ CẤU HÌNH JOOMLA 48
BÀI 1: GIỚI THIỆU JOOMLA 48
I: VỀ JOOMLA 48
II: CÁC THÀNH PHẦN MỞ RỘNG CỦA JOOMLA 49
III : CÁC THUẬT NGỮ 50
BÀI 2: CÀI ĐẶT JOOMLA 52
BÀI 3 : GIỚI THIỆU GIAO DIỆN LÀM VIỆC CỦA ADMIN 57
I: GIAO DIỆN LÀM VIỆC 57
II: HỆ THỐNG MENU 59
BÀI 4: CẤU HÌNH CƠ BẢN CHO WEBSITE 61
CHƯƠNG 3: QUẢN LÝ BÀI VIẾT TRONG JOOMLA 63
BÀI 1: QUẢN LÝ SECTION 63
I: GIỚI THIỆU 63
Trang 4II: TẠO MỚI SECTION 63
III : QUẢN LÝ SECTION 64
BÀI 2 : QUẢN LÝ CATEGORY 65
I : GIỚI THIỆU 65
II : TẠO MỚI CATEGORY 65
III : QUẢN LÝ CATEGORY 66
BÀI 3 : QUẢN LÝ BÀI VIẾT 67
I : THÊM MỚI BÀI VIẾT 67
II : QUẢN LÝ BÀI VIẾT 68
III : CẤU HÌNH CÁC THÔNG SỐ CHO BÀI VIẾT 68
IV: TẠO BÀI VIẾT NÂNG CAO 70
BÀI 4: QUẢN LÝ ĐA PHƯƠNG TIỆN 73
HƯỚNG DẪN QUẢN LÝ ĐA PHƯƠNG TIỆN 73
QUY ĐỊNH THƯ MỤC LƯU TRỮ 74
BÀI 5: QUẢN LÝ USER 74
QUẢN LÝ USER VÀ TẠO MỚI USER 74
PHÂN QUYỀN TRONG JOOMLA 75
CHƯƠNG 4: LÀM VIỆC CƠ BẢN VỚI CÁC THÀNH PHẦN MỞ RỘNG 78
BÀI 1: CÀI ĐẶT CÁC THÀNH PHẦN MỞ RỘNG 78
CÁCH CÀI ĐẶT EXTENSIONS 78
BÀI 2: TEMPLATE 80
HƯỚNG DẪN CÀI ĐẶT TEMPLATE 80
CẤU TRÚC GÓI CÀI ĐẶT CỦA TEMPLATE 82
TẬP HỢP CÁC TRANG CUNG CấP TEMPLATE FREE 82
BÀI 3: MODULE 83
TẠO MỚI MỘT MODULE 84
BÀI 4: PLUGIN 85
PHÂN LOẠI PLUGIN 85
BÀI 5: KHAI THÁC COMPONENT 86
I : Banner 86
II: Contacts 88
II: News Feed 88
IV: Polls 89
V: Search 90
VI: Web Links 90
BÀI 6: TẠO VÀ QUẢN LÝ MENU 91
Tạo Menu 91
MENU Đặc Biệt 92
Tạo DropDown Menu 93
BÀI 7: KHAI THÁC MODULE CÓ SẴN TRONG JOOMLA 94
I: Latest News (Tin mới nhất), Popular (Tin đọc nhiều nhất) 94
II: Who’s Online 94
III: News Flash 95
Trang 5PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 5
IV: Customs HTML 95
CHƯƠNG 5: TIẾNG VIỆT TRONG JOOMLA 96
BÀI 1: VIỆT HÓA JOOMLA 96
I: HƯỚNG DẪN TỰ VIỆT HÓA 96
II: HƯỚNG DẪN VIỆT HÓA BẰNG GÓI NGÔN NGỮ CÓ SẴN 97
BÀI 2: CÀI BỘ GÕ TIẾNG VIỆT VÀO TRANG WEB 98
I: Cài đặt bộ gõ tiếng Việt AVIM thủ công cho Joomla 98
II:Cài đặt bộ gõ tiếng việt AVIM bằng Module 99
BÀI 3: LỖI HIỂN THỊ TIẾNG VIỆT 100
CHƯƠNG 6: KHAI THÁC THÀNH PHẦN MỞ RỘNG NÂNG CAO 101
BÀI 1: KHAI THÁC MODULE 101
I: VISITORS COUNTER 101
II: SLIDE SHOW 101
III: JA TABS 102
IV: MAXI MENU 103
BÀI 2: TẠO VÀ QUẢN LÝ COMMENTS 104
GIỚI THIỆU VÀ CÀI ĐẶT 104
QUẢN LÝ COMMENTS 105
CẤU HÌNH 105
BÀI 3 : TRÌNH SOẠN THẢO JCE 107
PHÂN NHÓM SỬ DỤNG 107
BÀI 4: TẠO WEB THƯƠNG MẠI ĐIỆN TỬ VỚI VIRTUE MARK 109
TÍNH NĂNG CỦA VIRTURE MARK 109
HƯỚNG DẪN CÀI ĐẶT 109
VIỆT HÓA VIRTURE MARK 110
SỬ DỤNG CÁC MODULE 111
THEME CHO VIRTURE MARK 112
BÀI 5: QUẢN LÝ FILE VỚI DOCMAN 113
I: CÀI ĐẶT DOCMAN 113
II: CHIA SẼ TÀI NGUYÊN 113
III : PHÂN QUYỀN THEO NHÓM 117
IV : THEME CHO DOCMAN 117
BÀI 6: TẠO DIỄN ĐÀN ĐƠN GIÃN VỚI KUNENA 119
I: CÀI ĐẶT KUNENA 119
II: TẠO MỚI CÁC DANH MỤC TRONG FORUM 119
III: NHỮNG CHỨC NĂNG KHÁC 121
BÀI 7: TẠO WEB NHẠC VỚI MAIAN MUSIC 122
CÀI ĐẶT 122
SỬ DỤNG MAIANMUSIC 124
HIỂN THỊ CÁC BÀI HÁT MỚI ĐĂNG 130
VIỆT HÓA MAIAN MUSIC 131
Trang 6BÀI 8: TẠO WEB ẢNH PHOCA GALLERY 132
QUẢN LÝ ALBUM 132
HIỂN THỊ ALBUM 133
THEME CHO PHOCA GALLERY 134
M ODULE P HOCA G ALLERY M ENU 135
BÀI 9: TẠO MENU VỚI SWMENUFREE 136
BÀI 10: PLUGIN CHÈN NHẠC – VIDEO 139
CHƯƠNG 7: NHỮNG VẤN ĐỀ NÂNG CAO KHI QUẢN TRỊ WEB VỚI JOOMLA 141
BÀI 1: ĐẢM BẢO AN TOÀN CHO WEBSITE 141
I:BACKUP WEBSITE & DATABASE 141
II: THAY ĐỔI TIỀN TỐ MẶC ĐỊNH CHO DATABASE 142
III: THAY ĐỔI ĐƯỜNG DẪN MẶC ĐỊNH CHO TRANG QUẢN TRỊ 144
BÀI 2: TỐI ƯU HÓA WEBSITE 145
I: SỬ DỤNG CACHING 145
II: TỐI ƯU HÓA DATABASE 146
III: TẠO ĐƯỜNG DẪN THÂN THIỆN 147
IV: MỘT SỐ PHƯƠNG PHÁP TỐI ƯU KHÁC 148
BÀI 3: XUẤT BẢN WEBSITE LÊN INTERNET 148
I: HƯỚNG DẪN ĐĂNG KÝ HOST FREE TẠI BYETHOST 148
II: QUẢN LÝ FILE TRÊN HOST 151
III: XUẤT BẢN WEBSITE LÊN INTERNET 153
IV: THÔNG SỐ CẦN CHÚ Ý KHI TẢI WEBSITE LÊN INTERNET 156
LỜI CẢM ƠN 158
TÀI LIỆU THAM KHẢO 158
Trang 7PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 7
–&—
BÀI 1: INTERNET I: GIAO THỨC (PROTOCOL)
1: Khái niệm
Ngôn ngữ được sử dụng bởi các thực thể mạng gọi là giao thức truyền thông (gọi tắc là giao thức) Các bên hiểu nhau do giao thức định nghĩa một ngôn ngữ chung giữa các thành phần mạng Từ khái niệm cơ bản này, bạn có thể hiểu giao thức là thủ tục, quy tắc hoặc các đặc tả chính thức đã được chấp nhận nhằm xác định các hành vi và ngôn ngữ trao mà các bên trao đổi với nhau
Trong cuộc sống chúng ta cũng áp dụng nhiều quy tắc khác nhau Ví dụ như khi đi đến một nơi mang tính chất quan trọng, mọi người luôn phải tuân thủ những quy tắc về trang phục như phải mặc đồ vét có thắc caravat Trong khi đi đến một quán ăn bình dân thì mặc gì cũng được Trong mạng máy tính giao thức là những bản đặc tả về cách thức “xử sự” của các thực thể tham gia truyền thông
Trong việc thiết kế web bạn cần quan tâm đến hai giao thức là HTTP và FTP
2: Giao thức HTTP
Hyper Text Transfer Protocol (HTTP)
Là trái tim của web Giao thức HTTP được triển khai trên cả hai phía Client và Server HTTP quy định cách thức trao đổi thông tin thông qua việc giao tiếp bằng các thông điệp HTTP
HTTP xác định cách thức trình duyệt yêu cầu một trang web từ web server cũng như các thức mà server sẽ gửi trả kết quả cho web client
Trang web (Web pages – còn gọi là một tập tin web) :
Chứa các đối tượng (Object) Đơn giãn đó chỉ là một file text, hay là một tập tin hình ảnh, âm nhạc…Đối tượng được xác định qua URL Trang web chứa các một file HTML
cơ sở và tham chiếu đến các đối tượng khác
Trình duyệt (Browser – Web Client)
Chương trình giao tiếp người dùng của ứng dụng Web cho phép hiển thị trang web Browser cài đặt phía client của giao thức HTTP Hiện nay có nhiều phần mềm trình duyệt phổ biến như Internet Explorer, Firefor, Opera…
Web server
Trang 8URL (Uniform Resource Locator)
Là một tên gọi khác của địa chỉ web URL bao giồm tên giao thức (là HTTP hay FTP…), kế đến dấu hai chấm và hai dấu xuyệt sắc (://), ví dụ địa chỉ http://www.uit.edu.vn dẫn đến website có địa chỉ là www.uit.edu.vn bằng giao thức HTTP Khi truy cập chúng ta có thể bỏ qua tiền tố http:// vì trình duyệt mặc định thêm thành phần này vào Một URL phải chính xác đến từng ký tự, vì chỉ cần thêm một dấu chấm là đã dẫn đến một trang web khác
3: Giao thức FTP
FTP(File Transfer Protocol) là giao thức dùng để truyền file giữa các máy tính Trong phiên làm việc, người dùng sử dụng tại máy tính của mình và trao đổi file với máy tính khác Người dùng cần phải đăng nhập bằng cách cung cấp tên định danh (username) và mật khẩu xác thực (password)
Cả hai giao thức HTTP và FTP đều dùng để truyền file Nhưng ở chúng có một đặc điểm khác nhau cơ bản là ở FTP bạn không thể mở trực tiếp file đó được Nó cần bạn đưa về máy tính trước khi mở nó lên Trong khi với HTTP bạn có thể mở file trực tiếp được
4: Một số giao thức khác
Thỉnh thoảng bạn vẫn thấy có vài website là https://gmail.com chẳng hạn Như vậy giao thức HTTPS là gì? Đó chính là một dạng của HTTP nhưng được tăng cường thêm tính năng bảo mật, cụ thể là nó mã hóa tất cả thông tin gửi đi trên đường truyền Chữ S ở đây chính là SSL
Bạn cũng thường truy cập một file nhạc dạng mms://www.data.com/anhmaiyeuem.mp3 chẳng hạn Như vậy chúng ta có một giao thức mới cho việc truyền dẫn các file nhạc đó chính là MMS Giao thức còn dùng cho việc truyền các file video, hình ảnh nói chung là
đa phương tiện
II: PHÂN LOẠI WEB
Static Web (Web tĩnh)
Chỉ bao gồm nội dung hiển thị cho người dùng xem Nội dung này có thể là text thông thường, nhưng cũng có thể là một file đa phương tiện (hình ảnh, âm nhạc, video, flash…)
Froms Pages (Biểu mẫu)
Ngoài những nội dung thông thường như Static web, nó có thêm phần điền thông tin,
dữ liệu do người dùng nhập vào Sau khi điền xong form người dùng bấm nút Submit thì
dữ liệu được gửi đến đầu vào của một trang web khác
Dynamic Web (Web động)
Trang 9PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 9
Cũng đừng bao giờ định nghĩa web tĩnh là web lập trình bằng HTML, còn web động là web lập trình bằng PHP hay Java…Những trang web lập trình bằng PHP chưa chắc là web động, nếu nó chỉ dùng để hiển thị thông tin
BÀI 2: DOMAIN AND HOSTING I: DOMAIN
Thành phần google như ví dụ trên chính là host name Để có thể đưa website ra cộng
đồng bạn cần mua một địa chỉ Địa chỉ này gọi là Domain Name Ví dụ ở đây chúng ta
cần phải mua google.com
Thỉnh thoảng bạn cũng lấy một domain có hai thành phần ví dụ như com.vn Nó được cấp phát và quản lý bỡi nhà quản lý domain cấp cao, trong ví dụ này là vn
2: Tại sao phải sử dụng domain name
Khi làm việc với máy tính, nó sử dụng những con số Để truy cập website nó sẽ tìm đến máy tính lưu dữ liệu web (các file) bằng địa chỉ IP của máy tính Nhưng đối với con người thì việc nhớ những IP này không hay cho lắm Vì vậy mà người ta dùng domain name để ánh xạ một địa chỉ dạng text sang IP
Việc phân giải tên miền thành IP được thực hiện thông qua dịch vụ DNS (Domain Name Services)
Trang 101: Khái niệm hosting
Dịch vụ Web host là hình thức dịch vụ host trên Internet, cung cấp cho các cá nhân, tổ
chức và người sử dụng những hệ thống trực tuyến (trên mạng) để lưu trữ thông tin, hình ảnh, video, hoặc bất kỳ nội dung nào khác có thể truy cập qua Web Web host là các công ty chuyên cung cấp chỗ (dung lượng) trên server của họ cho khách hàng sử dụng, đồng thời cung cấp kết nối Internet, thường trong một trung tâm dữ liệu Các Web host còn có thể cung cấp không gian ở trung tâm dữ liệu và kết nối Internet đến các server không thuộc sở hữu của họ
2: Phạm vi dịch vụ
Phạm vi của các dịch vụ host rất rộng Cơ bản nhất là host trang Web và những tập tin nhỏ, với các tập tin được upload lên server thông qua giao thức FTP hoặc một giao diện Web Các tập tin thường được cung ứng “nguyên trạng” cho ứng dụng Web, hoặc chỉ được xử lý rất ít Nhiều nhà cung cấp dịch vụ Internet (ISP) cung cấp dịch vụ này miễn phí cho khách hàng của họ Người dùng còn có thể sử dụng dịch vụ Web host do nhiều nhà cung cấp dịch vụ khác cung cấp Dịch vụ Web host thường miễn phí, có kèm theo quảng cáo hoặc có giá rẻ
Dịch vụ Web host thông thường chỉ đủ đáp ứng nhu cầu của các trang chủ cá nhân Một Web site phức tạp đòi hỏi một gói dịch vụ toàn diện hơn, cung cấp khả năng hỗ trợ cơ sở
dữ liệu và các hệ nền phát triển ứng dụng (như PHP, Java, ASP.NET) Những tính năng này cho phép người dùng viết hoặc cài đặt script cho các ứng dụng như diễn đàn hay quản lý nội dung Các Web site thương mại điện tử còn đòi hỏi mã hóa SSL
Nhà cung cấp dịch vụ host có thể còn cung cấp một bảng điều khiển giao diện Web (Cpanel, Helm, Plesk, ví dụ thế) để quản lý Web server và cài đặt script cũng như các dịch vụ khác, chẳng hạn e-mail Gần đây các bảng điều khiển hoặc giao diện Web này gây ra nhiều cuộc tranh cãi khi Web.com tuyên bố công ty này được độc quyền về công nghệ host với 19 phát minh của mình Hostopia, một công ty host sỉ lớn, gần đây đã mua quyền sử dụng công nghệ của Web.com với giá 10% lợi tức host lẻ Web.com cũng đã kiện công ty Godaddy vì xâm phạm các phát minh độc quyền đó
Một số nhà cung cấp dịch vụ host tập trung vào một phần mềm hoặc dịch vụ nhất định (ví dụ như thương mại điện tử) Những phần mềm hay dịch vụ này thường do các công
ty lớn hơn sử dụng để tận dụng kiến trúc hạ tầng mạng của công ty cung cấp dịch vụ host
3: Các loại dịch vụ host
Sau đây là những dịch vụ giới hạn trong phạm vi ứng dụng Web:
Dịch vụ Web host miễn phí: Miễn phí, (đôi khi) chấp nhận quảng cáo, và cực kỳ hạn
chế khi so sánh với dịch vụ host có thu phí
Dịch vụ Web host dùng chung: Website của bạn được đặt chung server với hàng trăm
Web site khác
Dịch vụ host dành riêng: Người sử dụng thuê trọn Web server và có toàn quyền điều
khiển nó, tuy nhiên, người sử dụng không sở hữu server
Trang 11PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 11
Dịch vụ host hỗ trợ: Tương tự dịch vụ host dành riêng, nhưng người sử dụng sở hữu
server; công ty host chỉ cung cấp chỗ (không gian vật lý) để lắp đặt và bảo trì server Đây
là loại dịch vụ Web host mạnh nhất và đắt tiền nhất
Server ảo dành riêng: Chia một server thành nhiều server ảo, mỗi người dùng có cảm
tưởng như họ đang quản lý server dành riêng cho họ, nhưng thât ra họ đang chia sẻ server với nhiều người dùng khác
Web host lẻ: Cho phép khách hàng cung cấp dịch vụ Web host cho chính họ
Host phân bổ: Sử dụng nhiều server lưu trữ cùng một nội dung để tận dụng tài nguyên
BÀI 3: NGÔN NGỮ LẬP TRÌNH VÀ
CƠ SỞ DỮ LIỆU I: NGÔN NGỮ LẬP TRÌNH
3: Ngôn ngữ PHP, ASP, JAVA
Ngôn ngữ chạy phía server, nó thực hiện một quá trình biên dịch mã nguồn và trả về kết quả, hiển thị lên Browes cho người xem
Quy trình biên dịch như sau:
Ngôn ngữ này cho phép tương tác với cơ sở dữ liệu Ngôn ngữ phổ biến được dùng nhiều nhất là PHP
Trang 12II: CƠ SỞ DỮ LIỆU (DATABASES)
Bạn thường vào một diễn đàn, đăng ký thông tin để tham gia vào diễn dàn Như vậy những thông tin mà bạn đăng ký đó gọi là dữ liệu Toàn bộ được lưu lại trong hệ thống gọi là cơ sở dữ liệu
Các chương trình quản lý cơ sở dữ liệu phổ biến như SQL Server, Oracel, Access, MySQL Để dùng cho thiết kế bằng ngôn ngữ PHP người ta thường dùng MySQL, bỡi tính đơn giãn dể sử dụng của nó
BÀI 4: CÀI ĐẶT WEB SERVER
XAMPP I: GIỚI THIỆU
Xampp là máy chủ web cho phép bạn cài đặt và quản lý website của mình tại máy tính của mình Khi cài đặt thành công Xampp bạn sẽ được một host ảo hay còn gọi là localhost Với localhost thì việc quản trị nó tương tự như quản trị trên host thật
Xampp hổ trợ hầu hết các hệ điều hành Nó hổ trợ việc thực thi ngôn ngữ lập trình PHP, Perl Sau khi cài đặt bạn còn có thêm tiện ích PHPMyAdmin là chương trình dùng để quản trị cơ sở
dữ liệu dưới dạng giao diện đồ họa
Hiện tại chương trình có nhiều phiên bản cho bạn lựa chọn Tuy nhiên việc lựa chọn phiên bản nào còn tùy thuộc vào hệ thống và nhu cầu của bạn
Để tải chương trình bạn truy cập địa chỉ: http://www.apachefriends.org/ Lưu ý chọn đúng phiên bản dành cho hiệu điều hành
II: CÀI ĐẶT
Bước 1: Download chương trình từ địa chỉ trên Ở đây sử dụng phiên bản 1.7.2 cho Windows
Bước 2: Kích vào tập tin vừa tải về để cài đặt Tại màn hình đầu tiên bạn chú vào trường
Destination Folder, tại đây đang chọn là ổ C, nhưng tôi khuyên bạn nên chọn sang một ổ đĩa
khác không có cài hệ điều hành Bấm nút Next
Trang 13Bước 3: Trong bước tiếp theo này bạ
tùy chọn trong mục Services Session là
chọn sẽ chạy mặc trong Windows
NGHIỆM – LƯU HÀNH NỘI BỘ
ạn đảm bảo đã chọn hết tất cả các tùy chọn Trong đó có ba
c Services Session là quan trọng nhất Điều này có nghĩa là ba d
Trong đó có ba
ĩa là ba dịch vụ được
Trang 14Bước 5: Khi những màn hình DOS xuất hiện bạn cứ để yên cho nó qua hết cho đến khi màn
hình báo đã cài đặt hoàn tất xuất hiện
Trang 15PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 15
Bước 6: Tiếp theo bạn ra desktop tìm icon của chương trình và khởi động nó lên
Bấm nút Start cạnh hai dịch vụ Apache và MySql, để ý thấy trạng thái của nó là Running thì được Bấm nút Exit để thoát chương trình
Bước 7: Bạn kiểm tra chương trình đã hoạt động chưa bằng cách mở trình duyệt web bất kỳ và
gõ vào địa chỉ http://localhost hoặc http://127.0.0.1 Nếu kết quả xuất hiện như hình dưới đây là bạn đã cài đặt thành công
Trang 161: Thay đổi địa chỉ local
Mặc định để truy cập vào webserver bạn vào địa chị http://localhost Nhưng nếu bạn muốn thay địa chỉ này thành một cái tên tùy thích, ví dụ như http://tinhyeucuatoi.com chẳng hạn Bạn thực hiện như sau:
Bước 1: Mở Windows Explorer lên theo đường dẫn C:\Windows\System32\drivers\etc
Bước 2: Mở tập tin hosts bằng Notepad
thích Trong ví dụ này là tinhyeucuatoi.com Bỏ dấu # phía trước
Bước 4: Lưu tập tin này lại và kiểm tra bằng cách truy cập vào trình duyệt http://tinhyeucuatoi.com
2 Tạo thử website
Bây giờ chúng ta sẽ thử tạo ra một website đơn giãn để kiểm tra webserver của chúng ta hoạt động chưa
Bước 1: Bạn tìm theo địa chỉ C:\Xampp\htdocs (C:\ là thư mục cài đặt) tạo thêm một thư mục
mới có tên MyWeb dùng để chứa website của bạn tạo ra
Bước 2: Tạo tập tin Index.html trong thư mục MyWeb trên, nội dung tùy ý Ví dụ ở đây tôi ghi
nội dung như hình
Trang 17PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 17
trang web với nội dung ở trên thì là thành công (Lưu ý: nếu bạn đã sửa địa chỉ localhost thành địa chỉ khác thì nhớ gõ đúng, trong sách này tôi sử dụng mặc định)
3 Thay đổi thư mục htdocs
Mặc định thì bắt buộc bạn phải lưu thư mục chứa web của mình trong thư mục htdocs Nhưng
bạn muốn thay đổi địa chỉ này qua một thư mục khác chẳng hạn Chúng ta làm như sau:
Bước 1: Bạn tìm đến thư mục C:\xampp\apache\conf Mở tập tin httpd.conf bằng notepad Bước 2: Tìm đến dòng <Directory "C:/xampp/htdocs"> và thay đường dẫn trong đó bằng
đường dẫn đến thu mục chứa web mới của bạn Ví dụ tôi tạo thư mục D:\Data thì tôi sẽ sửa lại thành <Directory "D:/Data">
Bước 3: Tìm đến dòng DocumentRoot "C:/xampp/htdocs" và cũng sửa đường dẫn trong đó
đến thư mục chứa web Bạn chú ý dùm tôi dấu gạch chéo trong địa chỉ
Trang 18Bước 4: Khởi động lại dịch vụ Apache bằng cách mở trình điều khiều Xampp, bấm Stop ở dịch
vụ Apache và sau đó chọn Start trở lại Nếu trạng thái lúc này là Running thì việc cấu hình của bạn thành công
Bước 5: Bạn thử kiểm tra lại bằng cách tạo một file Index.html và truy cập vào website của
mình
BÀI 5: QUẢN TRỊ CƠ SỞ DỮ LIỆU
BẰNG PHPMYADMIN I: GIỚI THIỆU
Trình quản trị cơ sở dữ liệu PHPMyAdmin quản trị cơ sở dữ liệu bằng ngôn ngữ dữ liệu MySQL Nó cho phép tạo ra một cơ sở dữ liệu, tương thích với ngôn ngữ lập trình web PHP
PHPMyAdmin viết trên nền web nên dễ dàng sử dụng và được nhiều người ưa chuộng
Còn nói về ngôn ngữ truy vấn dữ liệu MySQL thì nó không khác gì SQL cho lắm Nhưng nó
hổ trợ tốt hơn cho PHP
II: THAY ĐỔI MẬT KHẨU TRUY CẬP DỮ LIỆU
Công việc đầu tiên bạn nên làm là đặt mật khẩu bảo vệ cho cơ sở dữ liệu của mình Để làm điều này bạn truy cập vào trang http://localhost/security/xamppsecurity.php
Nhập mất khẩu hiện tại và mật khẩu mới, rồi bấm nút Password changing
Trang 19PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 19
Thông báo Password đã được thay đổi thành công
III: QUẢN TRỊ CƠ SỞ DỮ LIỆU
1: Truy cập trang quản trị
Để làm điều này bạn vào địa chỉ http://localhost/phpmyadmin
Đăng nhập với Username mặc định là root, Password do bạn đặt ở mục trước Nếu đúng thì
chương trình PHPMyAdmin xuất hiện như hình bên dưới
Trang 20Để tạo mới một CSDL bạn chọn tab Databases, điền tên CSDL trong trường Create new
databases Lưu ý: chọn thêm kiểu mã hóa ký tự là utf8_general_ci trong mục chọn kế bên Sau
cùng bấm Create
Nhận được thông báo đã tạo thành công một CSDL mới
3: Tạo Table (thuật ngữ gọi là quan hệ) mới cho dữ
liệu
Bây giờ chúng ta sẽ tạo mới một bảng cho dữ liệu MyData ở trên
Ví dụ tôi sẽ tạo một bảng ThongTinSinhVien để lưu thông tin
của sinh viên Để làm điều này bạn thực hiện như sau
Bên góc tay trái bạn chọn vào tên database của mình là
MyData
Bạn nhận được một thông báo No table found in
database có nghĩa là bảng dữ liệu bây giờ đang trống Để
tạo mới bạn gõ tên Table trong trường Name, trường
Trang 21PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 21
Chúng ta nhận được một bảng yêu cầu các Column cho Table vừa tạo:
Ví dụ này chúng ta sẽ tạo một dữ liệu như sau:
Máy Tính
7.42
085203
25
Trương Anh Duy
7.62
+ Phần được in đậm trong bảng trên được gọi Field, nó là tiêu đề để nhận diện cột Ta
điền nó trong trường Field
+ Trường Type quy định kiểu dữ liệu (data type) cho Field
MSSV: Varchar HOTEN: Text NGAYSINH: Date KHOA:Text DTB: Float
Trang 22+ Length/Value dùng để chỉ định độ dài của dữ liệu Phần này bỏ trống, nó tự gán giá
trị mặc định cho mỗi Field Tuy nhiên tùy theo kiểu dữ liệu (data type) mà trường này được phép bỏ trống hay không Ví dụ kiểu Varchar bạn bắt buộc phải nhập giá- trị cho
Trang 23PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 23
Lưu ý: Nếu nhập cùng lúc nhiều dòng bạn phải bấm vào nút Go ở dưới cùng Nếu bấm nút Go ở
dòng nào thì chỉ có dòng đó được thêm
Chuyển qua tab Browse bạn thấy dữ liệu đã được thêm vào
Để hiểu về ý nghĩa cửa Database và quản trị chúng, các bạn sẽ được học trong môn Cơ
Sở Dữ Liệu, và nhiều môn học liên quan trong ngành Hệ Thống Tin Tin Trong bài viết này chỉ hướng dẫn một cách cơ bản nhất để những bạn chưa biết gì có thể làm quan cơ bản nhất
Trang 24Navicat là một phần mềm phía Client, cho phép nối đến server chứa CSDL để thực hiện công việc quản trị Bạn hình dung khi bạn mua một host do nhà cung cấp dịch vụ cấp Bạn sẽ nhận được một tài khoản để kết nối đến Database Server của họ Và bạn sẽ sử dụng phần mềm Navicat này để thực hiện quản trị nó từ xa
Navicat không khác gì với PHPMyAdmin, nhưng nó hổ trợ nhiều tính năng hơn, và bảo mật cao hơn
II: QUẢN TRỊ CSDL VỚI NAVICAT
1: Cài đặt Navicat
Để cài đặt Navicat bạn tìm và tải phần mềm tại địa chỉ http://www.navicat.com
Sau khi tải về bạn cài đặt như bao phần mềm khác, và giao diện khi lần đầu tiên làm việc như hình bên dưới
2: Kết nối đến server
Chọn tác vụ Connection trong giao diện chính của chương trình Một cửa sổ yêu cầu thông tin kết nối hiện ra Bạn nhập thông tin kết nối đến máy chủ
Ở đây tôi chỉ kết nối đến server local, tức là server ảo ngay trên máy tính của tôi Trong phần
Connection Name bạn cho biết tên của của kết nối này, tùy ý thích của bạn Trong trường Host name/ IP Address bạn nhập địa chỉ của server Khi đăng ký host bạn được cung cấp địa chỉ
này Ở đây tôi nhập là localhost do tôi đang kết nối đến server local Hai trường User name và
Trang 25PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 25
Password yêu cầu khai báo thông tin đăng nhập server Nếu kết nối local bạn nhập như đăng
nhập PHPMyAdmin Sau cùng bấm OK
Trở lại màn hình chính bạn thấy tên kết nối đã xuất hiện bên trái Bấm chuột phải vào đó và
tài khoản đó cũng có quyền này, nhưng thấp hơn một tài khoản khác gọi là user system
Để quản lý user bạn chọn tác vụ Manage Users
Trang 26Với mỗi user bạn có thể thiết lập quyền cho user đó trong vùng Global Privileges Bạn
con có thể phân quyền cho user theo từng Database khác nhau bằng cách Click vào user
đó, bên dưới sẽ mở ra những Database hiện có, và bạn check vào quyền được cấp cho
user trong vùng Global Privilages
4: Quản trị cơ sở dữ liệu
Việc quản trị CSDL trên Navical dễ sử dụng hơn nhiều so với PHPMyAdmin vì nó đã tạo sẵn những công cụ ra bên ngoài
Table: Chứa các table trong CSDL Có thể thấy CSDL MyData đã tạo ở bài trước
cũng xuất hiện ở đây Bạn có thể tạo thêm bằng cách bấm vào New Table
View: Dùng thiết kế trình view cho phép xem dữ liệu
Query: Dùng để tạo truy vấn đến CSDL Phần này viết bằng code, bạn cần học qua
ngôn ngữ truy vấn dữ liệu SQL hoặc MySQL
Report: Dùng để tạo một bảng báo cáo, truy xuất từ dữ liệu
Backup: Cho phép sao lưu dữ liệu, đề phòng bị mất hoặc hư hỏng
Trang 27PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 27
Do PHP được phát triển chỉ để dành cho ứng dụng web nên rất dễ dàng nhúng mã vào trang HTML Tốc độ nhanh, nhỏ gọn, cú pháp giống C, 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 rất phổ biến
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 nhưng cũng
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
Nói đơn giản: PHP là ngôn ngữ dạng script thực thi trên webserver nhằm tạo ra trang web động
Đoạn mã sau minh họa giúp cách viết PHP lồng vào các trang HTML dễ như thế nào:
if (date("H")<12) echo "Chúc một ngày tốt lành";
else echo "Chiều rồi! Mừng gặp lại! Hôm nay vui chứ hả?";
Trang 28+ Nếu máy của bạn cài IIS : tạo file trong folder C:\Inetpub\wwwroot
+ Nếu máy của bạn cài AppserV : tạo file trong folder C:\AppserV\www
+ Nếu máy của bạn cài Xampp, tạo file trong folder C:\xampp\htdocs
Biến dùng để chứa các giá trị trong quá trình tính toán
Không cần khai báo kiểu dữ liệu lúc khai báo biến
$hoten= "Tèo"; //Tạo biến hoten và gán giá trị
$dem=1; //Tạo biến dem và gán giá trị
Lệnh echo
Dùng để hiện giá trị của 1 biến, hiện 1 chuỗi
Ví dụ :
<?
echo $hoten; //Hiện giá trị biến hoten
echo "Hello"; //Hiện chữ Hello, không hiện dấu nháy
echo "Chào \ " sếp\ " "; //Hiện Chào " sếp "
?>
Trang 29PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 29
Trang 30Phần else và khối lệnh 2 có thể không có
Nếu khối lệnh 1 khối lệnh 2 chỉ 1 gồm lệnh thì có thể bỏ cặp { }
Ví dụ 2 : Sử dụng template khác nhau cho trang tùy theo thời gian
Mở file index1.html rồi save as thành index1.php
Qua chế độ code, đến dòng 21 sẽ thấy đoạn code
<link href=" c1.css " rel="stylesheet" type="text/css">
Bổ sung để có kết quả sau:
<link href="<? if (date('H')<=12) echo " c1.css "; else echo "c2.css"; ?>" rel="stylesheet"
if ($diem>=8) echo "Giỏi";
elseif ($diem>=7) echo "Khá";
elseif ($diem>=5) echo "Trung bình";
else echo "Kém";
?>
Trang 31PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 31
Trang 32} while (<Điều kiện>);
Điều kiện lặp được kiểm tra sau, do đó thực hiện ít nhất 1 lần
Tạo file ham.php
Định nghĩa hàm: gõ ở đâu đó (trong tag head):
<?
Trang 33PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 33
$anh = array ( "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "am", "pm", ":" );
$viet = array ( "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy",
"Chủ nhật", " phút, sáng", " phút, chiều", " giờ " );
$timenow = gmdate("D, d/m/Y - g:i a.", time() + 7*3600);
$t = str_replace( $anh, $viet, $timenow);
Trang 34Là 1 dãy ký tự trong nháy kép hoặc nháy đơn
a Chiều dài chuỗi
strlen(chuỗi) ;//Trả về số ký tự trong chuỗi
d Tìm kiếm chuỗi con
strpos(chuỗi gốc, chuỗi con); // Trả về chỉ số là nơi xuất hiện chu
Trang 35PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 35
ucfirst(chuỗi);//ký tự đầu của chuỗi là hoa , còn các ký tự khác thì giữ nguyên
ucwords(chuỗi);//ký tự đầu mỗi từ là hoa, còn các ký tự khác thì giữ nguyên
$TênMảng=array(); // khai báo mảng rỗng
$TênMảng=array(giá tri 1, giá trị 2,…); //khai báo mảng có các phần tử đánh bằng chỉ số
$ TênMảng =array("key1" =>giá trị 1, "key2" => giá trị 2, "key3" => giá trị 3); //Khai báo mảng dùng key
Trang 36$sanpham=array("idSP"=>5, "TenSP"=>"Gạo","Gia"=>12000); // đánh theo key
$user=array("iduser"=>5, "hoten"=> "Nguyễn Văn Tèo");
echo "Cấu trúc mảng diem: <br/>";
Trang 37PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 37
h Liệt kê phần tử mảng dùng vòng lặp for :
Liệt kê mảng mà các phần tử được đánh theo chỉ số liên tục
<hr/>
<?
$giatri=array(8,10,9) ; for ($i=0 ;$i<count($giatri) ;$i++) { echo "Giá trị thứ $i là $giatri[$i]<br>";
$sanpham=array("idSP"=>5, "TenSP"=>"Gạo","Gia"=>12000, "SoLuong"=>3);
reset($sanpham); // đưa con trỏ về phần tử đầu
while (key($sanpham)!=null) { echo key($sanpham) " = " current($sanpham) "<br/>";
next($sanpham); //, prev: lui trái, next: ptừ kế }
?>
<hr/>
<?
$sanpham=array("idSP"=>5, "TenSP"=>"Gạo","Gia"=>12000, "SoLuong"=>3);
reset($sanpham); // đưa con trỏ về phần tử đầu
?>
<table border=1>
<? while (key($sanpham)!=null) { ?>
<tr><td><? echo key($sanpham); ?> </td><td><? echo current($sanpham); ?> </td></tr>
<? next($sanpham); // prev: lui trái, next: ptừ kế ?>
Trang 38Mỗi lần lặp, tự động next qua phần tử tiếp theo
Xử lý dữ liệu trên Form
a Đối tượng $_GET, $_POST
$_GET, $_POST là 2 mảng có sẵn trong PHP để chứa dữ liệu gửi lên từ form Cả hai
là mảng dùng key Key là tên của các đối tượng trong form
$_GET là đối tượng chứa dữ liệu gửi lên từ form dùng Method là Get
$_POST là đối tượng chứa dữ liệu gửi lên từ form dùng Method là Post
b Cách lấy giá trị từ form
$_GET["Ten"]
$_POST["Ten"]
c Ví dụ 1:
Tạo 1 file tên dangnhap.php rồi tạo form login trong tag body như dưới đây:
<form action="xulydangnhap.php" method="GET" name="form1" id="form1">
<table width="286" border="0" align="center" cellpadding="4" cellspacing="0">
Trang 39PHIÊN BẢN THỬ NGHIỆM – LƯU HÀNH NỘI BỘ 39
Trang 40Đối tượng $_SERVER
Ngoài các thông tin trình duyệt gửi lên thông qua các con đường POST, GET, COOKIES, chúng ta cũng có thể thu được một số thông tin khác có liên quan đến trình duyệt cũng như các thông số liên quan đến máy chủ như: đường dẫn, địa chỉ IP, phiên bản Các thông tin này được lưu trữ trong biến mảng $_SERVER (đối với các phiên bản mới) hoặc
$HTTP_SERVER_VARS (đối với các phiên bản cũ hơn bản 4.1.0):
$_SERVER['HTTP_HOST'] / $_SERVER['SERVER_NAME']: Tên của máy chủ host, nơi mà đoạn script được thực thi
$_SERVER['PHP_SELF']: Tên file nằm trên folder gốc của website Ví dụ: biến
$_SERVER['PHP_SELF'] trong script đặt tại địa chỉ http://example.com/test.php/foo.bar sẽ là /test.php/foo.bar
$_SERVER['QUERY_STRING']: Chuỗi chứa tên các tham số và giá trị (sau dấu ?)
$_SERVER['DOCUMENT_ROOT']: Folder gốc của website, nơi mà file script đang được thực thi
Ví dụ: C:/AppServ/www
$_SERVER['HTTP_REFERER']: địa chỉ của trang web mà từ đó user link đến trang này
$_SERVER['REMOTE_ADDR']: Địa chỉ của máy client, nơi người sử dụng đang duyệt web
$_SERVER['REQUEST_URI']: Địa chỉ URI (Định danh đối với các tài nguyên mạng, là một dạng thức của URL)
$_SERVER['SERVER_SOFTWARE']: Chuỗi định danh của máy chủ, thường được cấp trong phần header khi trả lời các yêu cầu từ máy khách Ví dụ: Apache/2.2.4 (Win32) PHP/5.2.3
$_SERVER['REQUEST_METHOD']: Loại yêu cầu mà clientsử dụng để truy cập trang web VD: 'GET', 'HEAD', 'POST', 'PUT'
$_SERVER['SCRIPT_FILENAME']: Đường dẫn tuyệt đối của file script đang chạy Vd: C:/AppServ/www/laptrinhphp/abc.php
$_SERVER['SCRIPT_NAME']: Đường dẫn của file script Vd /laptrinhphp/abc.php
<?php
echo 'HTTP_HOST: ' $_SERVER['HTTP_HOST'].'<br>';
echo 'PHP_SELF: '.$_SERVER['PHP_SELF'].'<br>';
echo 'QUERY_STRING: '.$_SERVER['QUERY_STRING'].'<br>';
echo 'DOCUMENT_ROOT: ' $_SERVER['DOCUMENT_ROOT'].'<br>';
echo 'HTTP_REFERER: ' $_SERVER['HTTP_REFERER'].'<br>';
echo 'REMOTE_ADDR: ' $_SERVER['REMOTE_ADDR'].'<br>';
echo 'URL: ' $_SERVER['REQUEST_URI'] '<br>';
echo 'SCRIPT_FILENAME: ' $_SERVER['SCRIPT_FILENAME'] '<br>';
echo 'SCRIPT_NAME' $_SERVER['SCRIPT_NAME'] '<br>';
?>