使PHP知道file_get_contents()会话
作者:互联网
前言:我的应用程序启用了mod_rewrite功能,并且我有index.php页面,该页面根据Request_URI下载各种页面并将其打印为页面内容.
问题:File()或File_get_contents()函数非常适合下载我的其他应用程序页面.但是,一旦我尝试使用它来下载启用了会话的页面,我就会开始遇到问题.
主要问题是,当我尝试将现有的会话ID传递到我下载的页面的网址时,例如
$url = "http://localhost/EmplDir/AdminMenu.php";
return implode('',file($url. "&" . session_name() . "=". session_id()));
我的页面永远不会加载(或file()永远不会加载内容).
我怀疑我应该在这里使用curl函数,但是它有太多选择.
我的建议是使用卷曲选项使可下载页面了解当前PHP会话将是有帮助的.
附言以上对于Windows和Linux似乎都是正确的.
解决方法:
您没有使用?将查询字符串与URL的其余部分分开.
尝试
return file_get_contents($url. "?" . session_name() . "=". session_id());
您还需要确保服务器未使用session.use-only-cookies配置设置.
没有理由为什么脚本不应该看到查询字符串并对其执行操作,您可以通过编写一个只执行var_dump($_ GET)的脚本并如上所述请求脚本来说服自己.如果在输出中看到查询参数,则只需要调试脚本以查看为什么在给定会话ID的情况下其行为不符合预期.
注意:我假设您想从与您的应用程序相同的域中请求文件,否则将会话ID用于远程站点没有多大意义.
标签:file-get-contents,curl,session,php 来源: https://codeday.me/bug/20191024/1921496.html