2012-04-25 77 views
3

我对JavaScript和HTML5的本地存储使用非常陌生。我目前在我的网站中使用PHP会话,并且希望移到localstorage,因为此时我正在使用cookie来续订会话。本地存储会话

我明白,localstorage是一个客户端功能,而不是像PHP那样的服务器端,所以这使得我很难找出如何解决这个问题。

我想要做的就是设置localstorage值(我已经完成了),但我需要能够将它们传回到PHP中,以便将它们重新建立为SESSION变量(我必须将其作为我的站点一次有超过100页和超过50个会话变量,所以我想简单地使用本地存储来重新生成会话变量而不是cookies。

如果有人能帮助我解决这个问题,我将非常感谢。你

+2

你确定你想要?本地存储可以由客户轻松更改。不要依赖客户告诉你设置会话的内容。改用数据库。 – 2012-04-25 04:52:20

+0

我同意@Truth--我没有看到这个目的,或者你认为通过这样做可以获得什么,而不是让客户端篡改数据? – Repox 2012-04-25 05:28:28

回答

2

你将需要使用ajax或某种形式的方式来联系你的服务器来允许这种访问本地存储的唯一方法是使用客户端脚本(javascript),这反过来可以d与它的东西。我不知道Ajax,但你应该看看。我也同意@Truth,本地存储很不错,特别是如果你不想使用cookie,但唯一的好处是用户可以离线使用本地存储。所以你们真的不应该这样做。如果您使用cookies,您可以通过脚本访问该信息。另一方面,您可以使用本地存储替代在用户浏览器上禁用Cookie。

+0

我有用户抱怨说,“添加到主屏幕”web应用程序不会让他们在我们的PHP.ini和cookie限制中保持设定时间的登录状态。通过网站它确实工作,但我的客户坚持webapp遵循这些限制以及从谷歌搜索几个小时,我发现很多在我的位置选择使用localstorage ... @truth - 你说使用数据库?我正在使用mysql在登录时检查用户的凭据,我如何使用数据库保持会话存活?它会在webapp场景中工作吗?你有我对这个可能的解决方案很感兴趣。请分享。 :) – devfunkd 2012-04-26 03:05:03

+0

我真的不知道为什么cookie设置不正确,但从我所知道的情况来看,您应该始终自己设置。至于如何保持与cookie和数据库的会话,创建一个很好的散列随机字符串,当用户想要说登录时,您可以将它放入数据库和cookie中。如果它们匹配,那么您就很好。使用本地存储,同样的事情,除了再次,您需要使用Ajax或其他形式的脚本与服务器通信,以便与服务器通信以查看用户是否具有随机散列字符串。注意可能的cookie/localstorage盗窃。 – Andy 2012-04-26 03:51:41

+0

我正在设置cookie,它的一切工作方式应该在浏览器中。只要你“添加到主屏幕”并通过这种方式加载,它会忽略cookie。从我在其他论坛上阅读的内容以及这里的常见问题和本地存储是解决方法。随机哈希会成为PHP SESSION ID吗? – devfunkd 2012-04-26 04:02:16