从服务器本身执行时,我遇到 session_start()的问题。
整个问题是我有一个WordPress和eShop。两者都在同一个域上工作并具有相同的会话。当我从eShop转到WordPress时会话可用,但我需要从eShop加载一些组件才能加载到WordPress中。
由于eShop上有Smarty引擎,我需要通过 file_get_contents 获取模板,因为它不是请求,我需要指定eShop的会话ID来识别我。
但是当我用指定的ID调用该函数时,请求只是冻结,任何想法?
答案 0 :(得分:1)
问题在于安全处理程序。当我将会话ID提取到eShop时,它必须创建一个具有指定ID的新会话,但会话仍然由WordPress打开,这导致文件锁并在尝试访问eShop中的会话文件时冻结在服务器上。
所以我使用了以下解决方案:您需要关闭会话文件,以便eShop可以使用 session_write_close 开始使用会话文件。
<?php
// close session file
session_write_close();
// build the request url with session_id
$load_basket = $this->_eshop_url .'&force_session='.session_id();
// fetch the output of eShop template
echo file_get_contents($load_basket);
?>