2012-12-13 111 views
0

我在会话中存储了一些用户信息,所以我不必每次查询数据库的每次用户更改页面。如果此用户使用多个浏览器/计算机并且旧版会话现在具有无效数据会怎么样?我如何让它们保持同步?注销用户的旧会话没问题,但我想尽可能避免将会话信息写入数据库。PHP会话 - 每个用户多个会话 - 如何同步?

我意识到这是一个相当普遍的问题,但我不能在Google搜索之后拿出正确的东西。

回答

1

将会话存储在每个特定用户的数据库中。

然后每次用户访问您的网站(不管哪个浏览器) - 所有的信息总是在一个位置,你不必做任何奇特的'同步'的东西。

注意:他们仍然必须从每个不同的浏览器“登录”。在登录过程中,您需要检查该用户的数据库中是否存在会话。如果确实如此,则需要将此新登录附加到该会话(而不是创建一个新登录)。

+0

除了将其存储在数据库中,没有其他方法,对吧? – user1831003

+0

好吧 - 你不能将会话存储在每个浏览器的cookie中 - 因为你无法可靠地“同步”数据。所以它需要是文件/数据库存储 - 即服务器上的集中位置。 – Laurence

+0

您可以序列化会话并将其存储在文件中。但我总是将数据库保存到文件中。它更稳定 – MAXIM