以编程方式请求的页面中的会话


Sessions in programmatically requested pages

在对这个问题做了一些研究之后,我没有找到任何令人满意的解决办法。

问题是:我正在以编程方式执行GET请求。请求本身运行良好,所请求的页面也运行良好。在执行请求页面内的任何其他操作之前,我需要检查有效的登录,因此我已经发送了会话cookie来接收会话的ID,这也可以正常工作。但是一旦调用*session_start()*,请求就超过了60秒的执行时间限制。但是,直接访问请求的页面可以正常工作。

这可能是一个重要的注释:请求页面也使用会话进行相同的检查。

我想要请求的页面是"远程"/"独立"/无论你想叫它的原因是,我想让它通过AJAX访问。我想只要包含文件并检查文件是否被直接调用就可以了,但是我现在已经这样做了,并且几乎对它感到满意。

我现在的问题是:谁能告诉我为什么session_start而崩溃我的脚本?有人知道这个的补丁吗?

PHP中的会话是阻塞的,这意味着如果您在使用相同会话的同一主机上运行两个请求,其中一个将被阻塞(等待),直到第一个完成。

在您的情况下,如果您的编程GET请求使用客户端的会话ID,则可能是两个脚本相互阻塞-并且因为一个调用另一个,"子"脚本将无限期地等待。

在不了解您的项目的情况下很难提出解决方案,但我觉得使用客户端的会话ID进行程序化GET请求是不对的。也许你可以改变这种行为。