PHP无法删除JavaScript设置的cookie

rin*_*hik 10 javascript php cookies

是否可以删除通过JS使用PHP设置的cookie?

我这样做:

*FRONT(JS):

if ($.cookie('myCookie'))
{
   console.log('Cookie.. :(  ');
}
else
{
    console.log('Yaay! No cookie!');
    $.cookie('myCookie', '123');
}
Run Code Online (Sandbox Code Playgroud)

BACK(PHP):

if (isset($_REQUEST['removeCookie']))
{
   setcookie("myCookie", "", time()-3600);
   unset($_COOKIE['myCookie']);
}
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

似乎这是一个谜

Sum*_*ani 9

您无法强制浏览器删除cookie文件.但是,您可以删除cookie的内容并使其过期.这正是您在上面的代码中所做的.我可能会稍微调整一下:

setcookie('myCookie', '', 1, '/'); // no need to calculate one hour ago.
Run Code Online (Sandbox Code Playgroud)


Dav*_*ave 0

有人可以在测试机器上运行这段代码吗?我有点困惑为什么 cookie 可以“取消设置”但不能在 php 中更改值或过期等,似乎 setcookie() 根本不起作用。

<script type="text/javascript" src="jquery.js"></script>
<script src="jquery.cookie.js"></script>
<script>
   $.cookie('myCookie', '123' ,'/');
   console.log("Created myCookie");
</script>
<?php
   echo $_COOKIE['myCookie'];
   //Comment/uncomment below as required
   //setcookie("myCookie", "BLAH", time()-430000);
   //$_COOKIE['myCookie'] = "BLAH";
   setcookie('myCookie', '', 1, '/');
   echo "<br />unset myCookie";
   echo "<br />".$_COOKIE['myCookie'];
?>
<script>
console.log($.cookie('myCookie').length);
if ($.cookie('myCookie').length>0)
{
   console.log('Cookie exists  ');
   console.log($.cookie('myCookie'));
}
else
{
    console.log('Yaay! No cookie!');
}
</script>
Run Code Online (Sandbox Code Playgroud)

您似乎能够创建一个 php <> JS cookie 不匹配,即:2 个 cookie 调用完全相同但存储不同的数据。