【问题标题】:Deleting a cookie no longer works after moving the code移动代码后删除 cookie 不再有效
【发布时间】:2012-03-07 21:30:35
【问题描述】:

我正在使用下面的代码删除 cookie,一切正常。 几天前,我开始在其他地方托管代码,它不会再删除 cookie。

有什么想法吗?

if( $_COOKIE )
{
     foreach( $_COOKIE as $name => $value )
     {
          $params = session_get_cookie_params();

          unset($_COOKIE[$name]);
          setcookie($name, '', time()-43200, $params['path']);
          echo $name;
          echo '<br/>';
          echo $params['path'];
      }
}

【问题讨论】:

  • 服务器上的时间是否正确?
  • 两台服务器上的时间相同。
  • 哦,您正在使用 setcookie 和 echo 的组合。必须始终在任何输出之前调用 Setcookie。可能只有第一个 cookie 被清除?

标签: php facebook cookies


【解决方案1】:

在没有 echo 语句的情况下试试这个。

然后执行以下操作:

  1. 安装Web Dev Toolbar for Firefox并重启
  2. 按照您的步骤设置 cookie,然后使用 Web 开发工具栏查看页面的 cookie 以确认它存在
  3. 访问删除 cookie 的页面,再次使用 Web 开发工具栏查看该页面的 cookie - 它可能仍然存在。
  4. 最后访问网站上的另一个页面并使用 Web Dev Toolbar 再次检查 cookie

【讨论】:

    【解决方案2】:

    我试图删除的 cookie 用于我的 Facebook Connect 应用。当您注销 FB Connect 时,创建的 cookie 不会被删除。 如果 FB Developer 应用程序的网站部分中的回调 URL 中包含 WWW 或用户访问 www.myapp.com,则不会使用我使用的方法删除 cookie。

    所以我不得不将回调 URL 从 http://www.myapp.com/ 更改为 http://myapp.com/ 然后我必须在 .htaccess 文件中进行重写,以确保用户始终访问 http://myapp.com 没有 WWW。

    这对我来说似乎很挑剔,但确实有效。

    *发布此标签并更新标签,以防其他人遇到同样的问题。

    【讨论】:

      猜你喜欢
      • 2021-11-12
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 2017-08-27
      相关资源
      最近更新 更多