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