【问题标题】:PHP - can't access changed cookie value from the same pagePHP - 无法从同一页面访问更改的 cookie 值
【发布时间】:2014-06-24 06:52:27
【问题描述】:

我正在开发一个 php 项目,在该项目中我提示用户选择他的城市并将其存储到 cookie 中,然后使用它来过滤结果。

问题是当我更改城市并从主页以外的页面更新 cookie 中的值时,我无法从 cookie 中读取最新值(请注意,我正在使用 jquery cookie 插件,是的,我是使用 jquery 刷新页面)。但是当我从浏览器工具检查 cookie 值时,它显示的是最新值。

我还注意到,当我导航到其他页面时,我看到那里的城市变化,但刷新同一页面并没有帮助。

注意:这个项目使用php从数据库生成动态html页面,我从php代码$_COOKIE['user_city']中读取cookie

    $('#storecity').submit(function(event){
        $frm = $(this);
        var action = $frm.attr('action');
        $city = $frm.find('select[name=city]').val();
        $frm.find('*[type=submit]').attr('disabled', 'disabled');
        $frm.find('*[type=submit]').attr('value', 'loading...');
        var pageurl = $(location).attr('href');
        $.cookie('user_city', $city, { expires: 365, path: "/"});
        event.preventDefault();
        window.location.replace(pageurl);
    });

注意:我刚刚注意到它只在 PHP 页面中运行良好,但在我上面提到的生成的 HTML 页面中却不行

更新:当我使用 cookie 插件检查 $.cookie('user_city') 时,cookie 值已更改,但在 php $_COOKIE['user_city'] 中没有;

【问题讨论】:

    标签: php jquery cookies


    【解决方案1】:

    在下次加载 Cookie 应该可见的页面之前,Cookie 不会变得可见。

    这句话来自Here

    【讨论】:

    • 我用jquery代码做了页面刷新,请看我的代码
    • 尝试用 location.reload(true) 替换 window.location;并测试 cookie
    • 输出没有变化。生成的html页面只会困扰我
    • 当你调用下一个 HTML 页面时,尝试在你的 php 中回显 header("Cache-Control: no-cache, must-revalidate"); 这个。很抱歉,我不明白你的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    相关资源
    最近更新 更多