Sử dụng đối tượng Session và Cookie

Một phần của tài liệu Tìm hiểu MYSQL và PHP, hiện thực ứng dụng quản lý xuất nhập tân dược cho công ty xuất nhập khẩu Y tế thành phố Hồ Chí Minh (Trang 60 - 62)

M Tháng trong năm, với 3 ký tự viết tắt Sắp xếp từ ‚Jan‛ đến ‚Dec‛.

e.Sử dụng đối tượng Session và Cookie

Đối tượng Cookie: Cookie là phần nhỏ thông tin mà kịch bản có thể lưu trên máy client. Khi trình duyệt kết nối tới URL, trước hết nó sẽ tìm các cookie được lưu cục bộ. Nếu bất kỳ cookie nào có liên quan sẽ được kết nối tới và chúng sẽ được chuyển lại cho server.

Tạo cookie từ PHP: Ta có thể tạo cookie bằng cách dùng hàm setcookie(). Dạng của nó như sau:

Int setcookie(string cookie_name[ , string value [, int expire [ , string

path [ , string domain [ , int secure ]]]]])

Có thể xóa cookie bằng cách gọi hàm setcookie() một lần nữa vớiù cùng tên cookie nhưng không cần giá trị. Nếu khi ta tạo cookie có dùng tham số thì khi xóa phải gởi thêm các tham số ấy nếu không bạn sẽ không xoá được cookie. Ta có thể tạo cookie thông qua hàm header() với cú pháp như trên.

Tuy nhiên lời khuyên khi dùng hearder cookie là cookie hearder phải được gởi trước bất kỳ headrer nào khác nếu không nó sẽ không làm việc. Các ví dụ :

setcookie ("TestCookie", "Test Value");

setcookie ("TestCookie", $value,time()+3600); setcookie ("TestCookie", $value,time()+3600,

Sử dụng cookie với session: Cookie có một vài vấn đề như: một số trình duyệt không chờ cookie, và một số người sử dụng không cho phép cookie trong trình duyệt của họ. Đây là một trong những nguyên nhân mà session trong PHP dùng phương pháp đôi cookie/URL.

Ta có thể dùng hàm session_get_cookie_params() để xem nội dung của cookie tạo bởi điều khiển session. Nó sẽ trả về một mảng kết hợp chứa các phần tử lifetime, path, domain.

session_get_cookie_params($lifetime, $path, $domain);

Thực thi session: Để thực thi session cần thực hiện 4 bước: khởi tạo session, đăng ký biến session, sử dụng biến session, đăng ký lại biến và huỷ session.

Khởi tạo session: Trước khi sử dụng chức năng của session ta cần bắt đầu session. Có 3 cách để khởi tạo một session. Thứ nhất là cách đơn giản nhất: bắt đầu kịch bản ta gọi hàm session_start(). Hàm này kiểm tra xem có mã số session (session ID) hiện hành chưa. Nếu không nó sẽ tạo session ID. Nếu có nó sẽ nạp biến session đã đăng ký để chúng ta có thể sử dụng được. Thứ hai session sẽ được bắt đầu khi chúng ta đăng ký biến session. Cách thứ ba là ta có

thể bắt đầu session bằng cách thiết lập PHP để tự động khởi tạo session khi có ai đó vào truy cập.

Đăng ký biến session: Để một biến được kiểm tra từ kịch bản này đến kịch bản khác, ta cần đăng ký bằng cách gọi hàm session_register(). Ta nên đưa vào hàm một chuỗi chứa tên của biến. Lưu ý chuỗi này không chứa ký tự $. Hàm sẽ ghi tên biến và kiểm tra giá trị của nó. Biến sẽ được kiểm tra cho đến khi session kết thúc hoặc ta đăng ký lại.

Sử dụng biến session: Để đem một biến session vào phạm vi sử dụng trước hết ta phải bắt đầu session. Một biến không thể không quan tâm đến cách POST hay GET dữ liệu, đây là đặc điểm bảo mật tốt. Mặc khác ta cũng phải cẩn thận khi kiểm tra xem biến session đã được tạo hay chưa. Nhớ rằng các biến có thể được tạo bởi người sử dụng thông qua GET hoặc POST. Và cũng

cần kiểm tra xem biến session đã được đăng ký bằng cách gọi hàm

session_is_registered() hay chưa. Hàm sẽ trả về giá trị true hoặc false.

Đăng ký lại biến và huỷ session: Khi đã hoàn tất với biến session, ta có thể đăng ký lại bằng cách dùng hàm session_unregister(). Giống như hàm session_register(), ta phải đưa vào hàm một chuỗi chứa tên của biến và chuỗi này không chứa ký tự $. Hàm session_unregister() này khác hàm session_register() ở chỗ là chỉ đăng ký cho một biến session đơn tại một thời điểm. Tuy nhiên có thể dùng hàm session_unset() để đăng ký lại tất cả các biến hiện hành. Sau khi đã làm việc hoàn tất với session ta nên huỷ session ấy đi bằng cách gọi hàm session_destroy(), hàm này sẽ xoá cả mã số session.

Cấu hình điều khiển session: Sau đây là bảng mô tả các tùy chọn cấu hình cho session.

Tên Mặc định Hiệu ứng

session.auto_start 0(disable) Tự động bắt đầu session.

Session.cache_expire 180 Khởi tạo thời gian sống cho trang session trong vài phút.

Session.cookie_domain None Miền để khởi tạo session cookie.

Session.cookie_lifetime 0 Thời gian session ID cookie lưu lại trên máy người sử dụng trong bao lâu. Mặc nhiên là 0, và sẽ còn lại cho đến khi trình duyệt bị đóng.

Session.cookie_path / Đường dẫn đến session cookie.

Session.name PHPSESSID Tên của session được sử dụng làm tên cookie trên máy người sử dụng.

Session.save_handler Files Định nghĩa nơi dữ liệu session được lưu trữ. Ta có thể chỉ tới cơ sở dữ liệu nhưng phải viết bằng hàm riêng.

Session.save_path /tmp Đường dẫn nơi dữ liệu session được lưu trữ. Các đối số đưa vào được xử lý bởi Session.save_path.

Session.use_cookies 1(enable) Cấu hình session để dùng cookie trên client.

Một phần của tài liệu Tìm hiểu MYSQL và PHP, hiện thực ứng dụng quản lý xuất nhập tân dược cho công ty xuất nhập khẩu Y tế thành phố Hồ Chí Minh (Trang 60 - 62)