所以我在这里放饼干。他们完全是工作,因为当我进入我的firefox隐私问题,我可以看到那里的曲奇和它的价值,但当我试图阅读或回音,它总是给我一个空白的结果……
我使用Wordpress,我通过点击按钮调用setcookie并发出ajax请求。下面我是怎么做的:
此脚本位于templateDirectory/js中。
$('.bucket-list').on("click", function () {
$.ajax({
url: templateDir + '/js/list.php'
});在php文件list.php中,我们有以下内容:
setcookie("displaymode", "list" , time() + 3600 * 24 * 30); 到目前为止,正如我所说的,我可以看到浏览器中的cookie,但是当我试图调用它时,它一直给我一个空白的结果,如下所示:
if ($_COOKIE["displaymode"] == "list")
echo '<div class="class1">' ;
else {
echo '<div class="class2">' ;
echo '<script>';
echo 'alert('.$_COOKIE["displaymode"].')';
echo '</script>';
}
?>上面的脚本位于主文件(homepage.php)中,来自templateDirectory。任何帮助都将并将受到极大的感谢。
发布于 2014-02-25 23:44:41
确保cookie设置在预期的路径上。
如果您的脚本在:
/templates/MyTemplate/js/list.phpcookie将为路径/templates/MyTemplate/js/设置。
若要设置整个域使用的cookie,请执行以下操作:
setcookie("displaymode", "list", time() + 3600 * 24 * 30, "/");
set path to "/" --^发布于 2014-02-25 23:43:06
请记住,不能在同一个页面上设置和调用cookie。你必须在中间加载一个页面。这就是人们倾向于使用会话的原因,会话可以在同一个页面上设置和调用(会话数据没有存储在cookie中)。
发布于 2014-02-25 23:47:02
来自PHP文档的常见陷阱是:
cookie将在下一次加载cookie应该可见的页面之前才会变得可见。若要测试cookie是否已成功设置,请在cookie过期之前在下一个加载页上检查cookie。
https://stackoverflow.com/questions/22028629
复制相似问题