24
Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION

Web201 slide 6

Embed Size (px)

DESCRIPTION

Lập Trình PHP Cơ Bản - Giáo Trình FPT

Citation preview

Page 1: Web201   slide 6

Bài 6:LẬP TRÌNH PHP (PHẦN 4)

LÀM VIỆC VỚI COOKIE VÀ SESSION

Page 2: Web201   slide 6

Lấy dữ liệu từ formNhận dữ liệu từ textbox, password box, hidden fieldLấy dữ liệu từ radio buttonLấy dữ liệu từ textboxLấy dữ liệu từ mảng checkboxLấy dữ liệu từ dropdown listLấy dữ liệu từ listLấy dữ liệu từ text area

Hiển thị dữ liệu trên trang webĐịnh dạng các ký tự đặc biệtĐịnh dạng ngắt dòngHiển thị dữ liệu với câu lệnh echo và print

Hệ thống bài cũ

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 2

Page 3: Web201   slide 6

Nội dung bài học

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 3

1. Làm việc với cookie

2. Làm việc với session

Page 4: Web201   slide 6

Trong phần này có các nội dung:1.1. Giới thiệu về cookie1.2. Thiết lập và truy xuất cookie1.3. Bật và tắt cookie

1. Làm việc với cookie

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 4

Page 5: Web201   slide 6

Cookie là cặp tên/giá trị được lưu trên trình duyệt máy kháchVí dụ một cookie:

Những cách dùng thường gặp của cookie:Cho phép người dùng không cần đăng nhập và điền form đăng kýThu thập những dữ liệu như tên người dùng, mật khẩu, địa chỉ hoặcthông tin thẻ tín dụngTùy chỉnh trang hiển thị các thông tin như dự báo thời tiết, tỷ số cáctrận đấu thể thao và giá cổ phiếuQuảng cáo trúng đích: Các banner quảng cáo nhắm vào khách hàngmục tiêu quan tâm đến quảng cáo

1. Giới thiệu cookie

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 5

Page 6: Web201   slide 6

Trên máy chủ, ứng dụng web tạo cookie và gửi nó tới trình duyệt.Trên máy khách, trình duyệt lưu cookie và gửi nó trở lại máy chủmỗi khi truy cập trang từ máy chủ đó

Mặc định, cookie chỉ có hiệu lực cho đến khi người dùng đóng trìnhduyệt. Tuy nhiên, có thể thiết lập để cookie tồn tại trong trình duyệtcủa người dùng với thời gian lên đến ba năm

Mỗi cookie được giới hạn 4Kb dung lượng

Giới thiệu cookie

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 6

Page 7: Web201   slide 6

Sử dụng hàm setcookie với cú pháp:

Các tham số cho hàm setcookie:

1.2. Thiết lập và truy xuất cookie

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 7

Page 8: Web201   slide 6

Ví dụ:

Thiết lập và truy xuất cookie

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 8

Page 9: Web201   slide 6

Để kiểm thử hoạt động của ứng dụng trong trường hợp người dùngtắt cookie, bạn có thể tắt cookie trên trình duyệt của mìnhĐể kiểm thử ứng dụng trong điều kiện bình thường, bật cookie trêntrình duyệtHướng dẫn bật và tắt cookie trong trình duyệt Firefox 3.6:

Mở menu Tools và chọn lệnh Options.Nhấn vào tab Privacy.Sử dụng check box “Accept cookies from sites” để bật hoặc tắt cookie.

Hướng dẫn bật và tắt cookie trong Internet Explorer 8:Mở menu Tools và chọn lệnh Options.Nhấn vào tab Privacy.Sử dụng thanh trượt điều khiển để bật hoặc tắt cookie. Để tắt cookie,thiết lập cấp bảo mật là “Block All Cookies”. Để bật cookie, nhấn vàonút Default nhằm quay về thiết lập bảo mật mặc định.

1.3. Bật và tắt cookie

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 9

Page 10: Web201   slide 6

Trong phần này có các nội dung:2.1. Nguyên nhân khó sử dụng session với HTTP2.2. Cách thức hoạt động của session trong PHP2.3. Bắt đầu một session2.4. Gán và lấy giá trị của biến session2.5. Kết thúc một session2.6. Quản lý session

2. Làm việc với session

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 10

Page 11: Web201   slide 6

Session (phiên): sau khi trình duyệt gửi yêu cầu thì HTTP ngắt kếtnối tới máy chủ. Để duy trì trạng thái, ứng dụng web phải thực hiệnsessionMặc định, PHP sử dụng cookie để lưu session ID trên mỗi trìnhduyệt. Khi đó, trình duyệt chuyển cookie tới máy chủ với mỗi yêucầuĐể theo dõi session khi cookie bị tắt, có thể sử dụng cách mã hóaURL để lưu session ID trong URL cho mỗi trang của ứng dụng

2.1. Nguyên nhânkhó sử dụng session với HTTP

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 11

Page 12: Web201   slide 6

