【问题标题】:JS + PHP - delete specific cookieJS + PHP - 删除特定cookie
【发布时间】:2017-02-20 04:09:17
【问题描述】:

我在删除 Chrome 中的特定 cookie 时遇到问题,调试器根本没有拾取任何东西,尽管这是在另一个 SO 线程中找到的相同代码

reset.php

<?php
session_start();
?>

<html>
<head>
<script type="text/javascript">
    // Option 1 - set cookie to null
    //$.cookie('welcome_<?php echo $_SESSION['myusername']; ?>', null);

    // Option 2 - delete specific cookie
    delete_cookie('welcome_<?php echo $_SESSION['myusername']; ?>');

    // relocate back to index.php
    window.location = 'index.php';
</script>
</head>

<body>
</body>

</html>

我尝试通过delete_cookie直接删除cookie,也尝试将cookie设置为null,都没有结果。

我不擅长 JavaScript,如果有人能指出我正确的方向,我将不胜感激。一定很简单。

谢谢

【问题讨论】:

  • 你能告诉我们delete_cookie函数吗?
  • 没有这样的php函数叫做delete_cookie()。如果你想删除一个cookie,你必须setcookie() 过去。您还需要记住 cookie 是特定于客户端的,因此您不能删除人员 X 的 cookie,除非他们访问该页面。

标签: javascript php cookies


【解决方案1】:

我使用一种叫做 JSCookie 的东西。您可以在 JavaScript 中轻松地做到Cookies.remove('Cookie_name');

1.JSCookie Repository
2.JSCookie Download

【讨论】:

  • @Armitage2k 有趣的事实! CookiesJS 曾经是一个 jQuery 插件,但被分离了,现在它只是它自己的 JavaScript 库,这使得管理 cookie 变得更加容易!你可以做Cookies.set('cookie', 1, {expires: 6});Cookies.remove('cookie');Cookies.get('cookie');
【解决方案2】:

您可以使用 javascript 删除您的 cookie,方法是将过期日期设置为小于当前时间,如下所示-

 document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';

你可以使用 php 来删除 cookie -

 unset($_COOKIE['cookiename']);
 // or you may also remove cookie by setting cookie less than current time 
 setcookie('cookiename', null, time()-3600);

【讨论】:

    【解决方案3】:

    这可能对您有所帮助:3 个功能来设置、获取和删除 cookie

     function setCookie(key, value) {           
    
                document.cookie = key + '=' + value;
            }
    
     function getCookie(key) {
                var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
                return keyValue ? keyValue[2] : null;
            }
    
    function delete_cookie(name) {
              document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
            }
    

    删除 cookie 的干净方法是清除 $_COOKIE 值和浏览器 cookie 文件:

    if (isset($_COOKIE['key'])) {
        unset($_COOKIE['key']);
        setcookie('key', '', time() - 3600, '/'); // empty value and old timestamp
    }
    

    将值设置为“”,并将到期日期设置为昨天(或过去的任何日期)

    setcookie("hello", "", time()-3600);
    

    那么cookie会在下次页面加载时过期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-21
      • 2011-12-09
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      相关资源
      最近更新 更多