giao trinh php nang cao
DESCRIPTION
Giao Trinh Php Nang CaoTRANSCRIPT
Đạ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?>