PHP会话锁定并使用Memcache存储会话

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

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

生成图像的php文件以session_start开始,当使用本地PHP会话处理程序时,似乎都很好。 每个执行都正确完成,可以检索完整的会话数据。

如果我启用memcache来保存会话,则会出现问题。 看起来,每个PHP脚本都是同时执行的,因此当保存到会话中时,只有最后执行的才会真正存储任何数据。

经过对Memcache的进一步调查后,我发现最新的稳定版本不支持会话锁定,只有在3.0.4版本中才会介绍 - http://pecl.php.net/package/memcache/3.0.4

仅在beta版中使用3.0.4是否安全?

2.2.7中有没有其他方法或解决这个问题的方法?

如果您想查看代码示例,请告诉我。

谢谢。


php-memcached扩展支持会话锁定

http://us3.php.net/memcached

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

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


如果设置为使用memcache 2.2.7,则最有可能必须通过在会话中设置一些“session_is_locked”变量,然后在脚本写入会话时释放/取消设置来实现锁定。 然后,在继续写入会话的任何脚本之前,您总是需要检查该变量是否已设置。

链接地址: http://www.djcxy.com/p/68281.html

上一篇: PHP session locking and using Memcache to store sessions

下一篇: Is it recommended to store PHP Sessions in MemCache?