Giáo trình lập trình PHP
Mục Lục Bài 1 GIỚI THIỆU, CÀI ĐẶT & CẤU HÌNH PHP VỚI WAMP SERVER 1 I. Giới thiệu 1 1. Ngôn ngữ PHP 1 2. Thông dịch trang PHP 1 3. Ngôn ngữ kịch bản 2 II. Wamp Server 3 1. Giới thiệu về WampServer 3 2. Các thành phần trong Wampserver 2.0i 3 3. Cài đặt Wampserver 2.0i 3 4. Sử dụng (cấu hình) Wampserver 7 Bài 2 KIẾN THỨC TỔNG QUÁT VỀ LẬP TRÌNH PHP 11 I. Cấu trúc cơ bản 11 II. Xuất giá trị ra trình duyệt 11 III. Khái niệm biến 12 1. Biến trong PHP 12 2. Các kiểu dữ liệu trong PHP 12 3. Thay đổi kiểu dữ liệu 13 4. Kiểm tra kiểu dữ liệu của biến 14 5. Biến trong biến 15 6. Tầm vực của biến 15 IV. Hằng 17 1. Khái niệm 17 2. Kiểm tra hằng 17 V. Khái niệm về chuỗi 18 Bài 3 TOÁN TỬ VÀ BIỂU THỨC TRONG PHP 19 I. Toán tử trong PHP 19 1. Toán tử gán 19 2. Toán tử số học 19 3. Toán tử so sánh 19 4. Toán tử logic 19 5. Toán tử kết hợp 20 II. Các biểu thức cơ bản trong PHP 20 1. Biểu thức điều kiện 20 2. Vòng lặp while 20 3. Vòng lặp Do…while 21 4. Vòng lặp For 21 5. Biểu thức Switch case 22 III. Bài tập 22 Bài 4 XỬ LÝ GIÁ TRỊ FORM 23 I. Phƣơng thức GET 23 II. Phƣơng thức POST 24 III. Bài tập 24 Bài 5 THAO TÁC TRÊN TẬP TIN 26 I. Đóng - mở một tập tin 26 II. Đọc – ghi tập tin 27 1. Đọc một tập tin 27 2. Ghi một tập tin 28 III. Bài tập 28 Bài 6 XỬ LÝ CHUỖI VÀ THỜI GIAN 29 I. Xử lý chuỗi 29 1. Định dạng chuỗi 29 2. Hàm chuyển đổi chuỗi 30 3. Hàm tách hay kết hợp chuỗi 31 4. Tìm kiếm và thay thế chuỗi 33 II. Xử lý datetime 34 Bài 7 MẢNG TRONG PHP 37 I. Định nghĩa mảng trong PHP 37 II. Khái niệm mảng kết hợp 37 III. Phép lặp trong mảng 38 1. Lặp lại một mảng 38 2. Lặp lại qua một mảng kết hợp: 38 IV. Các hàm hỗ trợ trong PHP 38 1. Hàm gộp mảng: 38 2. Hàm tách mảng: 38 3. Hàm sắp xếp mảng: 39 4. Hàm sắp xếp mảng theo chỉ mục: 39 5. Hàm tìm phần tử có tồn tại trong mảng hay không ?. 39 V. Bài tập 39 Bài 8 KHÁI NIỆM CƠ BẢN VỀ COOKIE VÀ SESSION TRONG PHP 40 I. Tổng quan về Cookie 40 1. Thiết lập Cookie 40 2. Sử dụng Cookie 40 3. Huỷ Cookie 41 II. Tổng quan về Session 42 1. Thiết lập Session 42 2. Nhận dạng Session 42 3. Khai báo giá trị session 43 4. Sử dụng giá trị của Session 43 5. Kiểm tra session 44 6. Huỷ Session 45 III. Bài tập 45 Bài 9 KHÁI NIỆM VỀ HÀM 46 I. Hàm tự định nghĩa 46 II. Hàm tự định nghĩa với các tham số 46 III. Hàm tự định nghĩa với giá trị trả về 47 IV. Gọi lại code trong PHP 47 V. Tập tin dùng chung 48 VI. Bài tập 50 Bài 10 KẾT HỢP PHP VÀ MYSQL TRONG ỨNG DỤNG WEB 51 I. Kết nối cơ sở dữ liệu 51 II. Lựa chọn CSDL 51 III. Thực thi câu lệnh truy vấn 51 IV. Đếm số dòng dữ liệu 51 V. Lấy dữ liệu từ bảng đƣa vào mảng 51 VI. Đóng kết nối cơ sở dữ liệu 51 VII. Ví dụ áp dụng 51 VIII. Tạo file kết nội CSDL 53 IX. Các thao tác trên mẩu tin 53 1. Thêm mẩu tin 53 2. Cập nhật mẩu tin 57 3. Xoá mẩu tin 58 X. Tổng kết 60 Bài 11 VIẾT ỨNG DỤNG ĐĂNG NHẬP 61 Bài 12 VIẾT ỨNG DỤNG THÊM THÀNH VIÊN 65 Bài 13 VIẾT ỨNG DỤNG QUẢN LÝ THÀNH VIÊN 70 Bài 14 VIẾT ỨNG DỤNG XOÁ SỬA THÀNH VIÊN 74 Bài 15 VIẾT ỨNG DỤNG TẠO MÃ XÁC NHẬN (IMAGE CAPCHA) 80 Bài 16 VIẾT ỨNG DỤNG ĐẾM SỐ NGƢỜI ONLINE 85 Bài 17 XÂY DỰNG HỆ THỐNG BÌNH CHỌN 88 Bài 18 XÂY DỰNG ỨNG DỤNG TẠO TRANG UPLOAD NHIỀU HÌNH 95 Bài 19 VIẾT ỨNG DỤNG TẠO GIỎ HÀNG – SHOPPING CART 101 Giáo trình ngôn ngữ PHP Biên soạn Nguyễn Minh Thành 1 Bài 1 GIỚI THIỆU, CÀI ĐẶT & CẤU HÌNH PHP VỚI WAMP SERVER I. Giới thiệu 1. Ngôn ngữ PHP PHP (PHP Hypertext Preprocessor) là ngôn ngữ script trên server đƣợc thiết kế để dễ dàng xây dựng các trang Web động. Mã PHP có thể thực thi trên Webserver để tạo ra mã HTML và xuất ra trình duyệt web theo yêu cầu của ngƣời sử dụng. Ngôn ngữ PHP ra đời năm 1994 Rasmus Lerdorf sau đó đƣợc phát triển bởi nhiều ngƣời trải qua nhiều phiên bản. Phiên bản hiện tại là PHP 5 đã đƣợc công bố 7/2004. Lịch sử các phiên bản của PHP : PHP : Rasmus Lerdorf phát triển vào năm1994 (đƣợc phát triển để phát sinh các form đăng nhập sử dụng giao thức HTTP của Unix) PHP 2 (1995) : chuyển sang ngôn ngữ Script xử lý trên Server. Hỗ trợ CSDL, upload file, khai báo biến,mảng, hàm đệ quy, câu điều kiện, biểu thức… PHP 3 (1998) : hỗ trợ ODBC, đa hệ hiều hành, giao thức email (SNMP, IMAP), bộ phân tích mã PHP (Parser) của Zeev Suraski và Andi Gutmans. PHP 4 (2000) : Trở thành một thành phần độc lập cho các webserver. Parse đổi tên thành Zend Engine. Bổ sung các tính năng bảo mật cho PHP PHP 5 (2005) : Bổ sung Zend Engine II hỗ trợ lập trình HĐT, XML, SOAPcho Web Services, SQLite Phiên bản mới nhất của PHP là version PHP 5.2.4 (www.php.net) Có nhiều lý do khiến cho việc sử dụng ngôn ngữ này chiếm ƣu thế xin nêu ra đây một số lý do cơ bản : - Mã nguồn mở (open source code) - Miễn phí, download dễ dàng từ Internet. - Ngôn ngữ rất dễ học, dễ viết. - Mã nguồn không phải sửa lại nhiều khi viết chạy cho các hệ điều hành từ Windows, Linux, Unix - Rất đơn giản trong việc kết nối với nhiều nguồn DBMS, ví dụ nhƣ : MySQL, Microsoft SQL Server 2000, Oracle, PostgreSQL, Adabas, dBase, Empress, FilePro, Informix, InterBase, mSQL, Solid, Sybase, Velocis và nhiều hệ thống CSDL thuộc Hệ Điều Hành Unix (Unix dbm) cùng bất cứ DBMS nào có sự hỗ trợ cơ chế ODBC (Open Database Connectivity) ví dụ nhƣ DB2 của IBM. 2. 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 Giáo trình ngôn ngữ PHP Biên soạn Nguyễn Minh Thành 2 Quá trình thông dịch trang PHP 3. Ngôn ngữ kịch bản Nội dung của PHP có thể khai báo lẫn lộn với HTML. 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 <HTML> <HEAD> <TITLE>::Welcome to PHP</TITLE> </HEAD> <BODY> Greeting: <?php echo "Hello PHP"?> </BODY> </HTML> Kết quả trả về nhƣ hình 1-10 khi triệu gọi trang này trên trình duyệt Giáo trình ngôn ngữ PHP Biên soạn Nguyễn Minh Thành 3 II. Wamp Server Để cài đặt PHP, các bạn có thể cài đặt từng gói riêng lẻ (PHP, Apache, Mysql). Tuy nhiên, tôi vẫn khuyến khích các bạn cài đặt dạng gói tích hợp. Sẽ tiện lợi cho việc sau này hơn rất nhiều. Gói phần mềm mà tôi chọn là : WampServer 2.0i (Tên phần mềm là Wampserver, dành cho phiên bản window, phiên bản thứ 2.0 i). 1. Giới thiệu về WampServer WampServer là một môi trƣờng phát triển web cho Windows với các thành phần : • Apache • PHP • MySQL Website : http://www.wampserver.com/en/presentation.php Phiên bản mới nhất là WampServer 2.0i (thay thế cho Wamp5) Tự động cài đặt toàn hệ thống, dễ sử dụng Dễ dàng nâng cấp phiên bản mới của các module con (Apache, PHP, MySQL) Tự nhận diện sự tƣơng thích các phiên bản của các module với nhau 2. Các thành phần trong Wampserver 2.0i WampServer 2.0i gồm có : (7/11/2009) WebServer : Apache 2.2.11 Hệ quản trị CSDL : MySQL 5.1.36 PHP Engine : 5.3.0 Website quản lý Database Server : phpMyAdmin, SQLiteManager Quản lý Webserver bằng Website 3. Cài đặt Wampserver 2.0i Uninstall các version trƣớc của Wampserver (trƣớc Wamp5) Download WampServer 2.0i từ website (15.2MB) Quá trình cài đặt WampServer Giáo trình ngôn ngữ PHP Biên soạn Nguyễn Minh Thành 4 Thông báo gỡ các phiên bản trƣớc của Wampserver Màn hình cài đặt đầu tiên của Wampserver Chọn đƣờng dẫn cài đặt WampServer Cần tối thiểu 117.1 MB ổ cứng trống để cài đặt Giáo trình ngôn ngữ PHP Biên soạn Nguyễn Minh Thành 5 Chọn trình duyệt mặc định cho các hoạt động của WampServer Mở port cho Windows Firewall (nếu có setup) Giáo trình ngôn ngữ PHP Biên soạn Nguyễn Minh Thành 6 Chọn port mail để phục vụ cho hàm mail() của PHP Kết thúc cài đặt, tiến hành chạy Wampserver [...]... năng thông qua giao diện web PhpMyAdmin Wamp quản lý database bằng website Biên soạn Nguyễn Minh Thành 9 Giáo trình ngôn ngữ PHP Tạo Database mới Biên soạn Nguyễn Minh Thành 10 Giáo trình ngôn ngữ PHP Bài 2 KIẾN THỨC TỔNG QUÁT VỀ LẬP TRÌNH PHP Ở bài trước chúng ta đã tìm hiểu về cách thức cấu hình và cài đặt PHP Tiếp theo chúng ta sẽ nghiên cứu về cấu trúc cơ bản trong PHP Về tổng quan PHP có cú pháp... có những điểm rất riêng biệt I Cấu trúc cơ bản PHP cũng có thẻ bắt đầu và kết thúc giống với ngôn ngữ HTML Chỉ khác, đối với PHP chúng ta có nhiều cách để thể hiện Cách 1 : Cú pháp chính: < ?php Mã lệnh PHP ?> Cách 2: Cú pháp ngắn gọn Cách 3: Cú pháp giống với ASP Cách 4: Cú pháp bắt đầu bằng script Mặc dù có 4 cách thể hiện Nhƣng... nhƣ trƣờng hợp trong ví dụ scope .php nhƣ ví dụ sau (global .php) ::Welcome to PHP Scope of Variable < ?php $a = 100; /* global scope */ function Test() { global $a; $i=10; $a+=10; echo "a:=$a"; echo "i:=$i"; /* reference to local scope variable */ } Test(); Biên soạn Nguyễn Minh Thành 16 Giáo trình ngôn ngữ PHP echo "a:=$a"; $i=1000;... bài này các bạn đã có những khái niệm đầu tiên về PHP, các cú pháp, các kiểu dữ liệu, và cách làm việc với môi trƣờng PHP nhƣ thế nào Ở bài sau, chúng ta sẽ tiếp tục tiếp cận với các thuật toán và cú pháp PHP một cách rõ ràng và quen thuộc trong các ngôn ngữ lập trình Biên soạn Nguyễn Minh Thành 18 Giáo trình ngôn ngữ PHP Bài 3 TOÁN TỬ VÀ BIỂU THỨC TRONG PHP Đối với mọi ngôn ngữ lập trình, toán tử và... Thành 24 Giáo trình ngôn ngữ PHP Đáp án: Tạo trang login.html với nội dung sau: Tiếp tục tạo trang checklogin .php với nội dung sau: Biên soạn Nguyễn Minh Thành 25 Giáo trình ngôn ngữ PHP THAO TÁC TRÊN TẬP TIN Bài 5 Một trong những tác vụ đặc biệt của PHP đó là cho phép xử lý dữ liệu trực tiếp thông qua quá trình nhận và đọc nội dung trên 1 file dữ liệu Điều này giúp cho PHP trở nên tinh tế và dễ tùy... bạn có thể sử dụng hàm settype để chuyển đổi dữ liệu này sang dữ liệu khác, ví dụ chúng ta khai báo nhƣ ví dụ sau (settype .php) Biên soạn Nguyễn Minh Thành 13 Giáo trình ngôn ngữ PHP ::Welcome to PHP Change DataType of Variable < ?php $var="12-ABC"; $check=true; echo $var; echo ""; echo $check; echo ""; settype($var,"integer"); echo $var; echo... nhƣ ví dụ sau (check .php) ::Welcome to PHP Check DataType of Variable < ?php $sotrang=10; $record=5; $check = true; $strSQL="select * from tblCustomers"; $myarr = array("first", "last", "company"); $myarrs[2]; $myarrs[0]="Number 0"; $myarrs[1]="Number 1"; $myarrs[2]="Number 2"; Biên soạn Nguyễn Minh Thành 14 Giáo trình ngôn ngữ PHP echo is_array($myarr);... total thì khai báo nhƣ ví dụ 2-5 (change .php) ::Welcome to PHP Change DataType of Variable < ?php $var="total"; echo $var; echo ""; $$var=10; echo $total; ?> 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... 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ụ sau (scope .php) ::Welcome to PHP Scope of Variable < ?php $a = 100; /* global scope */ Biên soạn Nguyễn Minh Thành 15 Giáo trình ngôn ngữ PHP function Test() { $i=10; $a=10; echo "a:=$a"; echo "i:=$i"; /* reference to local scope variable */... ngôn ngữ PHP Từ thƣ mục cài đặt WampServer (C:\Wamp) – Mở File wampserver.ini sửa các thông tin sau : – Tìm trong [Menu Left] – http://localhost/ http://localhost:8080/ – http://localhost/phpmyadmin/ http://localhost:8080/phpmyadmin/ – http://localhost/sqlitemanager/ http://localhost:8080/sqlitemanager Quản lý các website trong Wampserver Biên soạn Nguyễn Minh Thành 8 Giáo trình ngôn ngữ PHP Wamp . ngôn ngữ PHP Biên soạn Nguyễn Minh Thành 1 Bài 1 GIỚI THIỆU, CÀI ĐẶT & CẤU HÌNH PHP VỚI WAMP SERVER I. Giới thiệu 1. Ngôn ngữ PHP PHP (PHP Hypertext. thức… PHP 3 (1998) : hỗ trợ ODBC, đa hệ hiều hành, giao thức email (SNMP, IMAP), bộ phân tích mã PHP (Parser) của Zeev Suraski và Andi Gutmans. PHP 4