Giáo trình Lập trình PHP căn bản - Nghề: Thiết kế trang web - Trình độ: Cao đẳng - Trường Cao đẳng nghề Đà Lạt

pdf 68 trang Gia Huy 17/05/2022 2401
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình PHP căn bản - Nghề: Thiết kế trang web - Trình độ: Cao đẳng - Trường Cao đẳng nghề Đà Lạt", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_lap_trinh_php_can_ban_nghe_thiet_ke_trang_web_tri.pdf

Nội dung text: Giáo trình Lập trình PHP căn bản - Nghề: Thiết kế trang web - Trình độ: Cao đẳng - Trường Cao đẳng nghề Đà Lạt

  1. ỦY BAN NHÂN DÂN TỈNH LÂM ĐỒNG TRƢỜNG CAO ĐẲNG NGHỀ ĐÀ LẠT GIÁO TRÌNH MÔN HỌC/ MÔ ĐUN: LẬP TRÌNH PHP CĂN BẢN NGÀNH/ NGHỀ: THIẾT KẾ TRANG WEB TRÌNH ĐỘ: CAO ĐẲNG Ban hành kèm theo Quyết định số: 1157/QĐ-CĐNĐL ngày 11 tháng 12 năm 2019 của Hiệu trưởng Trường Cao đẳng Nghề Đà Lạt (LƢU HÀNH NỘI BỘ) Lâm Đồng, năm 2019
  2. TUYÊN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể đƣợc phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo. Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm. Giáo trình đƣợc lƣu hành nội bộ Trƣờng Cao đẳng Nghề Đà Lạt. 1
  3. LỜI GIỚI THIỆU Vài nét về xuất xứ giáo trình: Giáo trình này đƣợc viết theo căn cứ Thông tƣ số 03/2017/TT-BLĐTBXH ngày 01 tháng 03 năm 2017 của Bộ Lao động – Thƣơng binh và Xã hội về việc Quy định về quy trình xây dựng, thẩm định và ban hành chƣơng trình; tổ chức biên soạn, lựa chọn, thẩm định giáo trình đào tạo trình độ trung cấp, trình độ cao đẳng. Quá trình biên soạn: Giáo trình này đƣợc biên soạn có sự tham gia tích cực của các giáo viên có kinh nghiệm, cùng với những ý kiến đóng góp quý báu của các chuyên gia về lĩnh vực công nghệ thông tin. Mối quan hệ của tài liệu với chương trình, mô đun/môn học: Căn cứ vào chƣơng trình đào tạo nghề Thiết kế trang web, giáo trình giúp cung cấp cho ngƣời học những kiến thức cơ bản về ngôn ngữ lập trình PHP cũng nhƣ kỹ năng lập trình mã nguồn mở. Để học đƣợc mô đun này ngƣời học cần có kiến thức cơ bản về lập trình cơ bản và HTML. Cấu trúc chung của giáo trình này bao gồm 10 bài: Bài 1. Tổng quan về PHP Bài 2. Ngôn ngữ PHP Bài 3. PHÉP TOÁN VÀ PHÁT BIỂU CÓ ĐIỀU KIỆN Bài 4. Biến Form và các phƣơng thức HTTP Bài 5. ĐỐI TƢỢNG SESSION VÀ COOKIE Bài 6 . Hàm và tập tin trong PHP Bài 7. Chuỗi, mảng và kiểu DateTime Bài 8. My SQL Bài 9: PHP và database Bài 10: Xoá, cập nhật dữ liệu dạng mảng Lời cảm ơn Giáo trình đƣợc biên soạn trên cơ sở các văn bản quy định của Nhà nƣớc và tham khảo nhiều tài liệu liên quan có giá trị. Song chắc hẳn quá trình biên soạn không tránh khỏi những thiếu sót nhất định. Ban biên soạn mong muốn và thực sự cảm ơn những ý kiến nhận xét, đánh giá của các chuyên gia, các thầy cô đóng góp cho việc chỉnh sửa để giáo trình ngày một hoàn thiện hơn. 2
  4. Lâm Đồng, ngày 10 tháng 12 năm 2019 Tham gia biên soạn 1. Phạm Đình Nam 2. Ngô Thiên Hoàng 3. Nguyễn Quỳnh Nguyên 4. Phan Ngọc Bảo 3
  5. MỤC LỤC BÀI 1. TỔNG QUAN VỀ PHP 11 1. GIỚI THIỆU PHP 11 2. CÀI ĐẶT PHP 11 3. CẤU HÌNH ỨNG DỤNG PHP 12 3.1. Cấu hình IIS 12 Hình 1-1: Khai báo diễn giải 12 Hình 1-3: Chọn thƣ mục myPHP 13 Hình 1-4: Quyền truy cập 13 Hình 1-5: Tạo thành công ứng dụng PHP trong IIS 14 Hình 1-5: Cấu hình PHP trong IIS 14 Hình 1-7: Khai báo PHP Engine 15 3.2. Cài đặt Apache Web Servr 15 4. GIỚI THIỆU PHP 16 4.1. Yêu cầu 16 4.2. Giới thiệu 16 4.3. Thông dịch trang PHP 16 4.4. Kịch bản (script) 17 Ví dụ 1-1: Trang hello.php 17 Hình 1-10: Kết quả trang hello.php 17 Ví dụ 1-2: Trang script.php 18 Hình 1-11: Kết quả trang hello.php 19 4.5. Ghi chú trong PHP 19 4.6. In kết quả trên trang PHP 20 Ví dụ 1-2: Trang echo.php 20 5. KẾT LUẬN 21 BÀI 2. NGÔN NGỮ PHP 22 1. KHÁI NIỆM VỀ CÚ PHÁP PHP 22 2. KHAI BÁO BIẾN 22 3. KIỂU DỮ LIỆU 23 3.1. Thay đổi kiểu dữ liệu 23 3.2. Kiểm tra kiểu dữ liệu của biến 24 3.3. Thay đổi kiểu dữ liệu biến 25 4
  6. 3.4. Kiểu Array 26 3.5. Kiểu đối tƣợng 27 3.6. Tầm vực của biến 28 4. HẰNG TRONG PHP 29 4.1. Khai báo và sử dụng hằng 29 4.2. Kiểm tra hằng 30 5. KẾT LUẬN 31 BÀI 3. PHÉP TOÁN VÀ PHÁT BIỂU CÓ ĐIỀU KIỆN 32 TRONG PHP 32 1. KHÁI NIỆM VỀ CÁC TOÁN TỬ TRONG PHP 32 2. GIỚI THIỆU TOÁN TỬ 33 2.1. Toán tử AND 33 2.2. Toán tử Not: ~ And ! 34 2.3. Toán tử nhân và chia: * and / 34 Ví dụ 3.3: Phép toán * và /, + và - 34 2.4. Toán tử modulus: % 35 Ví dụ 3.4: Phép toán % 35 2.5. Toán tử quan hệ: >=,>, ,>=,<,<=,==,!= 35 2.6. Toán tử && và || 36 Ví dụ 3.6: Phép toán && và || 36 2.7. Toán tử ?: 36 3. PHÉP GÁN 37 3.1. Phép gán thông thƣờng nhất nhƣ sau 37 3.2. Phép gán thêm một giá trị là 1 37 3.3. Phép gán chuỗi 37 $strX="Hello"; 37 3.4. Phép gán thêm một với chính nó giá trị 37 4. PHÁT BIỂU CÓ ĐIỀU KIỆN 37 4.1. Phát biểu IF (điều kiện) { câu lệnh; } 38 Ví dụ 3.8: Phát biểu IF 38 4.2. Phát biểu IF (điều kiện) { câu lệnh; }ELSE { câu lệnh; } 38 Ví dụ 3.9: Phát biểu IF - ELSE 38 5
  7. 4.3. Phát biểu ELSEIF 39 4.4. Phát biểu Switch (điều kiện) 40 Ví dụ 3.10: Phát biểu Switch 40 4.5. Phát biểu While(điều kiện) 41 Ví dụ 3.11: Phát biểu While 41 4.6. Phát biểu For 42 Ví dụ 3.12: Phát biểu For 42 4.7. Phát biểu do while 42 Ví dụ 3.13: Phát biểu Do While 42 Ví dụ 3.14: Phát biểu exit 43 5. TÓM TẮT 43 BÀI 4. BIẾN FORM VÀ CÁC PHƢƠNG THỨC HTTP 44 1. BIẾN FORM 44 1.1. Biến form từ form đƣợc submit với phƣơng thức POST 44 Ví dụ 4-1: Khai báo thẻ form 44 Ví dụ 4-2: Dùng biến form 44 1.2. Biến form từ form đƣợc submit với phƣơng thức GET 46 Ví dụ 4-2: Khai báo thẻ form 46 Ví dụ 4-2-1: Khai báo thẻ form 47 Ví dụ 4-3: Sử dụng biến form 49 2. PHƢƠNG THỨC $HTTP_GET_VARS 50 Ví dụ 4-4: Sử dụng $HTTP_GET_VARS 50 Ví dụ 4-5: Sử dụng $HTTP_GET_VARS 52 3. PHƢƠNG THỨC $HTTP_POST_VARS 53 Ví dụ 4-5: Khai báo form với phƣơng thức POST 53 Ví dụ 4-5: Sử dụng $HTTP_POST_VARS 54 4. KẾT LUẬN 55 BÀI 5. ĐỐI TƢỢNG SESSION VÀ COOKIE 56 1. ĐỐI TƢỢNG SESSION 56 1.1. Nhận dạng Session 56 Ví dụ 5-1: Nhận dạng session 56 1.2. Khai báo Session 57 Ví dụ 5-2: Đăng ký session 58 6
  8. 1.3. Lấy giá trị từ session 59 Ví dụ 5-3: Lấy giá trị từ session 59 Ví dụ 5-4: Truy cập session chƣa tồn tại 60 Ví dụ 5-5: Kiểm tra session 61 1.4. Huỷ session 62 Ví dụ 5-6: Loại bỏ một Session 62 Ví dụ 5-7: Xoá tất cả session 63 2. COOKIE 64 Ví dụ 5-8: Gán giá trị cho cookie 64 Ví dụ 5-9: Gán cookie bằng session 64 Ví dụ 5-10: Sử dụng $HTTP_COOKIE_VARS 65 Ví dụ 5-11: Sử dụng session_get_cookie_params 66 3. KẾT LUẬN 66 BÀI 6 . HÀM VÀ TẬP TIN TRONG PHP 67 1. KHAI BÁO HÀM TRONG PHP 67 2. XÂY DỰNG TẬP TIN ĐỊNH DẠNG NỘI DUNG 70 3. THỐNG NHẤT KÍCH THƢỚC CỦA MỌI TRANG PHP 77 4. TẬP TIN DÙNG CHUNG 86 5. KẾT LUẬN 88 BÀI 7. CHUỖI, MẢNG VÀ KIỂU DATETIME 89 1. XỬ LÝ CHUỖI 89 1.1. Định dạng chuỗi 89 1.2. Hàm chuyển đổi chuỗi 90 1.3. Hàm tách hay kết hợp chuỗi 91 Hình 7-4: Hàm tách chuỗi 92 1.4. Tìm kiếm và thay thế chuỗi 93 Hình 7-6: Hàm thay thế chuỗi 94 2. LÀM VIỆC VỚI MẢNG DỮ LIỆU 94 2.1. Mảng một chiều 94 2.2. Mảng hai chiều 96 3. KIỂU DATETIME 98 Hình 7-9: Sử dụng hàm Date 99 4. KẾT LUẬT 100 7
  9. Bài 8. My SQL 101 1. GIỚI THIỆU CƠ SỞ DỮ LIỆU MYSQL 101 2. CÀI ĐẶT MYSQL 101 3. TẠO CƠ SỞ DỮ LIỆU VÀ NGƢỜI DÙNG 102 3.1. Quản lý ngƣời dùng 103 3.2. Cấp quyền cho ngƣời dùng 105 3.3. Xoá quyền của user 107 4. KIỂU DỮ LIỆU CỦA CƠ SỞ DỮ LIỆU MYSQL 108 4.1. Loại dữ liệu numeric 108 4.2. Loại dữ liệu Datet and Time 110 4.3. Loại dữ liệu String 111 5. PHÁT BIỂU SQL 113 5.1. Nhóm phát biểu SQL 113 5.2. Phát biểu SQL thao tác dữ liệu 113 5.2.1. Khái niệm cơ bản về Select 114 Ví dụ 8-1: Phát biểu SELECT 114 Ví dụ 8-2: Thực thi phát biểu SQL SELECT hệ thống 115 Cú pháp đơn giản 115 Các phép toán logic có thể sử dụng trong conditions 117 5.3. Các hàm thông dụng trong MySQL 126 5.3.1. Các hàm trong phát biểu GROUB BY 126 Ví dụ 8-11: SQL dạng SELECT với Group By và các hàm 126 5.4. Phát biểu SQL dạng Select với AS 130 Ví dụ 4-11: SQL dạng SELECT với AS và các hàm 130 5.5. Phát biểu SQL dạng Select với Limit N , M 130 Ví dụ 8-12: Phát biểu SQL dạng SELECT với Limit N,M 131 Ví dụ 8-13: Phát biểu SQL dạng SELECT với Limit N,M 131 Ví dụ 8-14: Phát biểu SQL dạng Select với Limit N,M 132 5.6. Phát biểu SQL dạng SELECT với DISTINCT 132 Ví dụ 8-14: Phát biểu SQL dạng SELECT 132 Ví dụ 8-15: Phát biểu SQL dạng SELECT với DISTINCT 133 5.7. Nhập dữ liệu bằng phát biểu SQL dạng Insert 133 Ví dụ 8-16: INSERT dữ liệu vào bảng từ giá trị cụ thể 135 8
  10. Ví dụ 8-17: INSERT vào bảng từ giá trị của bảng khác 135 Ví dụ 8-18: INSERT vào bảng từ giá trị cụ thể, bảng khác 136 5.8. Phát biểu SQL dạng UPDATE 138 Ví dụ 8-18: UPDATE trên các cột dữ liệu từ giá trị cụ thể 138 5.9. Phát biểu SQL dạng DELETE 139 Ví dụ 8-19: Xóa mẩu tin với phát biểu SQL dạng DELETE 139 Ví dụ 8-20: Xoá mẩu tin với Delete 139 Ví dụ 8-21: Xoá mẩu tin theo quy tắc có ràng buộc quan hệ 140 6. PHÁT BIỂU SQL DẠNG JOIN 140 6.1. Khái niệm về quan hệ 140 Sơ đồ 8-1: Mô hình quan hệ 141 6.2. Khái niệm về mệnh đề JOIN 141 6.3. Mệnh đề INNER JOIN 143 Ví dụ 8-23: INNER JOIN với một số cột chỉ định 143 Ví dụ 8-24: INNER JOIN với tất các trƣờng liên quan 144 Ví dụ 8-25: INNER JOIN với ánh xạ tên bảng 145 6.4. Mệnh đề Left Join 146 Ví dụ 8-26: SELECT dùng LEFT JOIN 147 6.5. Mệnh đề Right Join 147 Ví dụ 8-27: SELECT dùng RIGHT JOIN 147 6.6. Phép toán hợp (union) 148 Ví dụ 8-28: Khách hàng thƣờng xuyên trong tblCustomers 148 Ví dụ 8-29: Khách hàng vãng lai trong tblTempCustomers 149 Ví dụ 8-30: SELECT sử dụng phép hợp UNION 149 6.7. SQL dạng thay đổi và định nghĩa cơ sở dữ liệu 150 6.7.1. Phát biểu SQL dạng CREATE 150 6.7.2. Tạo cơ sở dữ liệu - Create database 150 6.7.3. Diễn giải CREATE Database trong SQL Server 151 Xây dựng cơ sở dữ liệu Test 152 Ví dụ 8-31: Tạo cơ sở dữ liệu Test trong SQL Server 152 Ví dụ 8-32: Tạo một số bảng trong Test 153 Một số quy định khi thiết kế Table 154 6.7.4. Tên cột - Column Name 154 9
  11. 6.7.5. Kiểu dữ liệu - Data type 155 6.7.6. Giá trị mặc định - Default 155 NULL / NOT NULL 156 6.8. Thay cấu trúc đối tƣợng bằng ALTER 157 Ví dụ 8-33: Thêm một cột tên Activate vào bảng tblOrders 157 Ví dụ 8-34: Thiết lập giá trị mặc định trong bảng tblOrders 157 Ví dụ 8-35: Thay đổi kiểu dữ liệu 158 6.9. Phát biểu SQL dạng DROP 158 7. TẠO KỊCH BẢN SQL- SQL SCRIPTS 159 Hình 8-13: Tạo kịch bản trong MySQl-Front 160 BÀI 9: PHP VÀ DATABASE 161 1. KẾT NỐI CƠ SỞ DỮ LIỆU 161 2. THÊM MẨU TIN 162 3. CẬP NHẬT MẨU TIN 166 4. XOÁ MẨU TIN 168 5. TRUY VẤN DỮ LIỆU 170 6. KẾT LUẬN 172 BÀI 10: XOÁ, CẬP NHẬT DỮ LIỆU DẠNG MẢNG 173 1. LIỆT KÊ DỮ LIỆU 173 2. CẬP NHẬT NHIỀU MẨU TIN 179 3. KẾT LUẬN 181 10
  12. BÀI 1. TỔNG QUAN VỀ PHP Những vấn đề chính sẽ được đề cập trong bài học:  Giới thiệu PHP  Cấu hình IIS, Apache Web Server 9 Cài đặt PHP. o Cài đặt PHP. o Cấu hình ứng dụng PHP 9 Giới thiệu PHP. o PHP Script. o Ghi chú trong PHP o In nội dung bằng PHP 1. GIỚI THIỆU PHP PHP viết tắt của chữ Personal Home Page ra đời năm 1994 do phát minh của Rasmus Lerdorf, và nó tiếp tục đƣợc phát triển bởi nhiều cá nhân và tập thể khác, do đó PHP đƣợc xem nhƣ một sản phẩm của mã nguồn mở. PHP là kịch bản trình chủ (server script) chạy trên phía server (server side) nhƣ cách server script khác (asp, jsp, cold fusion). PHP là kịch bản cho phép chúng ta xây dựng ứng dụng web trên mạng internet hay intranet tƣơng tác với mọi cơ sở dữ liệu nhƣ mySQL, PostgreSQL, Oracle, SQL Server và Access. Lƣu ý rằng, từ phiên bản 4.0 trở về sau mới hỗ trợ session, ngoài ra PHP cũng nhƣ Perl là kịch bảng xử lý chuỗi rất mạnh chính vì vậy bạn có thể sử dụng PHP trong những có yêu cầu về xử lý chuỗi. 2. CÀI ĐẶT PHP Cài đặt PHP trên nền Windows thì sử dụng php-4.0.6-Win32.zip, sau khi cài đặt ứng dụng này trên đĩa cứng sẽ xuất hiện thƣ mục PHP, trong thự mục này sẽ có tập tin php4ts.dll và php.exe cùng với thƣ mục sessiondata. Ngoài ra, trong thƣ mục WINDOW hoặc WINNT sẽ xuất hiện tập tin php.ini, tập tin này cho phép bạn cấu hình cho ứng dụng PHP. Chẳng hạn, khi sử dụng session, PHP cần một nơi để lƣu trữ chúng, trong tập tin này mặc định là session.save_path = C:\PHP\sessiondata, nếu bạn cài đặt PHP với thƣ mục PHP trên đĩa D thì bạn cần thay đổi đƣờng dẫn trong khai báo này. Tƣơng tự nhƣ vậy, khi có lỗi trong trangPHP thì lỗi thƣờng xuất hiện khi triệu gọi chúng, để che dấu các lỗi này thì bạn cần khai báo display_errors = Off thay vì chúng ở trạng thái display_errors = On. Ngoài ra, trang PHP cũng có thể trình bày một số warning khi chúng phát hiện cú pháp không hợp lý, chính vì vậy để che dấu các warning này thì bạn cũng cần khai báo trạng thái Off thay vì On nhƣ assert.warning = Off. 11
  13. 3. CẤU HÌNH ỨNG DỤNG PHP 3.1. Cấu hình IIS Sau khi cài đặt hệ điều hành Windows NT hay 2000 trở về sau, bằng cách khai báo mới một web site hay virtual site trong một site đang có theo các bƣớc nhƣ sau: 1. Tạo một thƣ mục có tên myPHP đề lƣu trữ các tập tin PHP 2. Khởi động IIS (tự động khởi động nếu Windows NT/2000) 3. Chọn Start | Programs | Administrative Tools | Internet Information Server 4. Nếu tạo virtual site thì chọn Default Web Ste | R-Click | New | Virtual Site 5. Trong trƣờng hợp tạo mới Site thì Default Web Ste | R-Click | New | Site 6. Nếu chọn trƣờng hợp 4 thì bạn cung tấp diễn giải của site nhƣ hình 1-1 Hình 1-1: Khai báo diễn giải 7. Chọn nút Next và khai báo IP và port, trong trƣờng hợp bạn không sử dụng port 80 cho ứng site khác thì chọn giá trị mặc định. Tuy nhiên nếu có nhiều ứng dụng trƣớc đó đã cấu hình trong IIS thì bạn có thể thay đổi port khác, ví dụ chọn port 85 nhƣ hình 1-2. 12
  14. Hình 1-2: Khai báo IP và Port Lƣu ý rằng, port 80 là port chuẩn điều này có nghĩa là khi triệu gọi trên trình duyệt bạn không cần gõ port, ví dụ Đối với trƣờng hợp port khác thì bạn phải gõ tƣơng tự nhƣ 8. Chọn Next, bạn chọn thƣ mục của ứng dụng, đối với trƣờng hợp này chúng ta chọn vào thƣ mục myPHP, chẳng hạn trong trƣờng hợp này chúng ta chọn htƣ mục myPHP nhƣ hình 1-3. Hình 1-3: Chọn thƣ mục myPHP 9. Kế đến chọn quyền truy cập web site, trong trƣờng hợp đang thiết kế thì bạn chọn vào Browse. Ngoài ra, nếu bạn cho phép ngƣời sử dụng internet có thể thực thi tập tin thực thi từ xa thì chọn vào tuỳ chọn execute. Hình 1-4: Quyền truy cập 10.Chọn Next và Finish, trong cửa sổ IIS xuất hiện ứng dụng có tên myPHP (khai báo trong phần diễn giải) nhƣ hình 1-5. 13
  15. Hình 1-5: Tạo thành công ứng dụng PHP trong IIS 11.Sau khi tạo ứng dụng xong, bạn chọn tên ứng dụng myPHP | R-Click } Properties | cửa sổ xuất hiện nhƣ hình 1-5. Hình 1-5: Cấu hình PHP trong IIS 12.Bằng cách chọn vào nút Configuration, cửa sổ sẽ xuất hiện nhƣ hình 1-6. 14
  16. Hình 1-6: Thêm PHP Engine 13.Chọn nút Add, và khai báo nhƣ hình 1-7. Hình 1-7: Khai báo PHP Engine 14.Để kiểm tra úng dụng, bạn mở cửa sổ IE và gõ trên thanh địa chỉ chuỗi nhƣ sau: , kết quả xuất hiện nhƣ hình 1-8. Hình 1-8: Ứng dụng PHP đã đƣợc khởi động 3.2. Cài đặt Apache Web Servr Để cài đặt Apache Web Server, bạn theo các bƣớc sau 1. Chep tap tin apache_1.3.22-win32-x86.exe xuong dia cung 2. Chay tap tin nay va cai dat len dia C:\Program Files\, sau khi ket thuc thanh cong phan cai dat Apache, bạn bắt đầu cấu hình ứng dụng PHP. 3. Chép ba dòng lệnh từ tập tin install.txt trong thƣ mục C:\PHP ScriptAlias /php/ "c:/php/" 15
  17. AddType application/x-httpd-php .php Action application/x-httpd-php "/php/php.exe" 4. Paste vào tập tin httpd.conf trong thƣ mục C:\Program Files\Apache Group\Apache\Conf\ 5. Chon Start | Programs | Apache HTTP Server | Control Apache Server | Start 6. Viet trang test.php voi noi dung 7. Chep tap tin test.php vao thu muc C:\Program Files\Apache Group\Apache\htdocs\ 8. Sau đó gõ trên trình duyệt 4. GIỚI THIỆU PHP 4.1. Yêu cầu PHP dựa trên cú pháp của ngôn ngữ lập trình C, chính vì vậy khi làm việc với PHP bạn phải là ngƣời có kiến thức về ngôn ngữ C, C++, Visual C. Nếu bạn xây dựng ứng dụng PHP có kết nối cơ sở dữ liệu thì kiến thức về cơ sở dữ liệu MySQL, SQL Server hay Oracle là điều cần thiết. 4.2. Giới thiệu PHP là kịch bản trình chủ (Server Script) đƣợc chạy trên nền PHP Engine, cùng với ứng dụng Web Server để quản lý chúng. Web Server thƣờng sử dụng là IIS, Apache Web Server, 4.3. Thông dịch trang PHP Khi ngƣời sử dụng gọi trang PHP, Web Server triệu gọi PHP Engine để thông dịch (tƣơng tự nhƣ ASP 3.0 chỉ thông dịch chứ không phải biên dịch) dịch trang PHP và trả về kết quả cho ngƣời sử dụng nhƣ hình 1-9. Parse Web Server Tập tin PHP Request Parse Request Response PHP Engine Response P Hình 1-9: Quá trình thông dịch trang PHP 16
  18. 4.4. Kịch bản (script) Nội dung của PHP có thể khai báo lẫn lộn với HTML, chính vì vậy bạn sử dụng cặp dấu giá để khai báo mã PHP. Chẳng hạn, chúng ta khai báo: 1-Giá trị biến Str: 2-Giá trị biến i: 3-Giá trị cũ thể: Chẳng hạn bạn khai báo trang hello.php với nội dung nhƣ ví dụ 1-1 sau: Ví dụ 1-1: Trang hello.php ::Welcome to PHP Greeting: Kết quả trả về nhƣ hình 1-10 khi triệu gọi trang này trên trình duyệt. Hình 1-10: Kết quả trang hello.php Trong trƣờng hợp có nhiều khai báo, bạn sử dụng Scriptlet, đều này có nghĩa là sử dụng cặp dấu trên nhƣ với các khai báo PHP với cú pháp của C nhƣ sau: <?php $sotrang=$pagenumber; 17
  19. $record=$rownumber; $totalRows = 0; $paging=""; ?> -Khai báo trên là Scriptlet Giá trị của paging: -Khai báo này là Script Lƣu ý rằng, kết thúc mỗi câu lệnh phải dùng dấu ; Ví dụ, bạn khai báo đoạn PHP trên trong tập tin script.php nhƣ ví dụ 1-2 Ví dụ 1-2: Trang script.php ::Welcome to PHP Giá trị của paging: Kết quả trả về nhƣ hình 1-11 khi triệu gọi trang này trên trình duyệt. 18
  20. Hình 1-11: Kết quả trang hello.php Lƣu ý rằng, nếu bạn muốn sử dụng script hay scriptlet nhƣ ASP thì bạn khai báo trong tập tin php.ini nhƣ sau: asp_tags = On ; Allow ASP-style tags. mặc định là Off Khi đó trong trang PHP, thay vì bạn khai báo Thì bạn có thể khai báo nhƣ sau: 4.5. Ghi chú trong PHP Ghi chú trong kịch bản PHP tƣơng tự ngôn ngữ lập trình C, để ghi chú một dòng thì bạn sử dụng cặp dấu /. Chẳng hạn khai báo sau là ghi chú: <?php // Khai báo biến để paging $sotrang=$pagenumber; 19
  21. $record=$rownumber; $totalRows = 0; $paging=""; ?> Trong trƣờng hợp có nhiều dòng cần ghi chú bạn sử dụng cặp dấu /* và */, ví dụ khai báo ghi chú nhƣ sau: /* Khai báo biến để đọc dữ liệu trong đó totalRows là biến trả về tổng số mẩu tin */ $result = mysql_query($stSQL, $link); $totalRows=mysql_num_rows($result); Ngoài ra, bạn cũng có thể sử dụng dấu # để khai báo ghi chú cho từng dòng, ví dụ khai báo sau là ghi chú: 4.6. In kết quả trên trang PHP Khác vớ các kịch bản nhƣ ASP, JSP, Perl, đối với PHP để in ra giá trị từ biến, biểu thức, hàm, giá trị cụ thể thỉ bạn có thể sử dụng script nhƣ trên: Giá trị của paging: Tuy nhiên, để sử dụng cú pháp của PHP khi in ra giá trị từ biến, biểu thức, hàm, giá trị cụ thể thì sử dụng khai báo echo nhƣ sau: Chẳng hạn, khai báo echo nhƣ ví dụ 1-3. Ví dụ 1-2: Trang echo.php 20
  22. ::Welcome to PHP Kết quả trả về nhƣ hình 1-12 khi triệu gọi trang này trên trình duyệt. Hình 1-11: Kết quả trang hello.php 5. KẾT LUẬN Trong bài này, chúng ta tập trung tìm hiểu cách cài đặt PHP và Apache Web Server, sau đó cấu hình ứng dụng PHP trong IIS hay sử dụng cấu hình mặc định của chúng. Ngoài ra, bạn làm quen cách khai báo mã PHP trong trang .php cùng với script hay scriptlet. 21
  23. BÀI 2. NGÔN NGỮ PHP Bài học này chúng ta sẽ làm quen và tìm hiểu cú pháp và một số phương thức cơ bản của PHP:  Câu lệnh.  Kiểu dữ liệu và biến  Khai báo và sử dụng hằng.  Dữ liệu mảng  Chuyển đổi kiểu dữ liệu 1. KHÁI NIỆM VỀ CÚ PHÁP PHP Cú pháp PHP chính là cú pháp trong ngôn ngữ C, các bạn làm quen với ngôn ngữ C thì có lợi thế trong lập trình PHP. Để lập trình bằng ngôn ngữ PHP cần chú ý những điểm sau:  Cuối câu lệnh có dấu ;  Biến trong PHP có tiền tố là $  Mỗi phƣơng thức đều bắt đầu { và đóng bằng dấu }  Khi khai báo biến thì không có kiễu dữ liệu  Nên có giá trị khởi đầu cho biến khai báo  Phải có chi chú (comment) cho mỗi feature mới  Sử dụng dấu // hoặc # để giải thích cho mỗi câu ghi chú  Sử dụng /* và */ cho mỗi đoạn ghi chú  Khai báo biến có phân biệt chữ hoa hay thƣờng 2. KHAI BÁO BIẾN Khi thực hiện khai báo biến trong C, bạn cần phải biết tuân thủ quy định nhƣ: kiễu dữ liệu trƣớc tên biến và có giá trị khởi đầu, tuy nhiên khi làm việc với PHP thì không cần khai báo kiểu dữ liệu nhƣng sử dụng tiền tố $ trƣớc biến. Xuất phát từ những điều ở trên, khai báo biến trong PHP nhƣ sau:  $variablename [=initial value]; $licount=0; $lsSQL=”Select * from tblusers where active=1”; $nameTypes = array("first", "last", "company"); $checkerror=false;  Chẳng hạn, khai báo nhƣ ví dụ 2-1 (variables.php) 22
  24. ::Welcome to PHP Variable "; echo $myarrs[2]; ?> 3. KIỂU DỮ LIỆU Bảng các kiểu dữ liệu thông thƣờng Boolean True hay false Integer giá trị lớn nhất xấp xỉ 2 tỷ Float ~1.8e308 gồm 14 số lẽ String Lƣu chuỗi ký tự chiều dài vô hạn Object Kiểu đối tƣợng Array Mảng với nhiều kiểu dữ liệu 3.1. Thay đổi kiểu dữ liệu Để thay đổi kiểu dữ liệu, bạn có thể sử dụng cách ép kiểu nhƣ trong các ngôn ngữ lập trình C hay Java. Chẳng hạn, khai báo ép kiểu nhƣ ví dụ 2-2 (box.php): 23
  25. ::Welcome to PHP Variable "; $i="10A"; $j=(float)$i; $j+=10; echo $i; echo " "; echo $j; echo " "; $q=12;$p=5; echo "Amount: ".(float)$q/$p; ?> Lƣu ý rằng, PHP tự động nhận biết giá trị chuỗi đằng sau số sẽ không đƣợc chuyển sang kiểu dữ liệu số nhƣ trƣờng hợp trên. Ngoài ra, bạn có thể sử dụng hàm settype để chuyển đổi dữ liệu này sag dữ liệu khác, ví dụ chúng ta khai báo nhƣ ví dụ 2-3 (settype.php). ::Welcome to PHP Change DataType of Variable "; echo $check; echo " "; settype($var,"integer"); echo $var; echo " "; settype($check,"string"); echo $check; ?> 3.2. Kiểm tra kiểu dữ liệu của biến Để kiểm tra kiểu dữ liệu của biến, bạn sử dụng các hàm nhƣ sau: is_int để kiểm tra biến có kiểu integer, nếu biến có kiểu integer thì hàm sẽ trả về giá trị là true (1). Tƣơng tự, bạn có thể sử dụng các hàm kiểm tra tƣơng ứng với kiểu dữ liệu là is_array, is_bool, is_callable, is_double, is_float, is_int, is_integer, is_long, is_null, is_numeric, is_object, is_real, is_string. Chẳng hạn, bạn khai báo các hàm này nhƣ ví dụ 2-4 (check.php). 24
  26. ::Welcome to PHP Check DataType of Variable "; echo is_bool($record); ?> 3.3. Thay đổi kiểu dữ liệu biến Khi khai báo biến và khởi tạo giá trị cho biến với kiểu dữ liệu, sau đó bạn muốn sử dụng giá trị của biến đó thành tên biến và có giá trị chính là giá trị của biến trƣớc đó thì sử dụng cặp dấu $$. Ví dụ, biến $var có giá trị là "total", sau đó muốn sử dụng biến là total thì khai báo nhƣ ví dụ 2-5 (change.php). ::Welcome to PHP Change DataType of Variable "; $$var=10; echo $total; ?> 25
  27. 3.4. Kiểu Array Kiễu mảng là một mảng số liệu do ngƣời dùng định nghĩa, chúng có cú pháp nhƣ sau: $myarrs=array("first", "last", "company"); // mảng bao gồm các kiểu chuỗi hay có thể khai báo nhƣ sau $myarr[]=array(3); $myarr[0]="Number 0"; $myarr[1]="Number 1"; $myarr[2]="Number 2"; Thứ tự index trong mảng bắt đầu từ vị trí 0. Chẳng hạn, bạn khai báo mảng một chiều theo hai cách trên nhƣ ví dụ 2-6 (array.php). ::Welcome to PHP Array on demenssion "; $myarrs=array("first", "last", "company"); echo $myarrs[2]; ?> Nếu nhƣ bạn khai báo mảng hai chiều, thì cú pháp khai báo nhƣ sau: $myarrs[][]=array(2,3); Chẳng hạn khai báo nhƣ ví dụ 2-7 (arrays.php): 26
  28. ::Welcome to PHP Array two demenssions "; ?> 3.5. Kiểu đối tƣợng Để khai báo đối tƣợng, bạn sử dụng khái niệm class nhƣ trong ngôn ngữ lập trình C hay java, ngoài ra phƣơng thức trong PHP đƣợc biết đến nhƣ một hàm. Điều này có nghĩa là từ khoá là function. Nếu hàm có tên trùng với tên của class thì hàm đó đƣợc gọi là constructor. Chẳng hạn, chúng ta khai báo class và khởi tạo chúng thì tự động constructor đƣợc gọi mỗi khi đối tƣợng khởi tạo, sau đó gọi hàm trong class đó nhƣ ví dụ 2-8 (object.php). ::Welcome to PHP Object \n"; } function B() 27
  29. { echo "I am a regular function named B in class A. \n"; echo "I am not a constructor in A. \n"; } } // Gọi phƣơng thức clsA() nhƣ constructor. $b = new clsA(); echo " "; // Gọi phƣơng thức B(). $b->B(); ?> 3.6. Tầm vực của biến Tầm vực của biến phụ thuộc vào nơi khai báo biến, nếu biến khai báo bên ngoài hàm thì sẽ có tầm vực trong trang PHP, trong trƣờng hợp biến khai báo trong hàm thì chỉ có hiệu lực trong hàm đó. Ví dụ, chúng ta có biến $a khai báo bên ngoài hàm nhƣng khi vào trong hàm thì biến $ đƣợc khai báo lại, biến này cótầm vựec bên trong hàm. Tƣơng tự nhƣ vậy, khi biến $i khai báo trong hàm thì chỉ có tầm vực bên trong hàm cho dù chúng đƣợc khai báo lại bên ngoài nhƣ ví dụ 2-9 (scope.php). ::Welcome to PHP Scope of Variable a:=$a"; echo " i:=$i"; /* reference to local scope variable */ } 28
  30. Test(); echo " a:=$a"; $i=1000; echo " i:=$i"; ?> Ngoài ra, để sử dụng biến toàn cục trong hàm, bạn sử dụng từ khoa global, khi đó biến toàn cục sẽ có hiệu lực bên trong hàm. Ví dụ khai báo biến $a bên ngoài hàm, sau đó bên trong hàm Test bạn sử dụng từ khoá global cho biến $a, khi đó biến $a sẽ đƣợc sử dụng và giá trị đó có hiệu lực sau khi ra khỏi hàm chứ không gống nhƣ trƣờng hợp trong ví dụ scope.php nhƣ ví dụ 2-10 (global.php). ::Welcome to PHP Scope of Variable a:=$a"; echo " i:=$i"; /* reference to local scope variable */ } Test(); echo " a:=$a"; $i=1000; echo " i:=$i"; ?> 4. HẰNG TRONG PHP 4.1. Khai báo và sử dụng hằng Hằng là giá trị không thay đổi kể từ sau khi khai báo, bạn có thể sử dụng phát biểu Define để khai báo hằng nhƣ sau: define("MAXSIZE", 100); Để sử dụng hằng, bạn khai báo nhƣ ví dụ 2-11 (constant.php) ::Welcome to PHP 29
  31. Constant pi:=".pi; echo " pi:=".constant("pi"); } Test(); echo " pi:=".pi; echo " pi:=".constant("pi"); ?> 4.2. Kiểm tra hằng Khi sử dụng hằng, mà hằng chƣa tồn tại thì bạn sử dụng hàm defined nhƣ ví dụ 212 sau (defained.php): ::Welcome to PHP Constant pi:=".pi; else echo " pi not defined"; if(defined("hrs")) echo " hrs:=".hrs; else echo " hrs not defined"; } Test(); 30
  32. ?> 5. KẾT LUẬN Trong bài này, chúng ta tìm hiểu cách khai báo hằng, biến và sử dụng hằng biến. Ngoài ra, bạn cũng tìm hiểu cách chuyển đổi kiểu dữ liệu, kiểm tra kiểu dữ liệu, tầm vựec của biến. 31
  33. BÀI 3. PHÉP TOÁN VÀ PHÁT BIỂU CÓ ĐIỀU KIỆN TRONG PHP Chương này chúng ta sẽ làm quen và tìm hiểu toán tử, phát biểu có điều kiện và vòng lặp của PHP. Những vấn đề chính sẽ được đề cập trong bài học này 9 Toán tử.  Phép gán trong PHP 9 Phát biểu có điều khiển.  Vòng lặp. 1. KHÁI NIỆM VỀ CÁC TOÁN TỬ TRONG PHP Khi bạn lập trình trên PHP là sử dụng cú pháp của ngôn ngữ C, C++. Tƣơng tự nhƣ những ngôn ngữ lập trình khác, toán tử giúp cho bạn thực hiện những phép toán nhƣ số học hay trên chuỗi. Bảng sau đây giúp cho bạn hình dung đƣợc những toán tử sử dụng trong PHP, PHP định nghĩa toá tử toán học, quan hệ, số học, bit và nột số phép toán gán. Loại Toán toán tử tử Diễn giải Ví dụ + Addition a b - Subtraction + a b - a b * Multiplication * a b / Arithme / Division tic % Modulus a % b > Greater than a > b a = b a = Greater than or equal Relatio a == b nal <= Less than or equal != Not equal == Equal ! Not !a && AND a && b Logical || OR a || b 32
  34. Assignmen Increment and assign t = Decrement and assign a = b ++ Add and assign a++ a Subtract and assign a += b a -= += Multiply and assign b a *= b a /= b a %= b a |= b a &= -= Divide and assign b a ^= b a .= b *= Take modulus and assign /= OR and assign %= AND and assign |= XOR and assign &= Concat and assign ^= .= Allocation new Create a new object of a class new A() Selection ? : If Then selection a ? b : c 2. GIỚI THIỆU TOÁN TỬ Khi nói đến toán tử, chúng ta luôn liên tƣởng đến thứ tự xử lý, cũng nhƣ trong toán học, toán tử trong PHP cũng co độ ƣu tiên add-subtract-multi-divide. 2.1. Toán tử AND Khi thực hiện một việc tăng lên giá trị thì bạn sử dụng cú pháp nhƣ sau: $ i=0;$j=0; j=i++;// i tăng sau khi gán i vào j, chính vì vậy sau khi gán i vào j, j vẫn không thay đổi j=++i;// i tăng trƣớc khi gán i vào j, chính vì vậy sau khi gán i vào j, j thay đổi. Ví dụ 3.1: Phép toán AND. ::Welcome to PHP 33
  35. AND Operator "; echo "i=$i"; echo " "; $j+=++$i; echo "j=$j";echo " "; ?> 2.2. Toán tử Not: ~ And ! Toán tử ~ đảo nghịch tất cả các bit của tham số, còn toán tử ! đảo nghịch giá trị của giá trị trƣớc đó. Chẳng hạn trong trƣờng hợp này chúng ta sử dụng cho biểu thức hay biến có giá trị boolean. Ví dụ 3.2: Phép toán ~ and ! ::Welcome to PHP ~, ! Operator "; $j+=~$i++; echo "i=$i"; echo " "; $j+=++$i; echo "j=$j"; echo " "; ?> 2.3. Toán tử nhân và chia: * and / Bạn có thể tham khảo ví dụ sau Ví dụ 3.3: Phép toán * và /, + và - ::Welcome to PHP Multi And Divide Operator <?php 34
  36. $i=10; $j=5; echo $i/$j; echo " "; echo $i*$j; ?> 2.4. Toán tử modulus: % Khi chia một số cho một số, bạn cần kết quả là số dƣ của phép chia đó thì dùng toán tử modulus Ví dụ 3.4: Phép toán % ::Welcome to PHP Mod Operator "; ?> 2.5. Toán tử quan hệ: >=,>, ,>=, ::Welcome to PHP Comparation Operators 35
  37. "; echo $i!=$j; ?> 2.6. Toán tử && và || && là toá tử and trong só học, || là toán tử or trong số học. Hai toán tử này rất thƣờng dùng trong khi lập trình trên PHP, ví dụ dƣới đây diễn giải cho bạn đầy đủ hai toán tử này. Chú ý rằng khi sử dụng toán tử đều có kèm phát biểu có điều kiện. Ví dụ 3.6: Phép toán && và || ::Welcome to PHP Logic Operators =3) && ($b!=true)) { echo "result is true"; } if(($j 2.7. Toán tử ?: Toán tử này thay thế cho phát biểu có điều kiện if else, khi bạn cần lấy kết quả theo điều kiện nào đó, nếu có thể không cần phát biểu if-else, thì hãy thay thế bằng toán tử ?:, cú pháp của chúng nhƣ sau: str1=str2.equals(”khang”)?”Welcome to PHP”:”Good bye PHP”; Ví dụ 3.7: Phép toán ?: 36
  38. ::Welcome to PHP Selection Operators 3. PHÉP GÁN Khi gán một giá trị hay biến vào một biến trong PHP, bạn phải dùng đến phép gán, nhƣng trong PHP cũng giống nhƣ trong C thì có những phép gán đƣợc đơn giản hoá hay nói đúng hơn là chuẩn hoá để rút gọn lại trong khi viết. 3.1. Phép gán thông thƣờng nhất nhƣ sau $j=i; $str1 =” Hello!”; $b=true; 3.2. Phép gán thêm một giá trị là 1 $k=0; $k++; 3.3. Phép gán chuỗi $strX="Hello"; $strX.=” world”; $strX.=”ABCc”.$x; 3.4. Phép gán thêm một với chính nó giá trị $k=0;$j=1; $k+=$j; tƣơng tự nhƣ vậy chúng ta có $k*=2, nghĩa là $k=$k*2 4. PHÁT BIỂU CÓ ĐIỀU KIỆN Các phat biểu có điều kiện nhƣ : 37
  39.  IF (điều kiện) { câu lệnh; }  IF (điều kiện) { câu lệnh; }ELSE { câu lệnh; }  IF (điều kiện) { câu lệnh; }ELSEIF { câu lệnh; }  switch (điều kiện) { case Value1 câu lệnh1; break; }  While (điều kiện)  Do - While (điều kiện)  Break  Continue 4.1. Phát biểu IF (điều kiện) { câu lệnh; } Sử dụng phát biểu if để chọn lọc kết quả khi điều kiện đúng, ví dụ nhƣ sau: Ví dụ 3.8: Phát biểu IF ::Welcome to PHP IF Statement =3) &&($b!=true)) echo "result is true"; if(($j 4.2. Phát biểu IF (điều kiện) { câu lệnh; }ELSE { câu lệnh; } Sử dụng phát biểu if để chọn lọc kết quả khi điều kiện đúng, và xuất ra kết quả khi điều kiện sai, ví dụ nhƣ sau: Ví dụ 3.9: Phát biểu IF - ELSE 38
  40. ::Welcome to PHP IF ELSE Statement 3) echo "result is true"; else { $j++; echo "result is $j"; } ?> 4.3. Phát biểu ELSEIF Phát biểu elseif là phần của phát biểu if else nhiều nhánh, khi có nhiều điều kiện chọn lựa thì bạn sử dụng elseif, cú pháp của chúng nhƣ sau: ::Welcome to PHP ELSEIF Statement 3) echo "result is true"; elseif ($j=0) { $j++; echo "result is $j"; } else 39
  41. { $j ; echo "result is ". $j ; } ?> 4.4. Phát biểu Switch (điều kiện) Phát biểu switch là phần của phát biểu elseif nhiều nhánh, khi có nhiều điều kiện chọn lựa thì bạn sử dụng switch, cú pháp của chúng nhƣ sau: Switch(điều kiện) { case Value1 câu lệnh1; break; case Value2 câu lệnh2; break; default: câu lệnh default; } Break: dùng để thoát ra khỏi switch khi thoả một case nào đó trong switch, default: khi không có bất kỳ giá trị nào thoản trong các case thì giá trị cuối cùng là defaule statement Ví dụ 3.10: Phát biểu Switch ::Welcome to PHP SWITCH Statement <?php $j=3; $j=date("w"); $str=""; switch($j) { case 0: $str="Today is Sunday"; break; case 1: $str="Today is Monday"; break; case 2: 40
  42. $str="Today is Tueday"; break; case 3: $str="Today is Wednesday"; break; case 4: $str="Today is Thursday"; break; case 5: $str="Today is Friday"; break; case 6: $str="Today is Saturday"; break; default: $str="Today is Sunday"; break; } echo $str; ?> 4.5. Phát biểu While(điều kiện) Phát biểu while thực thi những câu lệnh trong while khi điều kiện có giá trị true. Ví dụ 3.11: Phát biểu While ::Welcome to PHP While Statement 0) { echo $j." "; $j ; } ?> 41
  43. 4.6. Phát biểu For Phát biểu for dùng cho vòng lặp có giới hạn cho trƣớc, cú pháp có dạng nhƣ sau: Ví dụ 3.12: Phát biểu For ::Welcome to PHP FOR Statement "; } ?> 4.7. Phát biểu do while Phát biểu do while cho phép duyệt và kiểm tra điều kiện sau phát biểu thứ nhất, điều này có nghĩa là ít nhất một phát biểu đƣợc thực hiện. Ví dụ 3.13: Phát biểu Do While ::Welcome to PHP Do While Statement "; $j ; }while($j>0) ?> 42
  44. Phát biểu exit cho phép thóat ra khỏi phát biểu điều kiện khi thoả điều kiện nào đó. Ví dụ 3.14: Phát biểu exit ::Welcome to PHP Exit Statement "; $j ; }while($j>0) ?> 5. TÓM TẮT Trong bài học này chúng tôi giới thiệu đến cho các bạn các phép gán, các toán tử, đồng thời giúp cho các bạn hiểu thêm vào các phát biểu có điều kiện nhƣ while, for, switch, . 43
  45. BÀI 4. BIẾN FORM VÀ CÁC PHƢƠNG THỨC HTTP Bài học này chúng ta sẽ làm quen với biến form và hai phương thức $HTTP_POST_VARS và $HTTP_GET_VARS của PHP:  Biến form.  Phương thức $HTTP_GET_VARS  Phương thức $HTTP_POST_VARS 1. BIẾN FORM Biến form trong PHP đƣợc biết đến nhƣ một loại biến, thay vì khai báo thì biến đó chính là tên của thẻ nhập liệu trong trang submit hay tham số trên querystring. 1.1. Biến form từ form đƣợc submit với phƣơng thức POST Trong trang bạn submit đến, nếu khai báo tên của thẻ nằm trong thẻ form có tên là xyz thì biến form đƣợc định nghĩa là $xyz. Chẳng hạn, bạn khai báo báo thẻ form trong trang submit.php nhƣ ví dụ 4-1. Ví dụ 4-1: Khai báo thẻ form Name : Gender : Male Female   Khi ngƣời sử dụng nhập giá trị vào phần Name và chọn giới tính Male hay Female nhƣ hình 4-1, nếu nhấn nút submit thì trang ex1-1.php sẽ triệu gọi, trong trang này bạn có thể lấy giá trị nhập từ trang ex1.php bằng cách sử dụng biến form nhƣ ví dụ 4-1-1. Ví dụ 4-2: Dùng biến form ::Welcome to PHP 44
  46. Form variable Name : Gender : Trong đó, $fullname và $gender là tên của hai thẻ input trong trang ex1.php, trong trƣờng hợp này chúng ta sử dụng phƣơng thức POST cho form. Hình 4-1: Nhập liệu Kết quả trả về nhƣ hình 4-1-1. 45
  47. Hình 4-1-1: Kết quả lấy từ trang submit bằng biến form 1.2. Biến form từ form đƣợc submit với phƣơng thức GET Nếu bạn sử dụng phƣơng thức GET trong thẻ form, bạn có thể lấy giá trị của các tham số trên chuỗi QueryString bằng biến form. Ví dụ khai báo thẻ form có hai tuỳ chọn nhƣ ví dụ 4-2 với phƣơng thức GET trong thẻ form. Ví dụ 4-2: Khai báo thẻ form Province : Ha Noi Ho Chi Minh Hue Industry : Automobile Foods Enginering Garment   46
  48. Khi triệu gọi trang ex2.php trên trình duyệt, ngƣời sử dụng chọn giá trị trong hai tuỳ chọn Province và Industry nhƣ hình 4-2. Hình 4-2: Phƣơng thức GET Nếu nhấn Submit thì hai giá trị chọn sẽ đƣợc truyền lên trên QueryString với hai tham số là tên của thẻ select. Ví dụ trong trƣờng hợp này kết quả trả về nhƣ hình 42-1. Hình 4-2-1: Biến form với phƣơng thức GET Trong đó, hai tham số và giá trị tƣơng ứng là ex2- 1.php?province=HAN&industry=FOO, bằng cách sử dụng biến form bạn có thể lấy đƣợc giá trị này nhƣ ví dụ 4-2-1. Ví dụ 4-2-1: Khai báo thẻ form 47
  49. ::Welcome to PHP Form variable Province : Industry : Đối với trƣờng hợp bạn không sử dụng thẻ form nhƣ hai trƣờng hợp trên, chúng ta cũng có thể lấy giá trị từ chuỗi QueryString bằng biến form. Chẳng hạn, bạn khai báo trang chop phép ngƣời sử dụng chọn ký tự để liệt kê danh sách khách hàng theo ký tự đó nhƣ hình 4-3. Hình 4-3: Chọn ký tự Bằng cách khai báo các thẻ bạn định nghĩa 24 ký tự nhƣ hình trên với tham số al có giá trị tƣơng ứng: 48
  50. | | | | | Khi ngƣời sử dụng chọn một ký tự thì sử dụng biến form là tên của tham số (al), bạn có thể lấy đƣợc giá trị của ký tự đang chọn: Select: Tuy nhiên, lấn đầu tiên triệu gọi trang này mà không có tham số trên QueryString, khai báo biến form sẽ phun ra lỗi nhƣ hình 4-3-1. Để tránh trƣờng hợp này, bạn sử dụng hàm isset để kiểm tra biến tồn tại hay không, nếu tồn tại thì bạn sử dụng biến form này. Ví dụ đối với trƣờng hợp này chúng ta khai báo nhƣ ví dụ 4-3. Ví dụ 4-3: Sử dụng biến form ::Welcome to PHP Form variable List by Alphabet | | | | | Select: 49
  51. Hình 4-3-1: Lỗi phát sinh Chú ý rằng, khi sử dụng biến form bạn không nên khai báo biến cùng tên với các tham số hay tên của thẻ nhập liệu trong trang triệu gọi trƣớc đó. Nếu không thì giá trị trả về là giá trị của biến thƣờng thay vì biến form. 2. PHƢƠNG THỨC $HTTP_GET_VARS Ngoài cách sử dụng biến form trong trƣờng hợp lấy giá trị từ tham số của QueryString, bạn có thể sử dụng hàm $HTTP_GET_VARS. Ví dụ, chúng ta khai báo trang PHP nhƣ ví dụ 4-4. Ví dụ 4-4: Sử dụng $HTTP_GET_VARS ::Welcome to PHP Form variable 50
  52. Province: Ha Noi Ho Chi Minh Hue Lƣu ý rằng, nếu bạn không sử dụng hàm isset để kiểm tra province tồn tại hay không thì trang php sẽ phun lỗi trong trƣờng hợp lần đầu tiên gọi đến trang ex4.php mà không submit. Tuy nhiên, nếu bạn submit trang này thì kết quả trả về nhƣ hình 4-4. Hình 4-4: Dùng $HTTP_GET_VARS Tƣơng tự nhƣ vậy trong trƣờng hợp bạn không sử dụng thẻ form mà giá trị lấy tử chuỗi QueryString bằng cách sử dụng $HTTP_GET_VARS nhƣ ví dụ 4-5. 51
  53. Ví dụ 4-5: Sử dụng $HTTP_GET_VARS ::Welcome to PHP Form variable List by Alphabet | | | | | Select: Kết quả trả về nhƣ hình 4-5. 52
  54. Hình 4-5: Sử dụng $HTTP_GET_VARS 3. PHƢƠNG THỨC $HTTP_POST_VARS Tƣơng tự nhƣ $HTTP_GET_VARS nhƣng $HTTP_POST_VARS cho phép bạn lấy giá trị lấy từ các thẻ nhập liệu của thẻ form trong traang submit trƣớc đó. Ví dụ, bạn khai báo trang nhập liệu nhƣ ví dụ 4-6. Ví dụ 4-5: Khai báo form với phƣơng thức POST ::Welcome to PHP Form variable User Name : Password :   53
  55. Khi ngƣời sử dụng nhập username và password nhƣ hình 4-6 và nhấn nút Login. Hình 4-6: Đăng nhập Bằng cách sử dụng $HTTP_POST_VARS để lấy giá trị username và password nhƣ ví dụ 4-7. Ví dụ 4-5: Sử dụng $HTTP_POST_VARS ::Welcome to PHP Form variable Username 54
  56. : Password : Kết quả trình bày nhƣ hình 4-7. Hình 4-7: Dùng $HTTP_POST_VARS 4. KẾT LUẬN Trong bài này, chúng ta tìm hiểu cách sử dụng biến form và hai phƣơng thức $HTTP_POST_VARS, $HTTP_GET_VARS. Ngoài ra, bạn cũng tìm hiểu cách kiểm tra biến tồn tại hay không bằng hàm isset(). Chú ý rằng, khi sử dụng biến form bạn tránh trƣờng hợp khai báo biến cục bộ hay toàn cục trong tang PHP cùng tên với thẻ nhập liệu của form trƣớc đó submit đến hay tham số trên querystring. 55
  57. BÀI 5. ĐỐI TƢỢNG SESSION VÀ COOKIE Bài học này chúng ta sẽ làm quen với đối tượng Session và một số đối tượng khác:  Đối tượng Session.  Đối tượng khác 1. ĐỐI TƢỢNG SESSION Trong PHP4.0 đối tƣợng Session đƣợc xem nhƣ một đối tƣợng cho phép bạn truyền giá trị từ trang PHP này sang PHP khác. Để sử dụng Session, bạn khai báo thƣ mục đƣợc lƣu trữ dữ liệu do đối tƣợng nay ghi ra. Session đƣợc sinh ra và đƣợc biến mất khi ngƣời sử dụng huỷ chúng, thời gian sống của chúng đã hết hoặc ngƣời sử dụng đóng trình duyệt. Chẳng hạn, trong trƣờng hợp này chúng ta sử dụng thƣ mục C:\PHP\sessiondata đƣợc khai báo trong tập tin php.ini. session.save_path = C:\PHP\sessiondata Ngoài ra, khi muốn sử dụng Sessoin thì bạn phải khởi tạo chúng. Để khởi tạo Session bạn có thể khởi tạo trong trang PHP mỗi khi truy cập hay gán giá trị cho Session. session_start(); Tuy nhiên, bạn có thể cấu hình trong trang php.ini (1 là start). session.auto_start = 0 1.1. Nhận dạng Session Mỗi phiên làm việc đƣợc tạo ra từ Web Server thì sẽ có một nhận dạng duy nhất có giá trị là chuỗi do trình chủ Web tạo ra. Điều này có nghĩa là mỗi khi ngƣời sử dụng triệu gọi trang Web của Web Site lần đầu tiên thì phiên làm việc sẽ đƣợc tạo ra, khi đó một nhận dạng đƣợc cấp cho phiên làm việc đó. Để lấn giá trị nhận dạng của Session do trình chủ Web cấp phát bạn sử dụng cú pháp: $x= session_id(); Chẳng hạn, bạn khai báo báo để lấy giá trị session_id trong trang sessionid.php nhƣ ví dụ 5-1. Ví dụ 5-1: Nhận dạng session 56
  58. ::Welcome to PHP Session_ID Mỗi ngƣời sử dụng truy cập đến Web Site sẽ có một nhận dạng khác nhƣ nhƣ hình 51. Hình 5-1: Nhận dạng duy nhất 1.2. Khai báo Session Khi muốn khai báo biến session, bạn phải sử dụng hàm session_register có cú pháp nhƣ sau: session_register("sessioname"); Khi muốn khởi tạo session, bạn có thể gán giá trị cho session này nhƣ gán giá trị cho biến trong PHP, sau đó sử dụng hàm trên để đắng ký. $sessioname=value; session_register("sessioname"); Trong trƣờng hợp có nhiều session, bạn có thể sử dụng hàm session_register để đăng ký cùng một lúc nhiều session nhƣ sau: $sessioname1=value1; 57
  59. $sessioname2=value2; $sessioname3=value3; session_register("sessioname1","sessioname2","sessioname3"); Chẳng hạn, trong trƣờng hợp này chúng ta khai báo trang sessionregister.php và đăng ký 3 sessoin có tên userid, email và fullname nhƣ ví dụ 5-2 sau: Ví dụ 5-2: Đăng ký session ::Welcome to PHP Registered Session Kết quả trả về nhƣ hình 5-2. Hình 5-2: Đăng ký Session 58
  60. 1.3. Lấy giá trị từ session Sau khi khai báo khởi ạo một số session với giá trị tƣơng ứng của session đó, bạn có thể truy cập các biến session này để lấy giá trị torng trang PHP khác. Chẳng hạn, chúng ta khai báo trang getsession.php để lấy các session của PHP vừa khai báo trong ví dụ trên nhƣ ví dụ 5-3. Ví dụ 5-3: Lấy giá trị từ session ::Welcome to PHP Get Session "; echo "Email: ".$email." "; echo "FullName: ".$fullname; ?> Khi triệu gọi trang getsession.php trên trình duyệt bạn trình bày giá trị của session userid, email và fullname nhƣ hình 5-3. Hình 5-3: Lấy giá trị của session 59
  61. Tuy nhiên, trong trƣờng hợp bạn truy cập một biến session chƣa khởi tạo trƣớc đó thì l64i sẽ phát sinh. Ví dụ trong trƣờng hợp này chúng ta truy cập biến session có tên $address nhƣ ví dụ 5-4. Ví dụ 5-4: Truy cập session chƣa tồn tại ::Welcome to PHP Get Session "; echo "Email: ".$email." "; echo "FullName: ".$fullname; echo "Address: ".$address; ?> Khi triệu gọi trang unregistersession.php trên trình duyệt thì lỗi phát sinh nhƣ hình 5-4. Hình 5-4: Lỗi phát sinh 60
  62. Để kiểm tra session đó có tồn tại hay chƣa bạn sử dụng hàm session_is_register trong trang checksession.php. Đối với trƣờng hợp này chúng ta cần kiểm tra 4 session trƣớc khi truy cập đến chúng nhƣ ví dụ 5-5. Ví dụ 5-5: Kiểm tra session ::Welcome to PHP Get Session "; if(session_is_registered("email")) echo "Email: ".$email." "; if(session_is_registered("fullname")) echo "FullName: ".$fullname; if(session_is_registered("address")) echo "Address: ".$address; ?> Khi triệu gọi trang checksession.php thì kết quả sẽ trình bày nhƣ hình 5-5. Hình 5-5: Không có lỗi phát sinh Chú ý rằng, khi sử dụng đến session, bạn phai khởi động chúng bằng session_start() nếu không thì phải khai báo trong php.ini. 61
  63. 1.4. Huỷ session Khi không có nhu cầu sử dụng session nữa thì bạn sử dụng hàm session_unregister để loại session đó. Chẳng hạn, trong trƣờng hợp này chúng ta muốn loại bỏ session có tên là fullname bạn khai báo trong trang sessionunregister.php nhƣ ví dụ 5-6. Ví dụ 5-6: Loại bỏ một Session ::Welcome to PHP UnRegister Session "; if(session_is_registered("email")) echo "Email: ".$email." "; if(session_is_registered("fullname")) echo "FullName: ".$fullname; if(session_is_registered("address")) echo "Address: ".$address; ?> Khi triệu gọi trang sessionunregister.php trên trình duyệt thìkết quả trả về nhƣ hình 56. Hình 5-6: Loại bỏ session 62
  64. Trong trƣờng hợp loại bỏ tất các session đang tồn tại thì sử dụng hàm session_unset(). Ví dụ dùng hàm này để lạoi bỏ session và dùng hàm sessin_destroy để huỷ tất cả session đó khai báo trong trang unset.php nhƣ ví dụ 5-7. Ví dụ 5-7: Xoá tất cả session ::Welcome to PHP UnSet Session "; if(session_is_registered("email")) echo "Email: ".$email." "; if(session_is_registered("fullname")) echo "FullName: ".$fullname; if(session_is_registered("address")) echo "Address: ".$address; ?> Kết quả trả về nhƣ hình 5-7. Hình 5-7: Huỷ session 63
  65. 2. COOKIE Cookie đƣợc xem nhƣ session, tuy nhiên chúng lƣu trữ thông tin trên trình khách. Để sử dụng Cookie, bạn sử dụng hàm setcookie để gán giá trị nhƣ ví dụ 5-8. Ví dụ 5-8: Gán giá trị cho cookie ::Welcome to PHP Cookie Khi ngƣời sử dụng triệu gọi trang setcookie.php kết quả trả về nhƣ hình 5-8. Hình 5-8: Đắng ký cookie Ngài ra, bạn có thể gán giá trị cookie bằng session. Chẳng hạn, chúng ta sử dụng hàm session_set_cookie_params để gán cookie nhƣ ví dụ 5-9. Ví dụ 5-9: Gán cookie bằng session 64
  66. ::Welcome to PHP Session-Cookie Bằng cách sử dụng $HTTP_COOKIE_VARS để lấy giá trị của cookie trƣớc đó trong trang httpcookievar.php nhƣ ví dụ 5-10. Ví dụ 5-10: Sử dụng $HTTP_COOKIE_VARS ::Welcome to PHP Get Cookie Kết quả trình bày nhƣ hình 5-10. Hình 5-10: Dùng $HTTP_COOKIE_VARS Bằng cách sử dụng hàm session_get_cookie_params để lấy giá trị của cookie trƣớc đó trong trang sessiongetcookie.php nhƣ ví dụ 5-11. 65
  67. Ví dụ 5-11: Sử dụng session_get_cookie_params ::Welcome to PHP Get Cookie 3. KẾT LUẬN Trong bài này, chúng ta tìm hiểu cách sử dụng biến session và cookie. 66