删除(取消设置)今天之前创建的所有较早的Cookie并创建子目录是否保留在浏览器历史记录中?

雷弗斯

我正尝试从我的网站中删除今天之前创建的所有cookie ...,以便任何返回该站点的人都将丢失所有旧cookie,并获得一组新的cookie。

我无法使用,RequestHeader unset Cookie因为它会一直删除饼干,直到我删除它为止,我想要它,因此它将删除所有在2015年7月1日之前制作的Cookie

我还试图“修复”我的网站,以便浏览器记住目录/ f1fol /,因为出于某种原因,没有浏览器会记住该页面(不确定导致问题的原因)

任何人都知道该怎么做/有什么问题?

拉维(Ravi K Thapliyal)

事实是:浏览器从不报告Cookie的创建日期。创建cookie时,仅存储在其创建过程中指定的服务器的到期日期及其值,因此,只有在cookie崩溃/到期的那一天,它才会被报告回服务器。

但是,您想要的最终结果是,返回站点的任何人都应该丢失所有旧的Cookie,并获得新的新Cookie。将以下代码添加到名为purge_old_cookies.php的PHP包含文件中

<?
// Check if this script has run before
if (!isset($_COOKIE['purged_once'])) {

  // Check for old cookies
  if (isset($_SERVER['HTTP_COOKIE'])) {

    $cookies = explode(";", $_SERVER['HTTP_COOKIE']);

    // Iterate and unset all cookies
    foreach ($cookies as $cookie) {

      $fields = explode("=", $cookie);
      $name = trim(fields[0]);

      // unset any cookie for the current path
      setcookie($name, "", time() - 3600);

      // unset the cookie for the root path
      setcookie($name, "", time() - 3600, "/");
    }
  }

  // Set a purged marker for the current path
  setcookie("purged_once", "1", strtotime("+6 months"));
}
?>

通过设置cookie的过期日期来强制cookie过期。上面的代码将其设置为昨天。

注意,该setcookie()方法被触发两次,因为必须使用与设置它们相同的参数删除cookie。以上就足以在大多数情况下,但如果你的网站有不同的Cookie domainsecurehttponly参数,你可能要通过他们。

上面的脚本准备好后,只需将其包括在所有必需页面的开头即可。

<?
  include '/path/to/purge_old_cookies.php';
  ...
?>

如果您确定自己的网站从未为特定的cookie设置过,/dir/path即始终传递的path值为/,则可以通过将此脚本添加到just来取消设置所有cookie /index.php然后,两个setcookie()调用(带有和不带/)实际上变得相同,您可以丢弃一个。purged_once饼干也将根设置为

setcookie("purged_once", "1", strtotime("+6 months"), "/");

这也将标记cookie限制为每个用户一个。

请注意:

将标记purged_once cookie设置为在3到6个月的长时间后过期如果您将其设置得太低而忘记删除脚本,则最终会从引入该脚本之时就清除网站设置的所有新cookie

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档