php - 在 PHP 中使 file_get_contents() session 感知

标签 php session curl file-get-contents

序言:我的应用程序启用了 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/

相关文章:

php - mysql_fetch_array()期望参数1是给定 bool 值的资源 bool 值

java - 如何访问LogoutSuccessHandler中的 session 属性?

php - 如何在不重新加载页面的情况下保持 session 事件?

http - 有没有办法发现浏览器在我导航时发送的特定 HTTP 请求?

curl - 将 cURL 与两个匹配范围结合使用

php - 在 onchange 事件中更新 css

php - 为什么我们不在Hadoop框架中使用php?

java - Hibernate 单向关联问题

php - 使用 cURL 时数据未发布到 php 文件

php - 如何正确捕获 PHP 异常 (Laravel 5.1)