簡體   English   中英

在Zend_Application中無法使用Zend_Auth和Zend_Session_SaveHandler_DbTable

[英]Unable to use Zend_Auth and Zend_Session_SaveHandler_DbTable in a Zend_Application

我正在使用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_Session :: start(true),這將導致錯誤:

致命錯誤:C:\\ Program Files(x86)\\ Zend \\ Apache2 \\ htdocs \\ myapp \\ library \\ Zend \\ Session中未捕獲的異常'Zend_Session_Exception',消息為'session已經由session.auto-start或session_start()'啟動.php:462堆棧跟蹤:#0 C:\\ Program Files(x86)\\ Zend \\ Apache2 \\ htdocs \\ myapp \\ library \\ Zend \\ Session \\ Namespace.php(143):Zend_Session :: start(true)#1 C: \\ Program Files(x86)\\ Zend \\ Apache2 \\ htdocs \\ myapp \\ library \\ Zend \\ Auth \\ Storage \\ Session.php(87):Zend_Session_Namespace-> __ construct('Zend_Auth')#2 C:\\ Program Files(x86)\\ Zend \\ Apache2 \\ htdocs \\ myapp \\ library \\ Zend \\ Auth.php(91):Zend_Auth_Storage_Session-> __ construct()#3 C:\\ Program Files(x86)\\ Zend \\ Apache2 \\ htdocs \\ myapp \\ library \\ Zend \\ Auth。 php(141):Zend_Auth-> getStorage()#4 C:\\ Program Files(x86)\\ Zend \\ Apache2 \\ htdocs \\ myapp \\ application \\ modules \\ default \\ views \\ scripts \\ layout.phtml(29):Zend_Auth-> hasIdentity()#5 C:\\ Program Files(x86)\\ Zend \\ Apache2 \\ htdocs \\ myapp \\ library \\ Zend \\ View.php(108):include('C:\\ Prog in C:\\ Program Files(x86)\\ Zend \\ Apache2 \\ 第462行的htdocs \\ myapp \\ library \\ Zend \\ Session.php

因為Zend_Session_SaveHandler_DbTable已經開始了會話。 盡管我Zend_Session_SaveHandler_DbTable將自動使Zend_Auth將會話信息存儲在數據庫中。

我這里缺少什么或配置不正確嗎?

該文檔( http://framework.zend.com/manual/en/zend.application.available-resources.html#zend.application.available-resources.session )對於在application.ini中設置保存處理程序不正確

它應該是:

resources.session.save_path = APPLICATION_PATH“ /../data/sessions” resources.session.use_only_cookies =真正的resources.session.remember_me_seconds = 864000 resources.session.saveHandler.class =“ Zend_Session_SaveHandler_DbTable” resources.session.saveHandler.options.name =“會話” resources.session.saveHandler.options.primary [] =“ session_id” resources.session.saveHandler.options.primary [] =“ save_path” resources.session.saveHandler.options.primary [] =“名稱”資源.session.saveHandler.options.primaryAssignment [] =“ sessionId”資源。session.saveHandler.options.primaryAssignment[] =“ sessionSavePath” resources.session.saveHandler.options.primaryAssignment [] =“ sessionName” resources.session.saveHandler。 options.modifiedColumn =“修改后的” resources.session.saveHandler.options.dataColumn =“ session_data” resources.session.saveHandler.options.lifetimeColumn =“ lifetime”

我已經提交了ZF問題: http : //framework.zend.com/issues/browse/ZF-10471

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM