Đăng ký Đăng nhập

Tài liệu Giao trinh PHP

.PDF
119
303
92

Mô tả:

Mục Lục GIỚI THIỆU, CÀI ĐẶT & CẤU HÌNH PHP VỚI WAMP SERVER ................ 1 Bài 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 Các biểu thức cơ bản trong PHP......................................................................... 20 II. 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 Lấy dữ liệu từ bảng đƣa vào mảng ..................................................................... 51 V. 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 GIỚI THIỆU, CÀI ĐẶT & CẤU HÌNH PHP VỚI WAMP SERVER Bài 1 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 Biên soạn Nguyễn Minh Thành 1 Giáo trình ngôn ngữ PHP 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 ::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 Biên soạn Nguyễn Minh Thành 2 Giáo trình ngôn ngữ PHP 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 Biên soạn Nguyễn Minh Thành 3 Giáo trình ngôn ngữ PHP 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 Biên soạn Nguyễn Minh Thành 4 Giáo trình ngôn ngữ PHP 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) Biên soạn Nguyễn Minh Thành 5 Giáo trình ngôn ngữ PHP 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 Biên soạn Nguyễn Minh Thành 6 Giáo trình ngôn ngữ PHP 4. Sử dụng (cấu hình) Wampserver Khởi động Server Khởi động WampServer cần phải khởi động – WebServer : Apache – MySQL Server Vấn đề port 80 của Apache – IIS sử dụng port 80 – Apache cũng sử dụng port 80 – Khắc phục : • Thay port của IIS : 80 8080 (hoặc port khác) • Thay port của Apache Giữ port 80 cho Apache, thay đổi port cho IIS : – Vào Control Panel Administrator Tools Information Internet Services (IIS) – Trong IIS, từ cây chức năng bên trái, truy đến chức năng: IIS Web Sites Default Web Site right Click (chọn Properties) Giữ port 80 cho IIS, thay đổi port của Apache : – Từ systray icon của WampServer chọn menu Apache chọn httpd.conf – Trong file config, tìm Listen 80 và sửa lại thành Listen 8080 – Restart lại WampServer Biên soạn Nguyễn Minh Thành 7 Giáo trình 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 quản lý các chức 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 khá tương đồng với 1 số ngôn ngữ như C, java. Tuy nhiên, tự bản thân chúng cũng 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: Cách 2: Cú pháp ngắn gọn Cách 3: Cú pháp giống với ASP. <% Mã lệnh PHP %> Cách 4: Cú pháp bắt đầu bằng script Mặc dù có 4 cách thể hiện. Nhƣng đối với 1 lập trình viên có kinh nghiệm thì việc sử dụng cách 1 vẫn là lựa chon tối ƣu. Trong PHP để kết thúc 1 dòng lệnh chúng ta sử dụng dấu ";" Để chú thích 1 đoạn dữ liệu nào đó trong PHP ta sử dụng dấu "//" cho từng dòng. Hoặc dùng cặp thẻ "/*……..*/" cho từng cụm mã lệnh. II. Xuất giá trị ra trình duyệt Để xuất dữ liệu ra trình duyệt chúng ta có những dòng cú pháp sau : + echo "Thông tin"; + printf "Thông tin"; Thông tin bao gồm : biến, chuỗi, hoặc lệnh HTML …. Biên soạn Nguyễn Minh Thành 11 Giáo trình ngôn ngữ PHP Nễu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu "." III. Khái niệm biến 1. Biến trong PHP Biến đƣợc xem là vùng nhớ dữ liệu tạm thời. Và giá trị có thể thay đổi đƣợc. Biến đƣợc bắt đầu bằng ký hiệu "$". Và theo sau chúng là 1 từ, 1 cụm từ nhƣng phải viết liền hoặc có gạch dƣới. 1 biến đƣợc xem là hợp lệ khi nó thỏa các yếu tố : + Tên của biến phải bắt đầu bằng dấu gạch dƣới và theo sau là các ký tự, số hay dấu gạch dƣới. + Tên của biến không đƣợc phép trùng với các từ khóa của PHP. Trong PHP để sử dụng 1 biến chúng ta thƣờng phải khai báo trƣớc, tuy nhiên đối với các lập trình viên khi sử dụng họ thƣờng xử lý cùng một lúc các công việc, nghĩa là vừa khai báo vừa gán dữ liệu cho biến. Bản thân biến cũng có thể gán cho các kiểu dữ liệu khác. Và tùy theo ý định của ngƣời lập trình mong muốn trên chúng. Công thức khai báo biến : $tên_biến [=giá_trị_khởi_tạo]; Một số ví dụ về biến : 2. Các kiểu dữ liệu trong PHP Các kiểu dữ liệu khác nhau chiếm các lƣợng bộ nhớ khác nhau và có thể đƣợc xử lý theo cách khác nhau khi chúng đƣợc thao tác trong 1 script. Trong PHP chúng ta có 6 kiểu dữ liệu chính nhƣ sau : Biên soạn Nguyễn Minh Thành 12 Giáo trình ngôn ngữ PHP Chúng ta có thể sử dụng hàm dựng sẵn gettype() của PHP4 để kiểm tra kiểu của bất kỳ biến. Ví dụ: 3. 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ụ sau (box.php): ::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 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

"; echo $check; echo "
"; settype($var,"integer"); echo $var; echo "
"; settype($check,"string"); echo $check; ?> 4. 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ụ sau (check.php). ::Welcome to PHP

Check DataType of Variable

"; echo is_bool($record); ?> 5. Biến trong 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; ?> 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ực 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ụ sau (scope.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"; ?> Ngoài ra, để sử dụng biến toàn cục trong hàm, bạn sử dụng từ khóa 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ụ sau (global.php). ::Welcome to PHP

Scope of Variable

a:=$a"; echo "
i:=$i"; /* reference to local scope variable */ } Test(); Biên soạn Nguyễn Minh Thành 16
- Xem thêm -

Tài liệu liên quan