我有以下代码:
$location .= 'red=no&'.session_name() . "=". session_id();
$content = file_get_contents($location);
echo $content;
如果我运行它,注意会显示在我的浏览器中。但是,如果我按以下方式修改它:
$location .= 'red=no';
$content = file_get_contents($location);
echo $content;
一切正常(我在浏览器中看到内容)。
同样奇怪的是,如果我从第一个示例(url)显示$ location变量的值并手动将其粘贴到浏览器的地址行中,我确实看到了内容。因此,我的浏览器可以使用此网址而file_get_contents
不能。
有人知道如何解释它吗?
答案 0 :(得分:0)
这没有意义。如果文件是远程的,并且$ location是一个url,那么我认为正在发生的是远程服务器没有通过$ _GET获取会话ID(或者它拒绝服务器发出请求时服务器给出的那个)或者某些人。)
如果文件是本地的,那么问题是你显然有一个名为 red = no& whatever = c8ec2afe8bb7388175f2065f1cb0c868 的文件。实际上,在这种情况下,我怀疑该文件可能被命名为 red = no 。如果没有,&符号会把东西扔掉。逃避它,你没事。
或者不要使用这些可怕的文件名。