Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
读取PHP Cookie是不可能的_Php_Cookies_Php 7.0 - Fatal编程技术网

读取PHP Cookie是不可能的

读取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(

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

我使用的代码是:

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!";
}