【问题标题】:Reading PHP Cookie is Impossible读取 PHP Cookie 是不可能的
【发布时间】:2019-11-04 12:43:51
【问题描述】:

我尝试读取 PHP cookie,但无法读取,尽管我能够在 Chrome 控制台中看到它。我自己找到了解决方案,使用调试方法,但如果其他人遇到同样的问题,我会自己回答这个问题,以节省您的时间。

我正在使用此代码:

if(!empty($_COOKIE['my.cookie'])) {
    echo "cookie value: ".$_COOKIE['my.cookie'];
}
// fallback
else {
    echo "cookie not set!";
}

【问题讨论】:

    标签: php cookies php-7.0


    【解决方案1】:

    使用 var_dump() 函数帮助我发现了问题,因为 cookie 名称是由 PHP 自动更改的。 (可能是一个错误,或者某种已知的限制 - 我的版本是 PHP 7.0.33。)

    var_dump($_COOKIE);
    

    这导致在网页上打印 cookie 列表,并且 cookie 名称从“my.page-LANG”更改为“my_page-LANG”。

    所以我重命名了我的 cookie,我很好:

    if(!empty($_COOKIE['my_cookie'])) {
        echo "cookie value: ".$_COOKIE['my_cookie'];
    }
    // fallback
    else {
        echo "cookie not set!";
    }
    

    【讨论】:

    • 这是明确记录的:php.net/…
    • 加上不以任何方式验证 cookie 值,这可能会启用路径遍历攻击。
    • 但网站语言切换首先不应该通过 cookie 处理 - 搜索引擎机器人等通常不接受 cookie,因此您的不同语言内容甚至可能无法正确索引.语言是属于 URL 的信息,而不是 cookie。
    • @Daan:我怎么知道cookie名称等于变量名称?这没有记录在您的链接页面上。否则我会立即同意。
    • @Dharman:我不是 PHP 专家,我从另一个 SO 答案中获取了“echo var_dump”sn-p。我已经改进/测试并编辑了示例!
    猜你喜欢
    • 1970-01-01
    • 2018-10-30
    • 2015-07-13
    • 2011-10-02
    • 2014-10-14
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多