在同一域上的Zend和纯PHP之间共享会话
我有两个这样的文件夹:在同一域上的Zend和纯PHP之间共享会话,php,zend-framework,session,Php,Zend Framework,Session,我有两个这样的文件夹: /公共/zend_应用程序/ /公共/纯php/ Drupal已经安装在root中 现在,我想在第二个路径中创建一个会话,并在zend中使用它。 我尝试了一些不同的方法,但结果失败了 我检查会话\u id和会话\u保存\u路径,这两个路径现在相同 在第二个文件夹中,我有: session_start(); session_id($_COOKIE[PHPSESSID]); $_SESSION[user] = 123; 在第一个例子中: $someNamespace = n
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');
但是我得到了这个错误:(我不能阻止运行会话\u start来逃避这个错误)
Zend_会话_异常:会话已由启动
Zend_session::start()中的session.auto-start或session_start()(第行
462的C:\wamp\www\zend\u app\library\zend\Session.php)
现在我的问题是,我怎样才能与zend分享它?
Zend是否使用特殊处理程序?如何在纯php代码中使用它?看一下:
摆脱session\u id()
,您不需要给PHP提供cookie,它是自动处理的
我刚刚在ZF控制器中尝试过:
$session = new Zend_Session_Namespace('ns');
$session->foo = "bar";
print_r($_SESSION);
这就是我得到的:
Array
(
[ns] => Array
(
[foo] => bar
)
}
因此我现在可以用纯PHP访问$\u会话['ns']['foo']
。我还可以在纯PHP中设置值:
$_SESSION['ns']['baz'] = "quz";
以及ZF中的后续访问:
echo $session->baz; // gives me "quz"
看看:
摆脱session\u id()
,您不需要给PHP提供cookie,它是自动处理的
我刚刚在ZF控制器中尝试过:
$session = new Zend_Session_Namespace('ns');
$session->foo = "bar";
print_r($_SESSION);
这就是我得到的:
Array
(
[ns] => Array
(
[foo] => bar
)
}
因此我现在可以用纯PHP访问$\u会话['ns']['foo']
。我还可以在纯PHP中设置值:
$_SESSION['ns']['baz'] = "quz";
以及ZF中的后续访问:
echo $session->baz; // gives me "quz"
删除
session\u id
调用,它们不应该在那里。此外,还应引用数组索引,例如$\u SESSION['user']
。我建议在访问PHP应用程序后检查会话文件中是否有任何内容。我检查了它,但没有工作。当我尝试“echo session_id();”删除session_id
调用时,它返回不同的值,它们不应该在那里。此外,还应引用数组索引,例如$\u SESSION['user']
。我建议在访问PHP应用程序后检查会话文件中是否有任何内容。我检查了它,但没有工作。当我尝试“echo session_id()”时,它返回不同的值。您还需要确保与我想要的相同,反之亦然,但是此代码不适用于我,我认为问题可能是由安装在root中的drupal cms引起的……您还需要确保与我想要的相同,反之亦然,然而,这段代码不适合我,我认为这个问题可能是由安装在根目录中的drupal cms引起的。。。