【问题标题】:How can i use HTML5 local storage along side PHP, use that for php sessions, and store other information that php uses我如何在 PHP 旁边使用 HTML5 本地存储,将其用于 php 会话,并存储 php 使用的其他信息
【发布时间】:2012-03-28 18:49:29
【问题描述】:

我已经在网上找了一段时间了,HTML5 本地存储对我来说似乎很有用,并且可以解决我在 PHP 会话中遇到的问题,但问题是它们并不一致,即使我将它们设置为在下次我进入主页时记住我,我被带到登录页面,这并不总是,但通常情况下,PHP 会话对我来说是不一致的。

我想知道我是否可以使用本地存储来实现 php 可以使用的一致会话存储,我在网上看到的所有示例都使用 javascript。

【问题讨论】:

    标签: php javascript html session local-storage


    【解决方案1】:

    Localstorage用于客户端保存数据,这样即使客户端离线也可以访问,在这种情况下,如您所说,使用JavaScript访问它。

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

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

    【讨论】:

    • 好吧,我将会话 cookie 设置为 604800 秒,如果选中记住我,那就是 7 天,否则它是一个常规会话,在浏览器退出时消失,我使用 Zend 框架,这是我的行它的代码, if(!empty($this->rememberMe)) { Zend_Session::rememberMe(604800); } else { Zend_Session::forgetMe(); } 这就是它的全部,我不知道可能出了什么问题,是的,它确实有效,但它并不一致,它在几个小时内随机脱落,最长停留时间为 2 天,即使浏览器窗口已打开
    • 使用普通的 PHP $_SESSION 变量是否更成功?是浏览器的问题吗?
    • 我没有尝试原始的 $_SESSION,但这不是浏览器问题,我的朋友和 alpha 测试人员也注意到了同样的问题。
    【解决方案2】:

    没有。 PHP运行在服务器上,无法访问浏览器的本地存储API。

    【讨论】:

      【解决方案3】:

      我遇到过这种情况,似乎服务器决定随机清理 PHP 会话。我认为它在遇到内存问题时会这样做......这就是为什么它是随机的并且与超时设置无关。当这种情况发生在您身上时,您能否将其与您上次登录(或上次举行会话)期间网络服务器上可能发生的高负载联系起来?

      无论如何,由于它都是 javascript,所以你没有理由不能使用 PHP 来输出获取和设置数据到本地存储的 js。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-15
        • 1970-01-01
        • 2012-09-09
        • 1970-01-01
        相关资源
        最近更新 更多