读取PHP Cookie是不可能的
我试图读取PHP cookie,但我无法读取,尽管我能够在Chrome控制台中看到它。我自己用调试方法找到了解决方案,但如果其他人也有同样的问题,为了节省您的时间,我会自己回答这个问题 我使用的代码是:读取PHP Cookie是不可能的,php,cookies,php-7.0,Php,Cookies,Php 7.0,我试图读取PHP cookie,但我无法读取,尽管我能够在Chrome控制台中看到它。我自己用调试方法找到了解决方案,但如果其他人也有同样的问题,为了节省您的时间,我会自己回答这个问题 我使用的代码是: if(!empty($_COOKIE['my.cookie'])) { echo "cookie value: ".$_COOKIE['my.cookie']; } // fallback else { echo "cookie not set!"; } 使用var_dump(
if(!empty($_COOKIE['my.cookie'])) {
echo "cookie value: ".$_COOKIE['my.cookie'];
}
// fallback
else {
echo "cookie not set!";
}
使用var_dump()函数帮助我识别问题,因为cookie名称是由PHP自动更改的。(可能是一个bug,或者某种已知的限制——我的版本是PHP7.0.33。)
这导致网页上打印了cookie列表,cookie名称从“my.page LANG”更改为“my_page-LANG”
所以我重新命名了我的饼干,我很好:
if(!empty($_COOKIE['my_cookie'])) {
echo "cookie value: ".$_COOKIE['my_cookie'];
}
// fallback
else {
echo "cookie not set!";
}
这是有明确记录的:另外,在不以任何方式验证cookie值的情况下,这可能会导致路径遍历攻击。但网站语言切换首先不应通过cookie处理-搜索引擎机器人等通常不接受cookie,因此,您的不同语言内容甚至可能无法正确索引。语言是属于URL的信息,而不是cookie。@Daan:我怎么知道cookie名称等于变量名?链接页面上没有记录这些内容。否则我会立即同意。@Dharman:我不是PHP专家,我从另一个SO答案中提取了“echo var_dump”片段。我已经改进/测试并编辑了样本!
if(!empty($_COOKIE['my_cookie'])) {
echo "cookie value: ".$_COOKIE['my_cookie'];
}
// fallback
else {
echo "cookie not set!";
}