bài 6 lập trình php (phần 4) làm việc với cookie và session - giáo trình fpt

23
Bài 6 Lập trình PHP(phần 4) Làm việc với cookie và session

Upload: hoc-lap-trinh-web

Post on 29-Jun-2015

2.767 views

Category:

Documents


26 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

Bài 6Lập trình PHP(phần 4)

Làm việc với cookie và session

Page 2: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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

Nhắc lại bài cũ

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

Bài 6: Lập trình PHP (phần 4) 2

Page 3: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

Nội dung bài học

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

Bài 6: Lập trình PHP (phần 4) 3

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

Page 4: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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) 4

Page 5: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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ý thuthập những dữ liệu như tên người dùng, mật khẩu, địa chỉ hoặc thôngtin 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ácmôn thể thao và giá cổ phiếuTập trung vào quảng cáo như các banner quảng cáo nhắm vào lợi íchcủa khách hàng

1. Giới thiệu cookie

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ý thuthập những dữ liệu như tên người dùng, mật khẩu, địa chỉ hoặc thôngtin 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ácmôn thể thao và giá cổ phiếuTập trung vào quảng cáo như các banner quảng cáo nhắm vào lợi íchcủa khách hàng

Bài 6: Lập trình PHP (phần 4) 5

Page 6: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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

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

Bài 6: Lập trình PHP (phần 4) 6

Page 7: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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

Page 8: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

Ví dụ:

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

Bài 6: Lập trình PHP (phần 4) 8

Page 9: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

Để 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 để trả lại thiết lập bảo mật mặc định.

1.3. Bật và tắt cookie

Để 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 để trả lại thiết lập bảo mật mặc định.

Bài 6: Lập trình PHP (phần 4) 9

Page 10: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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

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

Bài 6: Lập trình PHP (phần 4) 10

Page 11: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

Session (phiên): khi trình duyệt gửi yêu cầu thì HTTP ngắt kết tớimá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

Session (phiên): khi trình duyệt gửi yêu cầu thì HTTP ngắt kết tớimá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

Bài 6: Lập trình PHP (phần 4) 11

Page 12: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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

Bài 6: Lập trình PHP (phần 4) 12

Page 13: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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 PHP chưa. Vì lần này có, nên PHP sử dụng session ID để truycậ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ướ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 PHP chưa. Vì lần này có, nên PHP sử dụng session ID để truycập, điều chỉnh hoặc thêm dữ liệu khi cần

Bài 6: Lập trình PHP (phần 4) 13

Page 14: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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

Bài 6: Lập trình PHP (phần 4) 14

Page 15: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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

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:

Bài 6: Lập trình PHP (phần 4) 15

Page 16: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

Tham số cho hàm session_set_cookie_params:

Ví dụ:

Bắt đầu một session

Tham số cho hàm session_set_cookie_params:

Ví dụ:

Bài 6: Lập trình PHP (phần 4) 16

Page 17: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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

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:

Bài 6: Lập trình PHP (phần 4) 17

Page 18: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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

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:

Bài 6: Lập trình PHP (phần 4) 18

Page 19: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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

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

Bài 6: Lập trình PHP (phần 4) 19

Page 20: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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

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ụ:

Bài 6: Lập trình PHP (phần 4) 20

Page 21: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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=> gọi hàm session_write_close để buộc PHP lưu dữ liệu về session

2.6. Quản lý session

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=> gọi hàm session_write_close để buộc PHP lưu dữ liệu về session

Bài 6: Lập trình PHP (phần 4) 21

Page 22: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

Ví dụ:

Quản lý session

Bài 6: Lập trình PHP (phần 4) 22

Page 23: Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT

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

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

Bài 6: Lập trình PHP (phần 4) 23