CuDemVN.Wap.Sh



![]() | ![]() ![]() ![]() |
Cookies là một phần dữ liệu được lưu trên máy khách. Mỗi khi máy khách gửi một yêu cầu tới máy chủ nào đó, thì nó sẽ gửi phần dữ liệu được lưu trong cookie tương ứng với máy chủ đó.
Trong Cookie có một số thông số sau:
- Địa chỉ URL mà trình duyệt sẽ gửi cookie tới
- Thời gian hết hạn của cookie
- Các cặp biến:giá trị được lưu trữ liên tục
Người ta thường dùng cookies để lưu trữ các thông tin có liên quan đến nhiều "phiên" làm việc khác nhau. Vì giao thức HTTP là giao thức không lưu trạng thái (Mỗi khi xử lý xong một yêu cầu từ máy khách là nó phủi tay tự ngắt kết nối luôn và chẳng thèm quan tâm đến máy khách làm gì ), nên cookies được sinh ra để làm nhiệm vụ lưu trữ một số biến trạng thái để khắc phục nhược điểm này.
Khác với dữ liệu gửi từ form (Post hay Get) thì cookies sẽ được trình duyệt tự động gửi đi theo mỗi lần truy cập lên máy chủ. Trong quá trình làm việc, cookie có thể bị thay đổi giá trị. Cookie sẽ bị vô hiệu hoá nếu cửa sổ trình duyệt điều khiển cookie đóng lại và cookie hết thời gian có hiệu lực. Theo mặc định, thời gian "sống" của cookies là tồn tại cho đến khi cửa sổ trình duyệt sử dụng cookies bị đóng. Tuy nhiên người ta có thể thiết lập tham số thời gian để cookie có thể sống lâu hơn (6 tháng chẳng hạn). Ví dụ như chế độ Remember ID & Password của 1 số trang web.
Cách ghi thông tin vào cookie và gửi xuống trình duyệt
Trong PHP, để gửi cookie xuống trình duyệt, ta có thể sử dụng hàm setcookie:Trong đó:
-
string name: Chuỗi mang tên của cookie
- string value: Chuỗi mang giá trị của cookie tương ứng với tên đã cho
- int expire: Thời gian hết hạn của cookie
- string path: Đường dẫn của cookie (đến 1 thư mục nào đó trên máy chủ. Tham số này cho biết cookie sẽ chỉ được truyền đi nếu như trang web mà trình duyệt yêu cầu nằm trên thư mục đó, thay vì lúc nào cũng phải gửi đi tới bất kỳ khu vực nào).
- string domain: cookie này sẽ được gửi tới domain nào?
- int secure: Chế độ bảo mật.
Các tham số trong cặp dấu ngoặc vuông là tuỳ chọn
Ví dụ:
setcookie ("ten_truy_cap","lan gio vo tinh");
?>
Chú ý: Hàm setcookie phải được gọi trước khi bạn gửi bất kỳ một nội dung nào xuống trình duyệt.
VD: Cách dùng đúng:
// Thực hiện các câu lệnh nào đó, nhưng không được phép gửi gì xuống trình duyệt
setcookie ("ten_truy_cap", "lan gio vo tinh");
setcookie ("password", "thumotti");
// Thực hiện các câu lệnh tiếp theo, có thể xuất dữ liệu xuống trình duyệt
echo "<html><body>Xin chào lan gio vo tinh";
?>
VD: Cách dùng sai:
// Thực hiện các câu lệnh nào đó
echo ("cái gì đó");
setcookie ("ten_truy_cap", "lan gio vo tinh");
setcookie ("password", "thumotti");
// các câu lệnh khác.
?>
Ví dụ trên sai vì bạn đã trót gửi dòng "cái gì đó" xuống trình duyệt trước khi gọi hàm setcookie.
Cách lấy dữ liệu lưu trong cookie
Để lấy dữ liệu đã lưu trong cookies do trình duyệt gửi lên, ta có thể dùng mảng
$HTTP_COOKIE_VARS["password"] // chứa giá trị "thumotti".
Ngoài cách dùng biến $HTTP_COOKIE_VARS các bạn có thể sử dụng biến toàn cục $_COOKIE['ten_truy_cập']
setcookie('username', 'RoSino18k', time()+3600, '/');
echo $_COOKIE['username'];
// hiển thị "RoSino18k"
?>
Đoạn code trên sẽ gán giá trị "RoSino18k" vào biến $_COOKIE['username'], tồn tại trong vòng 1 giờ kể từ thời điểm gán và trên cả domain đang sử dụng!
Chúc các bạn thành công!

