我有两个这样的文件夹:
Drupal已经安装在root中。
现在,我想在第二个路径中创建一个会话并在zend中使用它。 我尝试了一些不同的方法来做到这一点,但失败就是重新开始!
我检查 session_id 和 session_save_path ,两者现在都是一样的。
在第二个文件夹中我有这个:
session_start();
session_id($_COOKIE[PHPSESSID]);
$_SESSION[user] = 123;
在第一个:
$someNamespace = new Zend_Session_Namespace('ns');
//......
session_id($_COOKIE[PHPSESSID]);
print_r($_SESSION);
但它返回空数组!
我也在第二个文件夹中尝试了这个:
set_include_path ( $zend_path );
include_once $zend_path . '/Session.php';
$user = new Zend_Session_Namespace('user');
但是我收到了这个错误:(我无法阻止运行session_start来逃避此错误)
Zend_Session_Exception:会话已经启动了 Zend_Session :: start()中的session.auto-start或session_start() 46:C:\ wamp \ www \ zend_app \ library \ Zend \ Session.php)。
现在我的问题是我如何与zend分享? Zend是否使用特殊处理程序?我如何在纯PHP代码中使用它?
答案 0 :(得分:1)
看看:
http://framework.zend.com/manual/1.12/en/zend.session.basic_usage.html
$myNamespace = new Zend_Session_Namespace('myNamespace');
// $myNamespace corresponds to $_SESSION['myNamespace']
摆脱session_id()
,你不需要给PHP提供自动处理的cookie。
我刚在ZF控制器中试过这个:
$session = new Zend_Session_Namespace('ns');
$session->foo = "bar";
print_r($_SESSION);
这就是我的结果:
Array
(
[ns] => Array
(
[foo] => bar
)
}
所以我现在可以在纯PHP中访问$_SESSION['ns']['foo']
。我也可以在纯PHP中设置值:
$_SESSION['ns']['baz'] = "quz";
后来在ZF访问:
echo $session->baz; // gives me "quz"