Nguyên nhânkhó sử dụng session với HTTP

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 12

Page 13: Web201   slide 6

Bước 1: trình duyệt trên máy khách gửi yêu cầu xem trang PHP tớimáy chủ webBước 2: PHP kiểm tra liệu yêu cầu đã bao gồm session ID (địnhdanh phiên) chưa. Nếu chưa, PHP sẽ tạo một session mới trên máychủ và gán cho nó một session ID duy nhất. Lúc này, ứng dụng cóthể lưu dữ liệu vào sessionBước 3: session ID sẽ được gửi trả lại trình duyệt như cookie trongphản hồiKhi trình duyệt gửi các yêu cầu sau đó, cookie session ID được gộptrong yêu cầu. PHP cũng kiểm tra liệu yêu cầu đã bao gồm sessionID chưa. Vì lần này session ID đã có, nên PHP sử dụng session IDđể truy cập, điều chỉnh hoặc thêm dữ liệu khi cần

2.2. Cách thức hoạt độngcủa session trong PHP

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 13

Page 14: Web201   slide 6

Cách thức hoạt độngcủa session trong PHP

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 14

Page 15: Web201   slide 6

Session bắt đầu khi trình duyệt gửi yêu cầu xem trang đầu tiên vớihàm session_start

Mặc định, session làm việc sử dụng cookie theo phiên để liên kếttrình duyệt với dữ liệu. Tuy nhiên, có thể sử dụng hàmsession_set_cookie_params để tùy chỉnh cookie của phiênHàm session_set_cookie_params phải được gọi trước hàmsession_startCú pháp hàm session_set_cookie_params:

2.3. Bắt đầu một session

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 15

Page 16: Web201   slide 6

Tham số cho hàm session_set_cookie_params:

Ví dụ:

Bắt đầu một session

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 16

Page 17: Web201   slide 6

Khi khởi tạo phiên, sử dụng biến toàn cục tự động $_SESSION đểthiết lập và lấy dữ liệu của người dùng cho phiên. Biến này là mộtmảng liên kếtSử dụng hàm isset để kiểm tra sự tồn tại của một phần tử trongmảng $_SESSIONXóa nội dung mảng $_SESSION: thiết lập thành mảng rỗngHướng dẫn thiết lập và lấy biến vô hướng:

2.4. Gán và lấy giá trịcủa biến session

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 17

Page 18: Web201   slide 6

Hướng dẫn thiết lập và lấy mảng:

Hướng dẫn xóa biến khỏi phiên:

Gán và lấy giá trịcủa biến session

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 18

Page 19: Web201   slide 6

Sử dụng hàm session_destroy:

Session kết thúc khi:Người dùng tắt trình duyệt, một khoảng thời gian nhất định trôi qua màkhông có yêu cầu nàoĐoạn mã gọi hàm session_destroy

Xóa tất cả dữ liệu liên quan đến phiên làm việc khỏi máy khách vàmáy chủ:

Xóa dữ liệu phiên khỏi bộ nhớGọi hàm session_destroySử dụng hàm setcookie

2.5. Kết thúc một session

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 19

Page 20: Web201   slide 6

Hàm session_name lấy tên của cookie theo phiên. Mặc định, cookietheo phiên có tên là “PHPSESSID”Hàm session_get_cookie_params lấy mảng liên kết chứa tất cả cáctham số của cookie theo phiênVí dụ:

Kết thúc một session

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 20

Page 21: Web201   slide 6

Sử dụng các hàm quản lý:

Nếu chuyển hướng trình duyệt bằng cách dùng hàm header theosau là hàm exit, không phải lúc nào PHP cũng lưu dữ liệu vềsession. Vì vậy, cần gọi hàm session_write_close để buộc PHP lưudữ liệu về session

2.6. Quản lý session

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 21

Page 22: Web201   slide 6

Ví dụ:

Quản lý session

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 22

Page 23: Web201   slide 6

Cookie là một cặp tên/giá trị được lưu trong trình duyệt. Cookietheo phiên sẽ hết hạn khi người dùng đóng trình duyệtMột số trình duyệt không hỗ trợ cookieVì HTTP là giao thức phi trạng thái, nên hầu hết ứng dụng web cầnsession để kiểm soát phiên làm việc của mỗi người dùngMặc định, PHP thực hiện theo dõi phiên bằng việc lưu cookie trêntrình duyệt của mỗi người với một session ID duy nhất. Sau đó,session ID này có thể dược dùng để truy cập dữ liệu dành cho phiênđóĐể thiết lập hoặc truy xuất dữ liệu cho một phiên thì sử dụng biếntoàn cục tự động $_SESSION. Biến này là một mảng liên kếtPHP cung cấp các hàm để khởi tạo, kết thúc và quản lý session

Tổng kết bài học

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 23

Page 24: Web201   slide 6

XIN CẢM ƠN!

Bài 6: LẬP TRÌNH PHP (PHẦN 4) LÀM VIỆC VỚI COOKIE VÀ SESSION 24