Đại Học Sư Phạm Tp. Hồ Chí Minh Đại Học Sư Phạm Tp. Hồ Chí Minh LẬP TRÌNH WEB PHP LẬP TRÌNH WEB PHP Chương 03: PHP nâng cao
Đại Học Sư Phạm Tp. Hồ Chí MinhĐại Học Sư Phạm Tp. Hồ Chí Minh
LẬP TRÌNH WEB PHP LẬP TRÌNH WEB PHP
Chương 03: PHP nâng cao
1. Truyền, Nhận dữ liệu•• TrangTrang web web nh ậpnhập dữdữ liệuliệu
– Cách 1 : truyền dữ liệu trực tiếp qua url• Sử dụng liên kết để sửa lại url• Thông qua đối tượng location
– Cách 2 : truyền dữ liệu thông qua form• Sử dụng đối tượng <form >
3
• Sử dụng đối tượng <form >• Nhập liệu thông qua các formfield• Thực hiện việc truyền dữ liệu thông qua submit• Hai phương thức gởi dữ liệu GET / POST
•• TrangTrang web web nh ậnnhận dữdữ liệuliệu (dùng các biến toàn cục)– Cách 1 : $_GET$_GET[“biếnbiến”]– Cách 2 : $_POST$_POST[“biếnbiến”]– Cách 3 : $_REQUEST$_REQUEST[“biếnbiến”]
2. Khái niệm cookie• Là những mẩu thông tin nh ỏ được lưu trên máy
của người sử dụng th ường dùng để lưu trữ thông tin v ề người sử dụng.
• Khả năng tạo cookie ph ụ thuộc vào trình duy ệt và sự cho phép c ủa người sử dụng.
4
và sự cho phép c ủa người sử dụng.• Trong IE, để xem các cookies đã được tạo thì
vào: Tools/Internet Options/Setting…/View Files
2. Thiết lập cookie• setcookie (tên, giá_tr ị, t)
– Tên: Tên cookie được tạo ra
– giá_tr ị: giá tr ị được đặt cho cookie
– t: Số: thời gian h ết hạn của cookie
• Chú ý:
5
• Chú ý:– Lệnh setcookie phải được gọi trước khi g ửi bất cứ
nội dung gì v ề client (Tr ước các th ẻ HTML, trước echo, print)
– Để thi ết lập thời gian h ết hạn của cookie th ường sử dụng hàmtime ()+kho ảng th ời gian (tính b ằng giây)
Đọc cookie
• Sử dụng mảng $_COOKIEvới ch ỉ các số là tên các cookie.
• Chú ý:– Ta không th ể đọc cookie v ừa được thi ết lập
ngay trong trong cùng 1 trang v ừa thiết lập
6
ngay trong trong cùng 1 trang v ừa thiết lập gọi setcookie .
3. Sử dụng SESSION
• Để sử dụng session, c ần khai báo:session_start(); ngay đầu trang PHP.
• Khai báo bi ến session:$_SESSION[‘tên_bi ến’] = tr ị;
7
• Hủy bỏ một biến session:unset($_SESSION[‘tên_bi ến’]);
• Hủy toàn b ộ các bi ến session:session_destroy();
3. SESSION<?php// page1.phpsession_start ();echo 'Welcome to page #1' ;$_SESSION[ 'favcolor' ] = 'green' ;$_SESSION[ 'animal' ] = 'cat' ;$_SESSION[ 'time' ] = time ();// Works if session cookie was acceptedecho '<br /><a href="page2.php">page 2</a>' ;
10
echo '<br /><a href="page2.php">page 2</a>' ;// Or maybe pass along the session id, if neededecho '<br /><a href="page2.php?' . SID . '">page 2</a>' ;?>
<?php// page2.phpsession_start ();echo 'Welcome to page #2<br />' ;echo $_SESSION[ 'favcolor' ]; // greenecho $_SESSION[ 'animal' ]; // catecho date ( 'Y m d H:i:s' , $_SESSION[ 'time' ]);// You may want to use SID here, like we did in pag e1.phpecho '<br /><a href="page1.php">page 1</a>' ;?>
4. Upload tập tin lên server
• Gửi các file lên server (upload) là một chức năngkhông thể thiếu đối với các ứng dụng Web-based
• Để form có thể upload file, ta phải xác định thuộctính enctypeenctype của form có giá trị "multipart/formmultipart/form --
11
tính enctypeenctype của form có giá trị "multipart/formmultipart/form --datadata ”
• Với PHP, bạn có thể xác định kích thước lớn nhấtcủa file upload bằng cách đặt thêm 1 hidden fieldcó tên MAX_FILE_SIZE trước control file
4. Upload tập tin lên server
Element Contains Example
$ FILES['$ FILES['$ FILES['$ FILES['taptintaptintaptintaptin']['name']']['name']']['name']']['name'] Name of uploaded file test.giftest.giftest.giftest.gif
$_FILES['$_FILES['$_FILES['$_FILES['taptintaptintaptintaptin']['tmp_name']']['tmp_name']']['tmp_name']']['tmp_name'] Path to temporary file /tmp/phprDfZvN/tmp/phprDfZvN/tmp/phprDfZvN/tmp/phprDfZvN
Mảng $_FILEMảng $_FILE
12
$_FILES['$_FILES['$_FILES['$_FILES['taptintaptintaptintaptin']['tmp_name']']['tmp_name']']['tmp_name']']['tmp_name'] Path to temporary file /tmp/phprDfZvN/tmp/phprDfZvN/tmp/phprDfZvN/tmp/phprDfZvN
$_FILES['$_FILES['$_FILES['$_FILES['taptintaptintaptintaptin']['size']']['size']']['size']']['size'] Size (in bytes) of uploaded file 6835
$_FILES['$_FILES['$_FILES['$_FILES['taptintaptintaptintaptin']['error']']['error']']['error']']['error'] An error code corresponding to a PHP constant
UPLOAD_ERR_FOUPLOAD_ERR_FOUPLOAD_ERR_FOUPLOAD_ERR_FORM_SIZERM_SIZERM_SIZERM_SIZE
$_FILES['$_FILES['$_FILES['$_FILES['taptintaptintaptintaptin']['type']']['type']']['type']']['type'] MIME type of uploaded file (where given by client)
image/gifimage/gifimage/gifimage/gif
Constant Name Value ExplanationUPLOAD_ERR_OK 0 No problem
4. Upload tập tin lên server
Mã lỗiMã lỗi
13
UPLOAD_ERR_INI_SIZE 1 File size exceeds php.ini limit set in upload_max_filesize
UPLOAD_ERR_FORM_SIZE 2 File size exceeds limit set in hidden element named MAX_FILE_SIZE
UPLOAD_ERR_PARTIAL 3 File only partially uploaded
UPLOAD_ERR_NO_FILE 4 File was not uploaded
6. Date
18
<?php// Assuming today is: March 10th, 2001, 5:16:18 pm$today = date ( "F j, Y, g:i a" ); // March 10, 2001, 5:16 pm$today = date ( "m.d.y" ); // 03.10.01$today = date ( "j, n, Y" ); // 10, 3, 2001$today = date ( "Ymd" ); // 20010310$today = date ( 'h-i-s, j-m-y, it is w Day z ' );
// 05-16-17, 10-03-01, 1631 1618 6 Fripm01$today = date ( '\i\t \i\s \t\h\e jS \d\a\y.' ); // It is the 10th day.$today = date ( "D M j G:i:s T Y" ); // Sat Mar 10 15:16:08 MST 2001$today = date ( 'H:m:s \m \i\s\ \m\o\n\t\h' ); // 17:03:17 m is month$today = date ( "H:i:s" ); // 17:16:17?>