gpt4 book ai didi

PHP session 锁定和使用Memcache存储 session

转载 作者:行者123 更新时间:2023-12-05 06:45:49 26 4
gpt4 key购买 nike

我有一个标准的 html 页面,其中包含一些 img 标签,每个标签都指向我们服务器上的一个 php 文件。加载 php 文件时,它会在生成图像之前将一些数据保存到 session 中。

来自每个脚本的 session 中的这些数据随后在我们的应用程序中进一步用于其他脚本。

生成图像的 php 文件以 session_start 开头,当使用 native PHP session 处理程序时,一切似乎都运行良好。每次执行都正确完成,并且可以检索完整的 session 数据。

如果我启用内存缓存来保存 session ,那么问题就会开始出现。看起来每个 PHP 脚本都是同时执行的,因此在保存到 session 时,只有最后执行的脚本才真正存储任何数据。

进一步调查Memcache后发现最新的稳定版不支持session locking,只有3.0.4才引入这个- http://pecl.php.net/package/memcache/3.0.4

当 3.0.4 仅处于测试阶段时使用它安全吗?

在 2.2.7 中是否有任何替代方案或解决此问题的方法?

最佳答案

php-memcached 扩展支持 session 锁定

http://us3.php.net/memcached

http://us1.php.net/manual/en/memcached.sessions.php

memcache 和 memcached 扩展在语法上看起来很相似,因此尝试一下可能不会太让人头疼。 (memcached 有一个稳定的版本 2.1.0 发布于 2012-08-07)。


如果您打算使用内存缓存 2.2.7,您很可能必须通过在您的 session 中设置一些“session_is_locked”变量然后在脚本完成写入 session 时释放/取消设置来实现锁定。然后,在继续写入 session 的任何脚本之前,您始终需要检查是否设置了该变量。

关于PHP session 锁定和使用Memcache存储 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21044608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com