Zend Framework应用程序中的php – “会话已经启动…”异常
尝试加载Zend Framework应用程序时收到此错误:
我使用Zend_Auth和我的本地服务器,它的工作正常,但在生产服务器上,我得到上述错误,但不是每次. 我已经检查了.htaccess文件中的session.autostart设置为0. 如何解决这个错误? 感谢您的回答,但我不会在任何地方使用session_start().只与ZF一起工作 我在共享服务器上有这个问题,在我的本地服务器脚本工作完美. 我用这个代码使用INIT函数: 受保护的$user; public function init() { if(!Zend_Auth::getInstance()->hasIdentity()) { $this->_redirect('auth/login'); }else { $this->user = Zend_Auth::getInstance()->getIdentity(); } } 我已经尝试只在indexAction中设置tis代码,这样其他的操作就不必篡改Auth …但仍然有问题. 我有办法设置一个Action来不检查会话或者这样的事情吗? 贝斯特问候
这是它所说的. Zend_Auth尝试启动一个新的会话,因为Zend_Session :: start()尚未被调用.
问题是在启动会话之前必须调用Zend_Session :: start().但是,因为session.autostart是0(btw这是在php.ini不是.htaccess),你可能已经写了session_start();某处.您不能这样做,因为ZF希望完全控制会话,即您不应该直接访问全局会话变量. 要解决它,搜索您的代码文件的session_start()和 >删除所有的事情,但一个.要注意是否已经启动,请设置error_reporting(E_ALL | E_STRICT); 如果找不到所有的事件,找到一个session_start();这使您的Zend_Auth :: getInstance() – > hasIdentity()解决问题,并使用以下代码片段解决问题 try { Zend_Session::start(); } catch(Zend_Session_Exception $e) { session_start(); } 如果您在整个应用程序中使用ZF,我将与2) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |