【发布时间】:2010-03-02 05:19:48
【问题描述】:
所以我使用 Zend_Tool 构建了一个站点模板并将这些参数添加到 application.ini
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.sessionId = "sessionId"
resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "session_data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"
问题似乎不在于会话资源或被调用的 saveHandler,而是似乎 PHP / Zend 甚至没有尝试在数据库中设置我的会话。
除非我删除会话资源所需的选项并且我在不同的 Zend 类中放置检查以查看它们是否正在运行,否则我不会收到任何错误;他们是。
我目前的猜测是我需要更改 php.ini 中的某些内容,以便 Zend_Session 能够覆盖默认会话处理。我正在使用 Zend Server 进行此测试。
回复
我检查了 session.auto_start,它被设置为 0。
我也通过不使用任何数据库处理程序来测试它,而是尝试更改同样失败的路径。
从我的设置可以看出, Zend_Session_SaveHandler_DbTable::__construct 正在被调用,并且我的 resources.db 设置高于我的会话,并且可以用于其他所有操作。
除此之外,我目前的 saveHandlers.options 数据设置不正确,并且我在 StackOverflow 上看到过其他帖子,这些帖子与由于错误的 saveHandler 配置导致的错误有关。
正如我上面所说,我认为这与 PHP 没有调用传递的函数进行会话处理有关。我知道如果您想设置自己的会话管理,您可以连接到这些调用并提供要在每个状态上执行的回调函数(打开关闭读写等)。
我只是对 PHP.ini 设置知之甚少,无法知道是否需要启用特定设置以允许修改会话管理。
【问题讨论】:
标签: zend-framework zend-application