giao trinh php nang cao

19
Đại Hc Sư Phm Tp. HChí Minh Đại Hc Sư Phm Tp. HChí Minh LP TRÌNH WEB PHP LP TRÌNH WEB PHP Chương 03: PHP nâng cao

Upload: hoangpcit

Post on 15-Dec-2015

39 views

Category:

Documents


0 download

DESCRIPTION

Giao Trinh Php Nang Cao

TRANSCRIPT

Đạ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

Nội dung

1. Truyền, nhận dữ liệu2. Cookies3. Session4. Upload File

2

4. Upload File5. Image

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();

Ví dụ: Ki ểm tra đăng nhập dùng SessionKi ểm tra đăng nhập dùng Session

8

Ví dụ: Ki ểm tra đăng nhập dùng Ki ểm tra đăng nhập dùng SessionSession

9

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

4. Upload tập tin lên server

14

15

4. Upload t ập tin lên server4. Upload t ập tin lên server

5. Vẽ image

16

Vẽ ảnh từ văn bảnVẽ ảnh từ văn bản

6. Date

17

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?>

Câu hỏi và thảo luận

1919