1

我无法找到任何关于如何提取第一次访问页面时由 php 自动插入的会话数据的明确信息。

我使用 application.ini 将会话存储到数据库中的常用方法。所以现在,我需要获取一个未登录的人的 sessionid。我使用什么命名空间来获取数据?这是我的application.ini

resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"

resources.session.saveHandler.options.name = "sessions"
resources.session.saveHandler.options.primary = "id"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"

所以现在,我看到当一个人访问该站点时,它会添加一个会话,但是我如何才能访问该会话数据?

我只知道在用户登录时如何设置会话命名空间,但是当没有登录时,我不会手动创建会话或任何东西,所以我迷路了。

我无法弄清楚如何以更清晰的方式提出这个问题。

寻找类似的东西

$NonLoggedInSession = new Zend_Session_Namespace('Zend_Session_namesapce(?)');
$NonLoggedInSession -> sessionid // should return something like 21hir1GI31!1gotig1 (the session id it created in the database)
4

1 回答 1

1

Zend_Session::getIterator()应该返回一个包含所有对象的可迭代Zend_Session_Namespace对象。

Zend_Session::getId()可能是您正在寻找的,这将返回当前会话 cookie 的值,至少在我的应用程序中是这样。

检索该会话 cookie 的名称Zend_Session::getOptions('name')

请记住,我用来测试这些调用的应用程序没有明确设置任何会话 cookie。我确实使用 Zend_Session_Namespace 在应用程序的各个点保存数据。因此,任何会话 cookie 集都是 Zend 框架默认值的结果。

返回到我的应用程序的值与我在 Firefox 中查看 cookie 时出现的值相匹配。

于 2012-09-09T08:32:09.573 回答