Bài giảng Lập trình Web - Chương 6: Lập trình Web với PHP
GIớITHIệUVềPHP
n PHP là gì ?
l PHP là Hypertext Preprocessor
l Ngôn ngữscript chạytrênserver
l PHP scripts chứa text, thẻHTML, script
l Sửdụng phầnmởrộng tên file : .php, .phtml
l PHP scripts sẽtrảvềkếtquảcho trình duyệtmột plain HTML
l PHP hỗtrợđểlàm việcvới nhiềuhệQTCSDL khác nhau:
MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL,
Generic ODBC,.
l Phầnmềmmãnguồnmở, miễn phí
l Chạytrênnhiều platforms (Unix, Linux, Windows)
/2011 41 Bộ môn Mạng máy tính & Truyền thông 42
ĐịNH
NGHĨA
SẵN
TRONG
PHP
1/5/2011 42 Bộ môn Mạng máy tính & Truyền thông
43
n Hàm
l Cú pháp :
<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
echo "Example function.\n";
return $retval;
}
?>
HÀM DO NGƯờI Sử DụNG ĐịNH NGHĨA
1/5/2011 43 Bộ môn Mạng máy tính & Truyền thông 44
HÀM DO NGƯờI Sử DụNG ĐịNH NGHĨA
1/5/2011 44 Bộ môn Mạng máy tính & Truyền thông
Hàm do người sử dụng định nghĩa
451/5/2011 45 Bộ môn Mạng máy tính & Truyền thông
HÀM DO NGƯờI Sử DụNG ĐịNH NGHĨA
46
n Tham số
l Truyền tham số : giá trị, tham chiếu
l Hàm : func_num_args(), func_get_arg()
l Ví dụ tham số là mảng:
<?php
function takes_array($input) {
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>
1/5/2011 46 Bộ môn Mạng máy tính & Truyền thông
47
n Tham số
l Ví dụ tham số có giá trị mặc định :
<?php
function makecoffee($type = "cappuccino")
{
return "Making a cup of $type.";
}
echo makecoffee();
echo makecoffee("espresso");
?>
1/5/2011 47 Bộ môn Mạng máy tính & Truyền thông
HÀM DO NGƯờI Sử DụNG ĐịNH NGHĨA
48
n Tham số
l Ví dụ truyền tham chiếu :
<?php
function add_some_extra(&$string)
{
$string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_extra($str);
echo $str; // outputs 'This is a string, and something extra.'
?>
1/5/2011 48 Bộ môn Mạng máy tính & Truyền thông
HÀM DO NGƯờI Sử DụNG ĐịNH NGHĨA
49
n Giá trị trả về
l Ví dụ :
<?php
function square($num)
{
return $num * $num;
}
echo square(4); // outputs '16'.
?>
1/5/2011 49 Bộ môn Mạng máy tính & Truyền thông
HÀM DO NGƯờI Sử DụNG ĐịNH NGHĨA
50
n Giá trị trả về
l Ví dụ :
<?php
function small_numbers()
{
return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
?>
1/5/2011 50 Bộ môn Mạng máy tính & Truyền thông
HÀM DO NGƯờI Sử DụNG ĐịNH NGHĨA
51
n Giá trị trả về
l Ví dụ :
<?php
function &returns_reference()
{
return $someref;
}
$newref =& returns_reference();
?>
1/5/2011 51 Bộ môn Mạng máy tính & Truyền thông
HÀM DO NGƯờI Sử DụNG ĐịNH NGHĨA
Giới thiệu về PHP
Biến, kiểu dữ liệu, phép toán
Lệnh điều khiển
Hàm
PHP kết hợp với forms
Cookies, SSI (Server side includes), Date
PHP-MySQL
521/5/2011 52 Bộ môn Mạng máy tính & Truyền thông
53
n PHP kết hợp với HTML Form
l Hầu hết các thành phần của HTML Form đều được sẵn dùng
trong các PHP script
l Sử dụng biến $_GET hay $_POST để truy xuất đến các thành
phần của HTML Form
l Ví dụ : trang web là welcome.html nội dung như sau
Enter your name:
Enter your age:
1/5/2011 53 Bộ môn Mạng máy tính & Truyền thông
PHP + HTML FORM PHP + HTML FORM
54
n PHP kết hợp với HTML Form
l PHP script "welcome.php" sử dụng biến $_POST để truy xuất đến
các thành phần của HTML Form do sử dụng method="POST"
l PHP script welcome.php nội dung như sau
Welcome .
You are years old!
1/5/2011 54 Bộ môn Mạng máy tính & Truyền thông
Giới thiệu về PHP
Biến, kiểu dữ liệu, phép toán
Lệnh điều khiển
Hàm
PHP kết hợp với forms
Cookies, SSI (Server side includes), Date
PHP-MySQL
551/5/2011 55 Bộ môn Mạng máy tính & Truyền thông
COOKIES
56
n Cookie
l Thường được sử dụng để xác định một user
l Server ghi 1 tập tin cookie lên web client
l PHP cho phép tạo và đọc lại những giá trị từ cookie
l Hàm tạo cookie : setcookie(name, value, expire, path, domain)
l Được đặt trước thẻ
l Ví dụ :
A cookie was set on this page! The cookie will be active when the client has sent the
cookie back to the server.
1/5/2011 56 Bộ môn Mạng máy tính & Truyền thông
COOKIES
57
n Cookie
l Hàm isset() để đọc lại cookie đã được tạo
l Ví dụ :
<?php
if (isset($_COOKIE["uname"]))
echo "Welcome " . $_COOKIE["uname"] . "!";
else
echo "You are not logged in!";
?>
1/5/2011 57 Bộ môn Mạng máy tính & Truyền thông 58
n SSI
l Chèn đoạn code chương trình của một file vào file khác trước khi
thực thi
l Sử dụng hàm require()
l Ví dụ :
Some text Some text
1/5/2011 58 Bộ môn Mạng máy tính & Truyền thông
SERVER SIDE INCLUDES
59
l Cú pháp : string date (date_format[,int timestamp])
1/5/2011 59 Bộ môn Mạng máy tính & Truyền thông
HÀM THờI GIAN HÀM THờI GIAN
601/5/2011 60 Bộ môn Mạng máy tính & Truyền thông
HÀM THờI GIAN
61
n Date()
l Ví dụ :
<?php
//Prints something like: Monday
echo date("l");
//Prints something like: Monday 15th of January 2003 05:51:38 AM
echo date("l dS of F Y h:i:s A");
//Prints something like: Monday the 15th
echo date("l \\t\h\e jS");
?>
1/5/2011 61 Bộ môn Mạng máy tính & Truyền thông
Giới thiệu về PHP
Biến, kiểu dữ liệu, phép toán
Lệnh điều khiển
Hàm
PHP kết hợp với forms
Cookies, SSI (Server side includes), Date
PHP-MySQL
621/5/2011 62 Bộ môn Mạng máy tính & Truyền thông
MYSQL
63
n MySQL
l Download : www.mysql.com, cài đặt
l Có thể cài thêm giao diện quản trị
l Hoặc sử dụng trình mysql (client)
mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 5.0.15-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
1/5/2011 63 Bộ môn Mạng máy tính & Truyền thông
MYSQL
64
n Lệnh cơ bản MySQL
l Tạo xóa cơ sở dữ liệu : create (drop) database dbname
l Tạo xóa người dùng : create (drop) user uname
l Tạo xóa quyền truy cập : grant (revoke) …
l Tạo xóa bảng : create (drop) table tname
l Chèn mẫu tin : insert into tname values (…)
l Xóa mẫu tin : delete … from tname where …
l Cập nhật : update tname set colname = value …
1/5/2011 64 Bộ môn Mạng máy tính & Truyền thông
MYSQL
651/5/2011 65 Bộ môn Mạng máy tính & Truyền thông
MYSQL
661/5/2011 66 Bộ môn Mạng máy tính & Truyền thông
MYSQL
67
n Ví dụ :
l Tạo cơ sở dữ liệu mydb : create database mydb;
l Tạo bảng Person
mysql> use mydb;
Database changed
mysql> CREATE TABLE Person
-> (
-> lastname varchar(30),
-> firstname varchar(10),
-> address varchar(30),
-> age int
-> );
mysql>
1/5/2011 67 Bộ môn Mạng máy tính & Truyền thông
MYSQL
68
n Ví dụ :
l Chèn các mẫu tin vào bảng Person
mysql> insert into Person values ('Thanh-Nghi', 'Do', '84/40, CMT8',31);
mysql> insert into Person values ('Nguyen-Khang', 'Pham', '43/20, Mau Than',27);
mysql> insert into Person values ('Nguyen-Binh', 'Le', '12, Nguyen Thong',18);
mysql> insert into Person values ('Trung-Tin', 'Nguyen', '31, Ngo Quyen',12);
mysql> insert into Person values ('Binh-Minh', 'Bui', 'C8, Truong Dinh',22);
mysql>
1/5/2011 68 Bộ môn Mạng máy tính & Truyền thông
MYSQL
69
n Ví dụ :
l Thực hiện câu truy vấn trên bảng Person
mysql> select * from Person;
+--------------+-----------+------------------+------+
| lastname | firstname | address | age |
+--------------+-----------+------------------+------+
| Thanh-Nghi | Do | 84/40, CMT8 | 31 |
| Nguyen-Khang | Pham | 43/20, Mau Than | 27 |
| Nguyen-Binh | Le | 12, Nguyen Thong | 18 |
| Trung-Tin | Nguyen | 31, Ngo Quyen | 12 |
| Binh-Minh | Bui | C8, Truong Dinh | 22 |
+--------------+-----------+------------------+------+
5 rows in set (0.00 sec)
mysql>1/5/2011 69 Bộ môn Mạng máy tính & Truyền thông 70
n PHP nối kết đến MySQL
l Tạo kết nối :
$conn = mysql_connect(“ip_db_serv”, “username”, “passwd”);
l Chọn cơ sở dữ liệu để kết nối
$db = mysql_select_db(“dbname”, $conn);
l Thực hiện câu SQL
$result = mysql_query(“SQL command”, $conn);
l Lấy 1 dòng kết quả
$row = mysql_fetch_array($result);
l Đọc giá trị một trường của mẫu tin
$val = $row[“col-name”];
1/5/2011 70 Bộ môn Mạng máy tính & Truyền thông
PHP NốI KếT ĐếN MYSQL
71
n PHP nối kết đến MySQL
l Giải phóng tài nguyên của kết quả
mysql_free_result($result);
l Đóng kết nối
mysql_close($conn);
1/5/2011 71 Bộ môn Mạng máy tính & Truyền thông
PHP NốI KếT ĐếN MYSQL
72
<?php
$conn = mysql_connect("127.0.0.1", "nghi", "nghi")
or die("Could not connect: " . mysql_error());
$db = mysql_select_db("mydb",$conn)
or die("Could not select database");
$result = mysql_query("SELECT * FROM Person",$conn);
echo "";
echo " LASTNAME FIRSTNAME
ADDRESS AGE ";
1/5/2011 72 Bộ môn Mạng máy tính & Truyền thông
PHP NốI KếT ĐếN MYSQL
73
while ($row = mysql_fetch_array($result)) {
echo "";
echo " " . $row["lastname"]. " ";
echo " " . $row["firstname"]. " ";
echo " " . $row["address"] . " ";
echo " " . $row["age"] . " ";
echo "";
}
echo "";
?>
1/5/2011 73 Bộ môn Mạng máy tính & Truyền thông
PHP NốI KếT ĐếN MYSQL VÍ Dụ : PHP NốI KếT ĐếN MYSQL
741/5/2011 74 Bộ môn Mạng máy tính & Truyền thông
Cung cấp:
Thông tin về PHP như: phiên bản mới, các đặc trưng mới
được hỗ trợ, các bản tin về PHP
Download PHP
Download các thư viện lập trình ứng dụng
Download được các công cụ hỗ trợ, các trình tiện ích
Tài liệu về PHP
751/5/2011 75 Bộ môn Mạng máy tính & Truyền thông
TÀI LIệU THAM KHảO
Sách:
[David Sklar & Adam Trachtenberg, 2002] David Sklar &
Adam Trachtenberg, “PHP Cookbook”, O'Reilly, 2002.
[Simon Stobart & Mike Vassileiou, 2004] Simon Stobart &
Mike Vassileiou, “Php and Mysql Manual: Simple, Yet
Powerful Web Programming”, Springer Professional
Computing, 2004.
[Hugh E Williams & David Lane, 2002] Hugh E Williams &
David Lane, “Web Database Applications with PHP &
MySQL”, O'Reilly, 2002.
761/5/2011 76 Bộ môn Mạng máy tính & Truyền thông
TÀI LIệU THAM KHảO
Sách:
[Luke Welling & Laura Thomson, 2001] Luke Welling &
Laura Thomson, “PHP and MySQL Web Development”,
SAMS, 2001.
[Rasmus Lerdorf & Kevin Tatroe, 2002] Rasmus Lerdorf &
Kevin Tatroe, “Programming PHP”, O'Reilly, 2002.
[James Fuller et al., 2003] James Fuller, Ken Egervari, Harry
Fuecks, Bryan Waters, Jon Stephens and Daniel Solin,
“Professional PHP Web Services”, Wrox Press, 2003.
771/5/2011 77 Bộ môn Mạng máy tính & Truyền thông
TÀI LIệU THAM KHảO
File đính kèm:
Bài giảng Lập trình Web - Chương 6_Lập trình Web với PHP.pdf

