PHP Cookie
Cookie是存储在客户端计算机上的文本文件,它们保留用于跟踪目的。PHP透明地支持HTTP cookie。
识别回归用户涉及三个步骤
- 服务器脚本将一组cookie发送到浏览器。例如姓名,年龄或身份证号码等。
- 浏览器将此信息存储在本地计算机上以供将来使用
- 当下次浏览器向Web服务器发送任何请求时,它会将这些cookie信息发送到服务器,服务器使用该信息来识别用户。
本章将教您如何设置cookie,如何访问它们以及如何删除它们。
用PHP设置Cookies
PHP提供了
setcookie()
函数来设置cookie。此函数最多需要六个参数,应在<html>标记之前调用。对于设置每一个cookie,必须单独调用此函数。
1
|
setcookie(name, value, expire, path, domain, security); |
这是所有参数的细节
- name – 设置cookie的名称。
- value – 设置命名变量的值,并且是您实际要存储的内容。
- expire – 这指定自1970年1月1日格林尼治标准时间00:00:00以来的未来时间(以秒为单位)。在此之后,cookie将无法访问。如果未设置此参数,则在Web浏览器关闭时cookie将自动过期。
- path – 指定cookie有效的目录。单个正斜杠字符允许cookie对所有目录有效。
- domain – 这可用于在非常大的域中指定域名,并且必须至少包含两个有效期。所有cookie仅对创建它们的主机和域有效。
- security – 可以设置为1以指定cookie应仅通过使用HTTPS的安全传输发送,否则设置为0,这意味着cookie可以通过常规HTTP发送。
以下示例将创建两个cookie 名称和年龄,这些cookie将在一小时后过期。
1
2
3
4
5
6
7
8
9
10
|
setcookie( "name" , "John Watkin" , time()+3600, "/" , "" , 0); setcookie( "age" , "36" , time()+3600, "/" , "" , 0); <html> <head> <title>用PHP设置Cookies</title> </head> <body> echo "设置 Cookies" </body> </html> |
打开浏览器访问脚本,然后按F12打开开发者模式,选择Network(网络)选项卡,选择Headers,可以看到如下图所示:
用PHP删除Cookie
正式地说,要删除一个cookie,你应该只使用name参数调用setcookie()[也就是说想删除那个name,把他设置成空],但这并不总是有效,不应该依赖。最安全的做法是设置一个已经过期的日期
1
2
3
4
5
6
7
8
9
|
/* 设置过去时间为当前时间的之前的60秒 */ setcookie( "name" , "" , time()- 60, "/" , "" , 0); setcookie( "age" , "" , time()- 60, "/" , "" , 0); <html><head> <title>用PHP删除cookie</title> </head><body> echo "删除cookie" </body> </html> |