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
Mã lệnh PHP ?>
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 -