1. Đ 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 PHPLẬP TRÌNH WEB PHP
Chương 03: PHP nâng cao
2. Nội dung
1. Truy n, nh n d li u
2. Cookies
3. Session
4. Upload File
2
4. Upload File
5. Image
3. 1. Truyền, Nhận dữ liệu
•• TrangTrang webweb nh pnh p dd 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 webweb nh nnh n dd 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”]
4. 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
5. 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àm
time()+kho ng th i gian (tính b ng giây)
6. Đọc cookie
• S d ng m ng $_COOKIE v 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.
7. 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();
8. Ví dụ: Kiểm tra đăng nhập dùng SessionKiểm tra đăng nhập dùng Session
8
9. Ví dụ: Kiểm tra đăng nhập dùngKiểm tra đăng nhập dùng
SessionSession
9
10. 3. SESSION
<?php
// page1.php
session_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
// Works if session cookie was accepted
echo '<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 needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>
<?php
// page2.php
session_start();
echo 'Welcome to page #2<br />';
echo $_SESSION['favcolor']; // green
echo $_SESSION['animal']; // cat
echo date('Y m d H:i:s', $_SESSION['time']);
// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>
11. 4. Upload tập tin lên server
• G i các file lên server (upload) là m t ch c năng
khô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 c
tí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 t
c a file upload b ng cách đ t thêm 1 hidden field
có tên MAX_FILE_SIZE trư c control file
12. 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_FO
RM_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
13. Constant Name Value Explanation
UPLOAD_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
18. 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('it is the jS day.'); // 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 is month'); // 17:03:17 m is month
$today = date("H:i:s"); // 17:16:17
?>