0

我需要将我的无框架代码与我全新的 Zend 应用程序集成。但是他们需要共享一个会话。我面临的问题是 - 当我使用非 zend php 设置会话变量时

$_SESSION['MyApp']['user']=$user;

我无法从 Zend 应用程序访问会话,我都尝试了 -

print_r($_SESSION['MyApp']['user']);

$myAppSession = new Zend_Session_Namespace('MyApp');
print_r($myAppSession->user);

不工作。信息 - 我有

resources.session.name = "MyApp"

在我的引导 ini 文件中。

4

3 回答 3

0

Zend_Session_Namespace 只是 $_SESSION 的包装器,所以这应该很简单。当你说它不起作用时, $_SESSION 数组是空的吗?如果是这样,请确保您以相同的方式创建会话(即使用相同的会话存储、cookie 名称等)。

于 2011-05-13T13:16:32.587 回答
0

您将会话名称与 ZF 会话名称空间混淆了。

会话名称是指存储在会话 cookie 中的值,对$_SESSION.

为了让您的应用程序共享会话,它们都需要使用 php.ini 指令设置相同的session_name()名称session.name

于 2011-05-13T13:24:56.670 回答
0

我找到了一条出路,Zend Session 的会话 id 与普通 PHP 会话不同,所以我所做的就是从 zend 发送会话 id 并使用该会话 id 启动会话 -

    if(isset($_REQUEST['sess_id'])) {
        $sess_id = $_REQUEST['sess_id'];
    }

    session_id($sess_id);
    session_start();

它不是漂亮的代码,但它可以工作。

于 2011-07-04T07:51:15.973 回答