问题标签 [zend-session]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
459 浏览

php - Zend_Session 丢失数据...但是为什么呢?

我对 Zend_Session 很陌生。我确实有一个 Zend Framework 应用程序正在运行;现在我想为它添加一些“功能”。其中一项功能需要会话中包含的一些数据,因此它存储在用户将访问的所有站点上。

在我的引导程序中,我有

在我的模型中,有一个函数可以将给定关键字的数据存储到 $_SESSION 中:

如果未设置会话密钥(带有关键字),则仅将新数据设置为会话。我用zend调试器检查过,一切运行良好。

现在,当我第一次调用页面时,一切都运行良好。当我重新加载页面(或移动到另一个页面)时,会话中的值消失了。所以,准确地说,就在那里,$_SESSION 数组是(例如)20 个大小的条目。有一个条目,但它为空。

当我打电话时:

我得到:

所以,它就在那里,它扼杀了我的价值。

当我使用简单的 session_start() 时,让它运行的神奇巫术是什么?

0 投票
1 回答
887 浏览

zend-framework - 在 session 中保存 url 参数

我有这样的路线:

我网站上的大多数链接都需要这两个参数(州和城市),比如

我需要检查用户访问我的网站时是否已经设置了这两个参数。如果没有,我会在他选择城市时将他重定向到特定页面。

我相信实现这一目标的最佳方法是创建一个我已经开始的插件。

问题是我不知道该怎么做,如果这真的是最好的方法。

这是正确的路径吗?如果没有,我该怎么做才能解决我的问题?如果是,这个插件还需要什么?

我希望我说清楚了。我很感激任何帮助。

谢谢你。

0 投票
1 回答
1374 浏览

zend-framework - 使用 Zend_Session_Handler_DbTable 时的垃圾收集

我正在尝试使用 Zend_Session_Handler_DbTable 将我的会话数据保存到数据库中,但据我所知,过期的会话永远不会从数据库中删除。

我可以看到一个 cron 作业正在运行(ubuntu),它删除了基于文件的会话,但我找不到 gc 如何处理保存在 db 中的会话。

0 投票
1 回答
8116 浏览

php - 如何从 Zend_Auth 会话中获取会话 ID?

使用默认的Zend_Auth会话存储(PHP 会话),它创建一个会话 ID 并将其放入 cookie 中。如果我想获取经过身份验证的用户的用户名(身份),该Zend_Auth::getInstance()->getIdentity()方法会得到它。但是,我想获取用户的会话 ID。我可以通过查看$_COOKIE或使用来了解它,session_id()但这似乎很老套,如果我离开 PHP Session 存储,它可能会损坏吗?那么获取 Zend_Auth 会话的当前会话 ID 的最佳方法是什么?

0 投票
1 回答
462 浏览

php - 离开网站时如何取消设置会话但刷新时不设置?

当用户离开网站时,我需要让我的 Web 应用程序销毁/取消设置 Zend_Auth 会话:例如,当用户从 myapp.com 导航到 google.com 时,当他们回来时会话不再设置?

最好允许刷新而不取消设置(但不是必须的,因为必须应用第一部分)。

以前有人有过这样做的经验吗?

0 投票
0 回答
78 浏览

zend-framework - Zend中的随机图片

所以,我对 Zend Framework 和 stackoverflow 很陌生(虽然我在这里读了很多书),所以请温柔一点!

我正在尝试做的是 IAPS 测试的数字版本(根据他们的兴奋和感觉对图片进行评分)。我有三组图片,每组包含 72 张图片。现在,如果一个人开始在线测试,则应随机分配一组(例如,将一组 1 分配给 A 人)。
此外,应该随机呈现集合中的每张图片。图片呈现后,该人必须对图片进行两次评分(评分等级1到3,保存到数据库中)。呈现图像和两个评分的整个过程应限制在 12 秒内。

看起来是这样的:

[SET 1] & [SET2] & [SET3]
取随机集(注意:只应呈现一组)

[PIC 1] & [PIC 2] & [PIC3] & ...
随机拍照(注意:所有 72 张图片应以随机顺序呈现)

[PIC 1] -> 评分 1 -> 评分 2
|... .............12 秒 ....................|


我不确定这是否可以用 Zend 进行编码。我正在考虑使用 Zend_Session 将评级存储在会话中并在最后将其保存到数据库中,但我不确定这是否是最好的方法(安全问题?)。更让我头疼的是图片的呈现和两个评分的时间限制在 12 秒。

