Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'session has already been started by session.auto-start or session_start()' in /usr/include/ZendFramework-1.11.3/library/Zend/Session.php on line 462
每次重新加载页面时都会发生这种情况。我已经做过的事情:
- Ensured that session.autostart=0 in my php.ini
- searched my entire application for calls to session_start(), there are none
placed the following session configuration information in my config.ini:
resources.session.save_path = APPLICATION_PATH "/../data/session" resources.session.use_only_cookies = true resources.session.remember_me_seconds = 864000
removed the above from my config.ini, didn't make a difference
- restarted apache, several times
- finally I only use Zend_Session_Namespace(), which is initialized in my controller's
init()
function.
每次我都会收到这个错误。是什么原因呢?我还有哪些地方没有检查?除了Zend库之外,"session"这个词只在这个控制器中出现:
<?php
class ContributeController extends Zend_Controller_Action
{
private $_session;
private function getSession() {
return $this->_session;
}
public function init()
{
$this->_session = new Zend_Session_Namespace('contribute');
}
public function indexAction()
{
// action body
}
public function addAction() {
$this->getSession()->form = new Application_Form_Contribute_Add_Main();
$this->view->form = $this->getSession()->form;
}
public function importAction() {}
}
?>
这是对我的php.ini文件执行grep搜索的结果,搜索关键词为
^session
:session.save_handler = files
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 4
session.auto_start
,明确为关闭状态。
为什么每次都会出现这个错误?这是怎么回事?
编辑 目前看来,当我试图存储那个表单时,这可能是由于尝试存储太多内容到会话中导致的。当我重写我的代码,只存储简单的数组来概述表单的结构时,错误消失了,并且没有再出现过。如果它重新出现而我不确定它不会,我可能会再次回到这里。
<?php
标签之前,空格或 bom 签名会怎么样? - Dmytro Zavalkin