PHP-Cookie

Cookie 是什么?

cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

设置Cookie

在PHP中,你可以使用 setcookie() 函数来设置一个Cookie。这个函数必须在任何HTML输出之前调用,因为HTTP头(包括设置Cookie的头)必须在发送任何实际内容之前发送。

<?php
setcookie("user", "John Doe", time() + (86400 * 7)); // 86400 = 1天

上面的代码设置了一个名为 "user" 的Cookie,值为 "John Doe",并且这个Cookie将在7天后过期。time() + (86400 * 7) 计算了7天后的时间戳

读取Cookie

一旦设置了Cookie,你就可以通过全局数组 $_COOKIE 来访问它。

<?php
setcookie("user", "John Doe", time() + (86400 * 7)); // 86400 = 1天
if(isset($_COOKIE["user"])) {
     echo "User is " . $_COOKIE["user"];
 } else {
     echo "User is not set.";
 }

输出结果:

删除Cookie

要删除一个Cookie,你可以通过设置它的过期时间为过去的一个时间点来实现。注意,删除Cookie时,你必须设置与创建Cookie时相同的路径和域。

<?php
setcookie("user", "John Doe", time() + (86400 * 7)); // 86400 = 1天

if(isset($_COOKIE["user"])) {
     echo "User is " . $_COOKIE["user"];
 } else {
     echo "User is not set.";
 }
 // 设置Cookie的过期时间为过去的时间
setcookie("user", "", time() - 3600);

然而,仅仅设置过期时间可能不足以删除所有Cookie,特别是如果它们有特定的路径或域设置。为了确保删除,你应该尽量使用与创建时相同的参数来调用 setcookie()。

Cookie的属性

setcookie() 函数还支持其他几个参数,允许你设置Cookie的路径、域、安全性(HTTPS)和HTTPOnly属性。

setcookie("TestCookie", $value, time() + 3600, "/path/", "example.com", true, true);

  1. 路径(/path/):Cookie有效的服务器上的路径。
  2. 域(example.com):Cookie有效的域。
  3. 安全性(true):如果设置为 true,则Cookie只能通过HTTPS发送。
  4. HTTPOnly(true):如果设置为 true,则Cookie不能通过客户端脚本访问(例如JavaScript)。这增加了安全性,因为它防止了跨站脚本(XSS)攻击中Cookie的窃取。

注意事项

  1. Cookie的大小限制通常是4KB。
  2. 浏览器对同一域名下的Cookie数量有限制(通常是20个)。
  3. Cookie是存储在客户端的,因此它们可以被用户查看和修改。不要依赖Cookie来存储敏感信息。
  4. 对于需要更高安全性的数据,应该考虑使用HTTPS和会话(Session)机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值