Top Banner
Đạ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
19

Giao Trinh Php Nang Cao

Dec 15, 2015

Download

Documents

hoangpcit

Giao Trinh Php Nang Cao
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Giao Trinh Php Nang 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

Page 2: Giao Trinh Php Nang Cao

Nội dung

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

2

4. Upload File5. Image

Page 3: Giao Trinh Php Nang 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”]

Page 4: Giao Trinh Php Nang Cao

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

Page 5: Giao Trinh Php Nang Cao

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)

Page 6: Giao Trinh Php Nang Cao

Đọ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 .

Page 7: Giao Trinh Php Nang Cao

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

Page 8: Giao Trinh Php Nang Cao

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

8

Page 9: Giao Trinh Php Nang Cao

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

9

Page 10: Giao Trinh Php Nang Cao

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

Page 11: Giao Trinh Php Nang Cao

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

Page 12: Giao Trinh Php Nang Cao

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

Page 13: Giao Trinh Php Nang Cao

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

Page 14: Giao Trinh Php Nang Cao

4. Upload tập tin lên server

14

Page 15: Giao Trinh Php Nang Cao

15

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

Page 16: Giao Trinh Php Nang Cao

5. Vẽ image

16

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

Page 17: Giao Trinh Php Nang Cao

6. Date

17

Page 18: Giao Trinh Php Nang Cao

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

Page 19: Giao Trinh Php Nang Cao

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

1919