首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP cookie在尝试访问它们时总是空的。

PHP cookie在尝试访问它们时总是空的。
EN

Stack Overflow用户
提问于 2014-02-25 23:38:10
回答 3查看 902关注 0票数 0

所以我在这里放饼干。他们完全是工作,因为当我进入我的firefox隐私问题,我可以看到那里的曲奇和它的价值,但当我试图阅读或回音,它总是给我一个空白的结果……

我使用Wordpress,我通过点击按钮调用setcookie并发出ajax请求。下面我是怎么做的:

此脚本位于templateDirectory/js中。

代码语言:javascript
复制
$('.bucket-list').on("click", function () {

    $.ajax({
        url: templateDir + '/js/list.php'
    });

在php文件list.php中,我们有以下内容:

代码语言:javascript
复制
setcookie("displaymode", "list" , time() + 3600 * 24 * 30); 

到目前为止,正如我所说的,我可以看到浏览器中的cookie,但是当我试图调用它时,它一直给我一个空白的结果,如下所示:

代码语言:javascript
复制
if ($_COOKIE["displaymode"] == "list") 
        echo '<div class="class1">' ;
      else {
        echo '<div class="class2">' ;
        echo '<script>';
        echo 'alert('.$_COOKIE["displaymode"].')';
        echo '</script>';
      }
?>

上面的脚本位于主文件(homepage.php)中,来自templateDirectory。任何帮助都将并将受到极大的感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-25 23:44:41

确保cookie设置在预期的路径上。

如果您的脚本在:

代码语言:javascript
复制
/templates/MyTemplate/js/list.php

cookie将为路径/templates/MyTemplate/js/设置。

若要设置整个域使用的cookie,请执行以下操作:

代码语言:javascript
复制
setcookie("displaymode", "list", time() + 3600 * 24 * 30, "/");
                                         set path to "/" --^
票数 3
EN

Stack Overflow用户

发布于 2014-02-25 23:43:06

请记住,不能在同一个页面上设置和调用cookie。你必须在中间加载一个页面。这就是人们倾向于使用会话的原因,会话可以在同一个页面上设置和调用(会话数据没有存储在cookie中)。

票数 2
EN

Stack Overflow用户

发布于 2014-02-25 23:47:02

来自PHP文档的常见陷阱是:

cookie将在下一次加载cookie应该可见的页面之前才会变得可见。若要测试cookie是否已成功设置,请在cookie过期之前在下一个加载页上检查cookie。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22028629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档