我很高兴听到想法和想法。

ps:我使用的是 Zend Framework 1.11.12 版本
编辑:刚刚取出了同样分布的集合。大数法则说,它们将与大量样本平均分配......

0 投票
2 回答
866 浏览

php - Zend - 外部注销/结束其他会话

我正在使用 Zend Framework 编写一个应用程序,我需要能够按需注销用户。该应用程序将收到一个请求,其中包含映射到 SessionIds 的某种 ID,它将结束/过期这些会话。我知道如何进行映射,但是然后呢?如何结束具有其 ID 的会话?

我看到有Zend_Session::setId(),但我认为这不是我想做的。

我有一个想法,只是删除与给定会话关联的文件,因为它们被命名为 sess_[sessionId],但我想这是一种丑陋的方法。

0 投票
1 回答
769 浏览

zend-framework - Zend Session 保存在正确的路径中,但 gc 尝试在其他地方清理

我的项目在 ZF 1.11 下运行,它随机抛出此错误:

如您所见,它尝试清除 /tmp 目录中的会话,但在我的 application.ini 中,配置将 session.save_path 设置为 APPLICATION_PATH "/../data/session"(ZF 默认配置),并保存会话在这个路径中,但是当 gc 运行时,它会尝试清理错误的目录

这是我的 application.ini 会话配置:

http://codepad.org/mJUyipG0

顺便说一句,/data 和 /data/session 权限设置为 777

有任何想法吗 ?

0 投票
1 回答
269 浏览

php - 如何将 PHP 代码转换为 Zend Framework 2

可能重复:
如何在 zf2 中使用 Zend\Session?

我开始ZF2但我无法继续,因为我不了解官方ZF2文档。

我运行版本 2.0.4。

我怎样才能简单地将这个 PHP 代码翻译成 ZF2?:

包含.php

索引.php

其他页面.php

我试过了Zend\Authentification\Storage\SessionZend\Session但没有任何效果。

0 投票
1 回答
977 浏览

php - 如何解决 Zend\Session 的构造函数注入?

Zend Framework 2 中 Session 组件的体系结构还没有记录,我在理解它的实际用途时遇到了一些麻烦(例如,与非常直观的 Symfony Session 相比)。

重要部分的简短摘要:

  • Zend\Session\Storage\SessionStorage映射和替换$_SESSION超全局
  • Zend\Session\SessionManager是管理存储、会话 cookie、会话配置、会话验证等的门面。
  • Zend\Session\Container是旧的替代品Session_Namespace,不同的 Container 共享一个 Manager 实例(通过静态字段)。

没有代表命名空间(容器)集合的组件,因此无法使用诸如“issetNamespaceX”、“unsetNamespaceX”等方法。没有人(包括管理器和存储)知道容器是否存在是任何,如果,多少有什么名字。

Matthew Weier O'Phinney 对这种情况的解释如下:

Container 是一个特殊的类,用于处理当前 Storage 实例的隔离段。[...] 如果有的话,存储适配器将包含容器,而不是管理器。但是,我们还希望允许更多基本的存储使用,这使得Container 与 Storage 正交,并解释了 has-a 关系的差异。

关于正确的依赖注入,我看到了这个解决方案的几个实际问题。显然,Manager 可以被视为具有相当长生命周期的服务,因此有资格进行构造函数注入。不幸的是,管理器对容器一无所知,这迫使我也注入容器(不好,因为寿命很短并且占用了插槽),编写我自己的附加功能以使存储或管理器感知容器(应该是框架功能)或在我的消费类中创建容器(我显然想避免)。

所以 Zend 解决方案对我来说似乎并不实用。如果我想使用 Manager、FlashMessenger 和一个额外的容器,我需要注入 4 个(四个!)类。如果我对 Symfony 会话做同样的事情,我只需要注入 1(一个)类。

此外,容器不符合注入条件,因为它们可能是短暂的运行时对象,在脚本执行期间的给定点可能存在也可能不存在。对于 Symfony Session,这不是问题,因为 Session 知道它的包(容器),对于 ZF2,这是一个问题,因为 Manager 不知道容器。


主要问题:在实践中我应该如何将 Zend\Session 与容器一起使用?

附加问题:是否有充分的理由不提供类似于ZF1或例如类似于Symfony SessionBag的真正命名空间功能?