在对这个问题进行一些研究后,我找不到任何令人满意的修复。
问题是: 我正在以编程方式执行GET请求。请求本身工作正常,请求的页面也是如此。我需要在请求的页面中执行任何其他操作之前检查有效的登录,因此我发送了会话cookie以接收会话的ID,这也可以正常工作。但是一旦我调用* session_start()*,请求就会超过60秒的执行时间限制。但是,直接访问请求的页面效果很好。
这可能是一个重要的评论: 请求页面也使用会话进行相同的检查。
我希望所请求的页面是“远程”/“独立”/但是你想要调用它的原因是我想让它也可以通过AJAX访问。我想简单地包含文件并检查文件是否直接调用也会起作用,但我现在已经这样做了,并且对它几乎感到满意。
我现在的问题是:有人可以告诉我为什么session_start会破坏我的脚本吗?有人知道这个补丁吗?
答案 0 :(得分:2)
会话在PHP中是阻塞的,这意味着如果您在使用相同会话的同一主机上运行两个请求,其中一个将被阻止(等待),直到第一个完成。
在您的情况下,如果您的程序化GET请求使用客户端的会话ID,则可能是两个脚本相互阻塞 - 并且因为一个正在调用另一个脚本,“子”脚本将无限期地等待。
在不了解您的项目的情况下很难建议解决方案,但我觉得用客户端的会话ID制作程序化GET请求是不对的。也许你可以改变这种行为。