2010-07-24 47 views
5

我一直在网上看了一段时间,HTML5本地存储似乎看起来像对我有用的东西和解决我的问题,我有PHP会话,问题是,他们不一致,即使我设置他们记住我下一次我来到我的主页我被带到登录页面,这不是总是,但经常,PHP会话对我来说证明是不一致的。我如何使用边PHP的HTML5本地存储,用于PHP会话,并存储其他信息,PHP使用

我想知道,如果我可以使用本地存储一致的会话存储,PHP可以使用,所有的例子,我在网上看到使用JavaScript。

回答

9

Localstorage用于保存数据客户端,以便即使客户端处于脱机状态,也可以访问它,在这种情况下,如您所说,使用JavaScript访问它。

PHP会话将信息存储在服务器上。使用localStorage也是一个坏主意,因为它可以被客户端修改,所以客户端可以声称以不同的用户身份登录,这显然是一个安全问题。

您的PHP配置有问题吗?是否有可以更改的PHP会话cookie的超时值?

+0

那么我设置我的会话cookie为604800秒,即7天,如果记住我检查,否则它的常规会话,当浏览器退出时消失,我使用Zend框架,这是我的代码行,如果(!empty($ this-> rememberMe)){ Zend_Session :: rememberMe(604800); } else { Zend_Session :: forgetMe(); } 多数民众赞成在所有这一切,我不知道什么可能会出错,是它的工作,但它不一致,它在几个小时内随机掉落,它停留的最多是2天,它消散即使浏览器窗口打开 – 2010-07-24 12:52:08

+0

正在使用正常的PHP $ _SESSION变量更成功吗?这是浏览器的问题吗? – tjvr 2010-07-24 13:25:43

+0

我没有尝试原始的$ _SESSION,但它不是一个浏览器问题,我的朋友和阿尔法测试人员也注意到同样的问题。 – 2010-07-24 13:27:05

3

编号PHP在服务器上运行,并且无法访问浏览器的本地存储API。

3

我曾经遇到过这种情况,似乎服务器决定随机清理PHP会话。我认为当它遇到内存问题时会这样做......这就是为什么它是随机的并且与超时设置无关。当这种情况发生在你身上时,你是否可以将它与上次(或最后一次会话)登录之间可能发生在Web服务器上的高负载相关联?

无论如何,因为它的所有JavaScript没有理由不能使用PHP来输出你的js,它将获取数据并将数据设置为localstorage。