尝试在用户注销时删除所有网站 Cookie 时,您遇到了以下代码的问题:
<code class="php">setcookie("user",false);</code>
这段代码似乎无效。让我们探索一种从特定域中清除 cookie 的替代方法。
PHP setcookie() 函数提供了一种设置和删除 cookie 的方法。要删除 Cookie,我们可以将其值设置为空字符串,并将过期时间设置为过去的日期:
<code class="php">setcookie("name", "", time() - 3600);</code>
实现此方法来删除与域关联的所有 cookie 都需要替代路由。 PHP 的 setcookie() 函数不提供同时清除多个 cookie 的功能。但是,通过利用 $_SERVER['HTTP_COOKIE'] 变量,我们可以枚举现有的 cookie 并单独删除它们:
<code class="php">// unset cookies if (isset($_SERVER['HTTP_COOKIE'])) { $cookies = explode(';', $_SERVER['HTTP_COOKIE']); foreach($cookies as $cookie) { $parts = explode('=', $cookie); $name = trim($parts[0]); setcookie($name, '', time()-1000); setcookie($name, '', time()-1000, '/'); } }</code>
通过循环遍历 cookie 并将路径和过期值设置为空字符串,我们可以有效地删除与当前域关联的所有cookie。
以上是如何在 PHP 中有效删除与您网站相关的所有 Cookie?的详细内容。更多信息请关注PHP中文网其他相关文章!