Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法在Zend_应用程序中使用Zend_Auth和Zend_Session_SaveHandler_DbTable_Php_Zend Framework - Fatal编程技术网

Php 无法在Zend_应用程序中使用Zend_Auth和Zend_Session_SaveHandler_DbTable

Php 无法在Zend_应用程序中使用Zend_Auth和Zend_Session_SaveHandler_DbTable,php,zend-framework,Php,Zend Framework,我正在使用Zend_Session_SaveHandler_DbTable将我的会话存储在数据库中。我的application.ini中有以下内容 resources.session.save_path = APPLICATION_PATH "/../data/sessions" resources.session.use_only_cookies = true resources.session.remember_me_seconds = 864000 resources.session.sa

我正在使用Zend_Session_SaveHandler_DbTable将我的会话存储在数据库中。我的application.ini中有以下内容

resources.session.save_path = APPLICATION_PATH "/../data/sessions"
resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 864000
resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
resources.session.saveHandler.options.name = "session"
resources.session.saveHandler.options.primary.session_id = "session_id"
resources.session.saveHandler.options.primary.save_path = "save_path"
resources.session.saveHandler.options.primary.name = "name"
resources.session.saveHandler.options.primaryAssignment.session_id = "sessionId"
resources.session.saveHandler.options.primaryAssignment.save_path = "sessionSavePath"
resources.session.saveHandler.options.primaryAssignment.name = "sessionName"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "session_data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"
resources.session.saveHandler.options.userIdColumn = "user_id"
会话似乎正确地保存在数据库中

问题是,当我在应用程序中调用Zend_Auth::getInstance()->hasIdentity()时,它最终将调用Zend_会话::start(true),这将导致错误:

致命错误:C:\Program Files(x86)\Zend\Apache2\htdocs\myapp\library\Zend\Session.php(143)中的未捕获异常“Zend\u Session\u exception”,消息为“Session已由Session.auto-start或Session\u start()启动,消息为“Session”:Zend_Session::start(true)#1 C:\Program Files(x86)\Zend\Apache2\htdocs\myapp\library\Zend\Auth\Storage\Session.php(87):Zend_Session\u名称空间->uuu构造('Zend_Auth')#2 C:\Program Files(x86)\Zend\Apache2\htdocs\myapp\library\Zend\Auth.php(91):Zend_Auth\u存储空间->uu构造()#3 C:\Program Files(x86)\Zend\Apache2\htdocs\myapp\library\Zend\Auth.php(141):Zend\u Auth->getStorage()#4 C:\Program Files(x86)\Zend\Apache2\htdocs\myapp\application\modules\default\views\scripts\layout.phtml(29):Zend\u Auth->hasignity()#5 C:\Program Files(x86)\Zend\Apache2\htdocs\myapp\library\Zend\View.php(108):包括('C:\Prog in C:\Program Program Files(x86)\第462行的Zend\Apache2\htdocs\myapp\library\Zend\Session.php

因为Zend_Session_SaveHandler_DbTable已经启动了会话。我认为Zend_Session_SaveHandler_DbTable会自动让Zend_Auth将会话信息存储在数据库中

此处是否缺少某些内容或配置不正确?

在application.ini中设置保存处理程序的文档()不正确

resources.session.save_path = APPLICATION_PATH "/../data/sessions"
resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 864000
resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
resources.session.saveHandler.options.name = "session"
resources.session.saveHandler.options.primary.session_id = "session_id"
resources.session.saveHandler.options.primary.save_path = "save_path"
resources.session.saveHandler.options.primary.name = "name"
resources.session.saveHandler.options.primaryAssignment.session_id = "sessionId"
resources.session.saveHandler.options.primaryAssignment.save_path = "sessionSavePath"
resources.session.saveHandler.options.primaryAssignment.name = "sessionName"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "session_data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"
resources.session.saveHandler.options.userIdColumn = "user_id"
应该是:

resources.session.save_路径= 应用程序\路径“/../data/sessions” resources.session.use_only_cookies= 真的 resources.session.memory_me_秒 =864000 resources.session.saveHandler.class= “Zend_会话_SaveHandler_DbTable” resources.session.saveHandler.options.name =“session”resources.session.saveHandler.options.primary[] =“session\u id”resources.session.saveHandler.options.primary[] =“save_path”resources.session.saveHandler.options.primary[] =“name”resources.session.saveHandler.options.primaryAssignment[] =“sessionId”resources.session.saveHandler.options.primaryAssignment[] =“sessionSavePath”resources.session.saveHandler.options.primaryAssignment[] =“sessionName”resources.session.saveHandler.options.modifiedColumn =“已修改”resources.session.saveHandler.options.dataColumn =“会话\数据”resources.session.saveHandler.options.lifetimeColumn =“寿命”


我已经提交了ZF问题:

你在任何地方调用Zend_会话::start你自己吗?或者这是由ZF类完成的吗?我不是在任何地方手动调用它。它是由Zend_Auth在获取会话存储时调用的。错误消息暗示ZF之外的某些东西正在启动会话-你能检查phpinfo()吗查看是否已将session.auto-start设置为on,或者应用程序中是否有其他可能正在使用会话的PHP脚本?