d-_*_*_-b 1 php session zend-framework
我正在制作一个"模块",它被包含在另一个不相关的PHP应用程序中.在我的"模块"中,我需要使用会话.但是,我得到'会话已经开始......'例外.我的"模块"所包含的应用程序正在启动会话.如果我无法在此应用程序中禁用会话,我有哪些选择?我想使用Zend_Session,但乍一看它似乎是不可能的.但是,也许有另一种方式?有任何想法吗?
谢谢!
使用PHP的会话实现,一次只能有一个会话.您可以session_id用来检查当前是否有会话:
if (session_id() === '') {
// no current session
}
Run Code Online (Sandbox Code Playgroud)
现在,如果已经有一个活动会话,您可以结束它session_write_close,更改会话ID的名称session_name以避免冲突,启动会话,并在完成时恢复旧会话:
$oldName = session_name();
if (session_id() !== '') {
session_write_close();
}
session_name('APPSID');
session_start();
// your session stuff …
session_write_close();
session_name($oldName);
session_start();
Run Code Online (Sandbox Code Playgroud)
唯一的问题是PHP的会话实现只会将上次启动的会话的会话ID发送回客户端.因此,您需要自己设置透明会话ID(尝试output_add_rewrite_var)和/或会话cookie(请参阅参考资料setcookie).
| 归档时间: |
|
| 查看次数: |
1028 次 |
| 最近记录: |