【发布时间】:2013-04-04 15:18:47
【问题描述】:
我有两个这样的文件夹:
- /public/zend_app/
- /public/pure_php/
并且 Drupal 已经安装在根目录下。
现在,我想在第二个路径中创建一个会话并在 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() (行 C:\wamp\www\zend_app\library\Zend\Session.php 的 462)。
现在我的问题是如何与 zend 共享它? Zend 是否使用特殊处理程序?如何在纯 php 代码中使用它?
【问题讨论】:
-
删除
session_id调用,它们不应该在那里。您的数组索引也应该被引用,例如$_SESSION['user']。我建议在访问您的 PHP 应用程序后检查会话文件中是否确实包含任何内容。 -
我检查过了,没用。当我尝试“echo session_id();”时它返回不同的值
标签: php zend-framework session