【问题标题】:How to completely delete $_COOKIEs in PHP如何在 PHP 中完全删除 $COOKIE
【发布时间】:2016-03-08 03:24:09
【问题描述】:

我有以下 PHP 脚本:

foreach( $_COOKIE as $key => $value ) {
  if( strpos( $key, 'ticketRecon_ID-' ) === false ) continue;
  else {
    setcookie( $key, '', time() - 1 );
    unset( $_COOKIE[$key] );
  }
}

当我运行脚本时,print_r($_COOKIE) 显示目标 cookie 已被删除且不存在。然而 Chrome 开发工具检查器显示 cookie 仍然存在(见下面的屏幕截图)当我返回创建 cookie 的页面时它们仍然存在。

如何在 PHP 中完全删除/擦除/销毁 _COOKIE?这可能与使用 SSL 协议的网站页面有任何关系或关系吗?

修正:

这是我最初设置 cookie 的方式:

setcookie( 'ticketRecon_ID-' . $row['reservationID'], 'N', null, '/' );

【问题讨论】:

  • 希望对您有所帮助,但我知道您正在寻找this
  • 谢谢@WilliamMadede...所以你的答案setcookie($key,"",time()-3600); 可以在我的setcookie( $key, '', time() - 1 ); 不行的地方工作?有什么区别?
  • 那么如何先设置cookie..?done
  • 好问题@WilliamMadede ...查看我修改后的 OQ
  • 我逐字复制并粘贴了您的解决方案@WilliamMadede setcookie($key,"",time()-3600);,但它对我不起作用。

标签: php cookies


【解决方案1】:

解决了。

看来您必须删除 _COOKIE 以完全相同的方式创建它们。所以我在删除setcookie() 时缺少路径属性。

像这样创建setcookie( 'ticketRecon_ID-' . $row['reservationID'], 'N', null, '/' );

所以删除一定是这样setcookie( $key, '', time() - 1, '/' );

希望这篇文章有一天能对某人有所帮助。

【讨论】:

    【解决方案2】:

    为它分配一个空数组

    $_COOKIE = array();
    

    【讨论】:

    • 这不会删除cookie,它只是清除超全局
    • 谢谢@Machavity 我现在知道了。
    猜你喜欢
    • 1970-01-01
    • 2013-06-04
    • 2011-10-08
    • 2011-09-23
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    相关资源
    最近更新 更多