在我的网站上有评论框。为什么php不能删除JavaScript设置的cookie?
发布评论是由JavaScript处理,JS数据发布到PHP脚本和PHP确实只有当用户登录时,如果用户的心不是在那么PHP给not_loggedin响应接收它的js后登录该数据库相关的东西,并显示确认显示了自举弹出框与链接到登录页面。
因此,如果用户没有登录,那么javascript会将输入的注释存储在cookie中,以便在登录后用户不必重新输入注释。像这样
document.cookie = id + "=" + input_text + "; ";
,并在注释文本域登录后通过读取它具有存储注释文本饼干填充..
一切都交给这是工作完美,但是在PHP中插入评论后,我很试图删除的cookie这样,
setcookie($id, "", time()-3600);
print_r($_COOKIE);
exit('<p class="bg-info">Thank you! Your comment has been posted.</p>');
,但它仍然不删除的cookie,当我重新加载页面,注释textarea的盒子我填充是从饼干看了一遍先前enetered评论,
我该如何解决这个问题?
我甚至试过显示由JS存储在PHP中的cookie,艾克这个
//insert comment in db
//setcookie($id, "", time()-3600);
print_r($_COOKIE);
exit('<p class="bg-info">Thank you! Your comment has been posted.</p>');
但它不显示这是由JS设置cookie,它显示PHPSESSID的cookie发布评论后,
Array
(
[PHPSESSID] => c5rc6c8ggg24edg1v2o8hebb20
)
我不想删除PHPSESSID cookie。, 我在使用js的页面上显示此内容。 as post_comment.php是同一台服务器上另一个目录中的另一个文件。
我做错了什么?
简而言之, js设置cookie和php应该删除cookie。
----------
更新1:
而在JS这样
document.cookie = id + "=" + input_text + "; path=/";
和之后设置的Cookie我试图设定路径张贴cookie。,现在我明白了,
Array
(
[PHPSESSID] => c5rc6c8ggg24edg1v2o8hebb20
[4778] => this is comment
)
我的PHP代码是这样的,
//insert comment is db
setcookie($id, "", time()-3600);
printr($_COOKIE);
exit('<p class="bg-info">Thank you! Your comment has been posted.</p>');
但cookie是仍然存在。
更新2: 这是很奇怪的,
,如果我尝试设置在PHP中同名的cookie,多了一个饼干被创建。 我的php代码。
setcookie($id, "sdf", time()+36000);
printr($_COOKIE);
exit('<p class="bg-info">Thank you! Your comment has been posted.</p>');
现在,当我检查broswers cookie管理器,我看到2块饼干具有相同的名称,
但两者具有不同的内容,这是设置USNG的javascript有用户enetered注释和一个我们使用php设置的另一个cookie是内容“sdf”。
我不知道这是怎么可能有2个cookie完全相同的名称。 ,
任何线索?
在评论存储之后,您仍然可以在js端看到cookie吗? – andrex 2014-09-22 04:41:55
@andrex我没有得到它,你的意思是,我重新加载页面后,我填充了cookie值的评论框,甚至cookie都发布了。 – AMB 2014-09-22 04:44:21
看到这个http://stackoverflow.com/questions/10593013/delete-cookie-by-name – gabereal 2014-09-22 04:46:00