Cookies là các tệp văn bản được lưu trữ trên máy khách và chúng được giữ cho mục đích theo dõi sử dụng. Khóa đào tạo PHP hỗ trợ minh bạch các cookie HTTP.
Có ba bước liên quan đến việc xác định người dùng quay lại
Tập lệnh máy chủ gửi một bộ cookie đến trình duyệt. Ví dụ tên, tuổi hoặc số nhận dạng, v.v.
Trình duyệt lưu thông tin này trên máy cục bộ để sử dụng trong tương lai.
Khi trình duyệt lần sau gửi bất kỳ yêu cầu nào đến máy chủ web thì nó sẽ gửi thông tin cookie đó đến máy chủ và máy chủ sử dụng thông tin đó để nhận dạng người dùng.
Chương này sẽ hướng dẫn bạn cách đặt cookie, cách truy cập và cách xóa chúng.
Cookie thường được đặt trong tiêu đề HTTP (mặc dù JavaScript cũng có thể đặt cookie trực tiếp trên trình duyệt). Một tập lệnh Khóa đào tạo PHP đặt cookie có thể gửi các tiêu đề trông giống như thế này
Như bạn có thể thấy, tiêu đề Set-Cookie chứa một cặp giá trị tên, ngày GMT, đường dẫn và tên miền. Tên và giá trị sẽ được mã hóa URL. Trường hết hạn là một hướng dẫn để trình duyệt "quên" cookie sau thời gian và ngày nhất định.
Nếu trình duyệt được cấu hình để lưu trữ cookie, thì nó sẽ giữ thông tin này cho đến ngày hết hạn. Nếu người dùng trỏ trình duyệt vào bất kỳ trang nào khớp với đường dẫn và miền của cookie, nó sẽ gửi lại cookie cho máy chủ. Các tiêu đề của trình duyệt có thể trông giống như thế này
Tập lệnh Khóa đào tạo PHP sau đó sẽ có quyền truy cập vào cookie trong các biến môi trường $ _COOKIE hoặc $ HTTP_COOKIE_VARS [] chứa tất cả các tên và giá trị cookie. Có thể truy cập cookie ở trên bằng $ HTTP_COOKIE_VARS ["name"].
PHP đã cung cấp hàm setcookie () để đặt cookie. Hàm này yêu cầu tối đa sáu đối số và phải được gọi trước thẻ <html>. Đối với mỗi cookie, chức năng này phải được gọi riêng.
Tên - Cái này đặt tên của cookie và được lưu trữ trong một biến môi trường có tên HTTP_COOKIE_VARS. Biến này được sử dụng trong khi truy cập cookie.
Giá trị - Điều này đặt giá trị của biến được đặt tên và là nội dung mà bạn thực sự muốn lưu trữ.
Hết hạn - Điều này xác định thời gian trong tương lai tính bằng giây kể từ 00:00:00 GMT ngày 1 tháng 1 năm 1970. Sau thời gian này, cookie sẽ không thể truy cập được. Nếu tham số này không được đặt thì cookie sẽ tự động hết hạn khi Trình duyệt web bị đóng.
Đường dẫn - Cái này chỉ định các thư mục mà cookie hợp lệ. Một ký tự gạch chéo về phía trước cho phép cookie có hiệu lực cho tất cả các thư mục.
Tên miền - Điều này có thể được sử dụng để chỉ định tên miền trong các tên miền rất lớn và phải có ít nhất hai giai đoạn để hợp lệ. Tất cả các cookie chỉ có giá trị cho máy chủ lưu trữ và tên miền đã tạo ra chúng.
Bảo mật - Điều này có thể được đặt thành 1 để chỉ định rằng cookie chỉ nên được gửi bằng cách truyền an toàn bằng HTTPS nếu không được đặt thành 0, có nghĩa là cookie có thể được gửi bằng HTTP thông thường.
Ví dụ sau sẽ tạo hai tên cookie và tuổi các cookie này sẽ hết hạn sau một giờ.
An toàn nhất là đặt cookie với ngày đã hết hạn
Có ba bước liên quan đến việc xác định người dùng quay lại
Tập lệnh máy chủ gửi một bộ cookie đến trình duyệt. Ví dụ tên, tuổi hoặc số nhận dạng, v.v.
Trình duyệt lưu thông tin này trên máy cục bộ để sử dụng trong tương lai.
![]() |
| Học lập trình PHP chuyên nghiệp |
Khi trình duyệt lần sau gửi bất kỳ yêu cầu nào đến máy chủ web thì nó sẽ gửi thông tin cookie đó đến máy chủ và máy chủ sử dụng thông tin đó để nhận dạng người dùng.
Chương này sẽ hướng dẫn bạn cách đặt cookie, cách truy cập và cách xóa chúng.
Giải phẫu của một chiếc bánh quy
Cookie thường được đặt trong tiêu đề HTTP (mặc dù JavaScript cũng có thể đặt cookie trực tiếp trên trình duyệt). Một tập lệnh Khóa đào tạo PHP đặt cookie có thể gửi các tiêu đề trông giống như thế này
HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT;
path=/; domain=tutorialspoint.com
Connection: close
Content-Type: text/html
Như bạn có thể thấy, tiêu đề Set-Cookie chứa một cặp giá trị tên, ngày GMT, đường dẫn và tên miền. Tên và giá trị sẽ được mã hóa URL. Trường hết hạn là một hướng dẫn để trình duyệt "quên" cookie sau thời gian và ngày nhất định.
Nếu trình duyệt được cấu hình để lưu trữ cookie, thì nó sẽ giữ thông tin này cho đến ngày hết hạn. Nếu người dùng trỏ trình duyệt vào bất kỳ trang nào khớp với đường dẫn và miền của cookie, nó sẽ gửi lại cookie cho máy chủ. Các tiêu đề của trình duyệt có thể trông giống như thế này
GET / HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)
Host: zink.demon.co.uk:1126
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name=xyz
Tập lệnh Khóa đào tạo PHP sau đó sẽ có quyền truy cập vào cookie trong các biến môi trường $ _COOKIE hoặc $ HTTP_COOKIE_VARS [] chứa tất cả các tên và giá trị cookie. Có thể truy cập cookie ở trên bằng $ HTTP_COOKIE_VARS ["name"].
Đặt Cookies bằng PHP
PHP đã cung cấp hàm setcookie () để đặt cookie. Hàm này yêu cầu tối đa sáu đối số và phải được gọi trước thẻ <html>. Đối với mỗi cookie, chức năng này phải được gọi riêng.
setcookie(name, value, expire, path, domain, security);
Dưới đây là chi tiết của tất cả các đối số
Tên - Cái này đặt tên của cookie và được lưu trữ trong một biến môi trường có tên HTTP_COOKIE_VARS. Biến này được sử dụng trong khi truy cập cookie.
Giá trị - Điều này đặt giá trị của biến được đặt tên và là nội dung mà bạn thực sự muốn lưu trữ.
Hết hạn - Điều này xác định thời gian trong tương lai tính bằng giây kể từ 00:00:00 GMT ngày 1 tháng 1 năm 1970. Sau thời gian này, cookie sẽ không thể truy cập được. Nếu tham số này không được đặt thì cookie sẽ tự động hết hạn khi Trình duyệt web bị đóng.
Đường dẫn - Cái này chỉ định các thư mục mà cookie hợp lệ. Một ký tự gạch chéo về phía trước cho phép cookie có hiệu lực cho tất cả các thư mục.
Tên miền - Điều này có thể được sử dụng để chỉ định tên miền trong các tên miền rất lớn và phải có ít nhất hai giai đoạn để hợp lệ. Tất cả các cookie chỉ có giá trị cho máy chủ lưu trữ và tên miền đã tạo ra chúng.
Bảo mật - Điều này có thể được đặt thành 1 để chỉ định rằng cookie chỉ nên được gửi bằng cách truyền an toàn bằng HTTPS nếu không được đặt thành 0, có nghĩa là cookie có thể được gửi bằng HTTP thông thường.
Ví dụ sau sẽ tạo hai tên cookie và tuổi các cookie này sẽ hết hạn sau một giờ.
<?php setcookie("name", "John Watkin", time()+3600, "/","", 0); setcookie("age", "36", time()+3600, "/", "", 0); ?> <html> <head> <title>Setting Cookies with PHP</title> </head> <body> <?php echo "Set Cookies"?> </body> </html>
Truy cập Cookies bằng PHP
Khóa đào tạo PHP cung cấp nhiều cách để truy cập cookie. Cách đơn giản nhất là sử dụng các biến $ _COOKIE hoặc $ HTTP_COOKIE_VARS. Ví dụ sau sẽ truy cập tất cả các cookie được đặt trong ví dụ trên.<html> <head> <title>Accessing Cookies with PHP</title> </head> <body> <?php echo $_COOKIE["name"]. "<br />"; /* is equivalent to */ echo $HTTP_COOKIE_VARS["name"]. "<br />"; echo $_COOKIE["age"] . "<br />"; /* is equivalent to */ echo $HTTP_COOKIE_VARS["age"] . "<br />"; ?> </body> </html>Bạn có thể sử dụng hàm isset () để kiểm tra xem cookie có được đặt hay không.
<html> <head> <title>Accessing Cookies with PHP</title> </head> <body> <?php if( isset($_COOKIE["name"])) echo "Welcome " . $_COOKIE["name"] . "<br />"; else echo "Sorry... Not recognized" . "<br />"; ?> </body> </html>
Xóa Cookie bằng PHP
Chính thức, để xóa cookie, Khóa đào tạo PHP nên gọi setcookie () chỉ với đối số tên nhưng điều này không phải lúc nào cũng hoạt động tốt, tuy nhiên, không nên dựa vào.An toàn nhất là đặt cookie với ngày đã hết hạn
<?php setcookie( "name", "", time()- 60, "/","", 0); setcookie( "age", "", time()- 60, "/","", 0); ?> <html> <head> <title>Deleting Cookies with PHP</title> </head> <body> <?php echo "Deleted Cookies" ?> </body> </html>

Không có nhận xét nào:
Đăng nhận xét