我正在尝试添加Captcha作为大型申请表的一部分。
收到以下错误:
session has already been started by session.auto-start or session_start()
如何在幕后使用它来解决这个问题:
// Process metadata specific only to this namespace.
Zend_Session::start(true); // attempt auto-start (throws exception if strict option set)
我在Controller中实例化它:
$this->view->captcha = new Zend_Form_Element_Captcha('captcha', array(
'captcha' => array(
'captcha' => 'Figlet',
'wordLen' => 6,
'width' => 300,
'height' => 100,
)
)
);
在视图中:
<?php echo $this->captcha; ?>
我无法篡改当前会话,因为它掌握了大量信息。有解决方法吗?
帮助将不胜感激。
答案 0 :(得分:1)
在这种情况下你可以做一件事,尝试以下面的方式在bootstrap文件中启动Zend session
并在注册表中设置该会话对象:
protected function _initSession() {
$userSession = new Zend_Session_Namespace('user_session');
Zend_Registry::set('userSession', $userSession);
}
在此之后,您将能够从注册表中获取会话对象。
$userSession = Zend_Registry::get('userSession');
由于您将在Zend Session
之前启动session_start()
,因此可能不会产生任何错误。