我需要将我的无框架代码与我全新的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"
在我的bootstrap ini文件中。
答案 0 :(得分:0)
Zend_Session_Namespace只是$ _SESSION的包装器,所以这应该是直截了当的。当你说它不起作用时,$ _SESSION数组是否为空?如果是这样,请确保以相同的方式创建会话(即使用相同的会话存储,cookie名称等)。
答案 1 :(得分:0)
您将会话名称与ZF会话命名空间混淆。
会话名称是指存储在会话cookie中的值,对$_SESSION
的实际内容没有任何影响。
要让您的应用共享会话,他们都需要使用session_name()
或session.name
php.ini指令设置相同的名称。
答案 2 :(得分:0)
我找到了一条出路,Zend Session的会话ID与普通的PHP会话不同,所以我所做的是从zend发送会话ID和请求,并以会话ID开始会话 -
if(isset($_REQUEST['sess_id'])) {
$sess_id = $_REQUEST['sess_id'];
}
session_id($sess_id);
session_start();
它不是很漂亮的代码,但它有效。