Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
501,49 KB
Nội dung
COOKIES & SESSION Nguyễn Thị Thùy Liên Khoa CNTT-ĐHSP Hà Nội lienntt@hnue.edu.vn GIỚI THIỆU • Thông thường, khi trao đổi dữ liệu qua mạng, các máy tính thường tìm cách giữ kết nối để có thể tiếp tục tái sử dụng. • Giao thức HTTP không hỗ trợ việc giữ kết nối thông suốt trong một phiên làm việc: Khi nhận được yêu cầu từ trình duyệt, Web server xử lý kết quả, trả kết quả về cho trình duyệt và ngắt luôn kết nối, không thèm quan tâm đến việc dữ liệu sau đó sẽ được xử lý ra sao. Với cách hoạt động này, hệ thống sẽ không thể nhận biết được ai đang làm việc, cũng như những thông tin cần xử lý trong suốt phiên làm việc. • Cookie và Session được sinh ra để khắc phục vấn đề này COOKIE • Cookie được lưu dưới máy khách với một lượng thông tin xác định. Website sử dụng cookie để lưu trữ các thông tin người dùng • Cookie được lưu trữ phía client • Thông tin lưu trữ được trao đổi thông qua web browser và web server • Có 2 loại cookie Persistent – Thông tin được lưu trữ trong Web browser trong một khoảng thời gian xác định Non-persistent – Thông tin mất ngay sau khi đóng website ỨNG DỤNG COOKIE • Đếm số lần người dùng truy cập website • Số người truy cập mới • Số người truy cập thông thường • Tần số truy cập website • Lưu trữ thời gian mà người dùng truy cập website lần cuối • Lưu trữ các thông tin cá nhân cho việc thiết lập trang web của người dùng: ghi nhớ mật khẩu, … LÀM VIỆC VỚI COOKIE • Web servers và Web browsers gửi các cookie khác nhau trong HTTP headers • Web server gửi cookie trong một trường Set- Cookie header • Set-Cookie là một phần của gói thông tin HTTP trả lại THIẾT LẬP COOKIE • Là việc gửi thông tin cookie cho client • PHP có hai hàm để thiết lập cookie: setcookie(): gửi cookie với mã hóa urlencoding setrawcookie(): gửi thông tin không mã hóa urlencoding 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ú ý: 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) LẤY GIÁ TRỊ COOKIE • PHP cung cấp 3 cách để lấy thông tin cookie: Truyền một biến như tên cookie (chỉ làm việc khi ‘register_globals’ được tắt trong file cấu hình php) Sử dụng $_COOKIE[] : đơn giản và bảo mật hơn mảng HTTP_COOKIE_VARS Sử dụng $HTTP_COOKIE_VARS[] : • 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 gọi setcookie. XÓA COOKIE • Tương tự như việc thiết lập cookie • Có hai cách để xóa cookie: Thiết lập lại thời gian hết hạn của cookie thành 1 thời điểm trong quá khứ setcookie ("$cookie_name", "", time()-8000); Thiết lập lại giá trị của cookie thông qua tên của cookie setcookie($cookie_name); NHƯỢC ĐIỂM • Cookie không bảo mật và độ tin cậy không cao • Độ dài thông tin lưu trữ trong cookie là hữu hạn • Tối đa một domain lưu trữ được 20 cookie • Một browser lưu trữ tối đa khoảng 300 cookie • Càng nhiều cookie được lưu trữ sẽ càng làm máy tính chậm hơn. • Người dùng có thể khóa việc lưu cookie vào ổ cứng • Dễ xảy ra nhầm lẫn và ghi đè khi có nhiều người dùng sử dụng cùng nhau [...]... dựa trên mã session Tên file session có dạng: sess_ ĐĂNG KÝ SESSION • Các biến session cần phải được đăng ký với thư viện session của hệ thống • Các thư viện session có thể : Tạo ra các biến session Đồng bộ hóa dữ liệu Lưu trữ dữ liệu session • Để đăng ký session, người dùng có thể : Dùng mảng $ _SESSION[ ] Dùng mảng HTTP _SESSION_ VARS[] Dùng hàm session_ register()... tất cả các trang web của website COOKIE&SESSION Cookies Sessions Lưu trữ thông tin phía client Lưu trữ thông tin phía server Thông tin có thể vẫn tồn tại khi kết thúc web browser Thông tin sẽ bị xóa sau khi kết thúc web browser Người dùng có thể khóa cookie Người dùng không thể khóa session Có kích thước giới hạn Kích thước không giới hạn LÀM VIỆC VỚI SESSION • • • Session xuất hiện khi một người... cập một website Web server gán một mã session cho mỗi người dùng khác nhau Các script lưu trữ và truy cập thông tin thông qua session ID KHỞI TẠO SESSION • Session khởi tạo khi một người dùng đăng nhập vào website • Hàm session_ start() cho phép khởi tạo một session Phải được đặt trên đầu của trang web hoặc trước tất cả các mã PHP Hàm luôn trả về true • Một file session tương ứng lưu trữ thông tin... người dùng có thể : Dùng mảng $ _SESSION[ ] Dùng mảng HTTP _SESSION_ VARS[] Dùng hàm session_ register() : hiện nay không được dùng KẾT THÚC SESSION • Để kết thúc session, dùng hàm session_ destroy() • Hàm sẽ xóa tất cả file session tương ứng trên hệ thống • $PHPSESID cookie sẽ không bị xóa từ Web browser .. .SESSION • Thông tin người dùng lưu trữ cho một website cụ thể • Thông tin được lưu trữ trong suốt khoảng thời gian sử dụng website • Cho phép phân biệt người dùng khác nhau truy cập website TRUYỀN DỮ LIỆU TRUYỀN THỐNG • Các trang web sử dụng hai phương thức truyền thống để truyền dữ liệu từ một script đến server hoặc ngược lại GET POST TRUYỀN DỮ LIỆU VỚI COOKIE • Cho phép người