php中删除cookie,PHP删除cookie详解

本文详细介绍了在PHP中如何使用setcookie()函数设置Cookie,包括设置Cookie的名称、值、过期时间和路径。同时,重点讲解了如何通过更改过期时间或设置空值来删除Cookie,强调了删除Cookie时指定正确路径的重要性。此外,还提醒了在删除Cookie时路径不一致可能导致删除失败的问题。
摘要由CSDN通过智能技术生成

121274bca26221b02ea6f48b3a022a5f.png

在php中,我们可以使用setcookie()函数来设置浏览器的Cookie信息。

常见的设置cookie的示例代码如下:

$name = 'mycookie'; // cookie名称

$value = 'CodePlayer'; // cookie值

$expire = time() + 3600 * 24 * 7; // 过期时间 7天

$path = '/'; // 设置可以使用该cookie的路径,'/'表示站点根目录,该目录及所有子目录中均可访问该cookie。

// 设置一个cookie

setcookie( $name, $value, $expire, $path );

?>

不过,我们想要删除Cookie信息的话,又该怎么办呢。php并没有提供另外一个专门用来删除Cookie的函数,而是直接使用setcookie()函数来删除Cookie信息,我们只需要将过期时间更改为当前时间之间的时间即可。

// 设置cookie已过期,浏览器即可删除该cookie。此时可以为任意值。

setcookie( 'mycookie', 'CodePlayer', time() - 3600, '/' );

// 或者

// 将过期时间直接设为0,表示1970-1-1(已经过期了),可以避免time()及数学运算的消耗

setcookie( 'mycookie', 'CodePlayer', 0, '/' );

?>

此外,我们还可以将Cookie的值设为空字符串(“”)或null,也可用来删除Cookie。

/* 删除cookie */

setcookie('mycookie', '');

// 或者

setcookie('mycookie', null);

?>

这样就完了吗?No!如果你直接如上使用空字符串或null的方式来删除Cookie,可能会导致对应的cookie无法删除。

当然,上述删除Cookie的方式是没有错的,错的是我们没有在删除Cookie时指定路径(第4个参数)。如果没有指定路径参数,则路径默认为当前请求URL所在目录。如果你设置Cookie时的路径与删除Cookie时的路径不一致,将无法删除该Cookie。

// 当前请求为:"/abc/cookie.php"

// 在路径"/"下设置cookie

setcookie( 'mycookie', 'CodePlayer', time() + 3600 * 24 * 7, '/' );

// 注意:这样删除是无效的,因为默认路径为当前目录,即:"/abc/"

// setcookie( 'mycookie', '');

// 删除路径"/"下设置的名为"mycookie"的cookie,此时时间值可随意,哪怕未过期也行

setcookie( 'mycookie', '', 0, '/');

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值