2011-04-14 84 views
2

如果已经发布此问题,请致歉。在搜索相关问题时,我没有找到我正在寻找的答案。PHP:我不能让用户在多个浏览器上登录网站

我有一个我刚刚创建的登录系统,它与Facebook一起工作。一旦用户使用他们的Facebook信息登录,然后我在他们的数据库中创建配置文件。我成功登录后开始会话,并将该用户的ID存储在该会话中。到目前为止,这个设置工作得很好,但是我最近注意到,如果我尝试在另一个浏览器(1xChrome,1xIE,等等)上登录该网站,同时它不会让我。我该如何解决这个问题?我希望用户不仅能够同时登录到同一台计算机上的多个浏览器,但是如果他们在家中保持登录状态,仍然可以从另一台计算机登录。

任何帮助,非常感谢!

谢谢!

编辑:是的,我有兴趣允许用户登录到多个浏览器,如1xChrome,1xIE,1xSafari等。我应该更清楚。抱歉。

+1

您是否使用用户ID创建会话?如果是这样,那会发出警告,但这可能不是问题的原因。 – rockerest 2011-04-14 22:22:30

+0

那么我是在facebook数据库中存储的,但自动递增的主键ID是我正在使用的。我会做一个session_start(),然后创建一个$ _SESSION ['userid']并存储用户的id。不知道这是否是正确的方式,如果没有请解释,因为我只是做了这个,因为我很新。 – daveomcd 2011-04-14 22:27:00

+1

这似乎很好。我担心你在用他们的ID命名会议。像'session_name($ id); session_start();'非常糟糕的主意。但将它存储在会话中似乎很好。 – rockerest 2011-04-14 22:28:30

回答

2

您可能想对曲奇做更多的研究。

您的用户不应该能够使用同一个浏览器的多个实例(例如,4个Internet Explorer窗口)进行登录。

你的用户应该能够使用不同的浏览器(即1×IE, 1个火狐浏览器,1个Chrome浏览器或任何上述浏览器+ 1个启用私密浏览/隐身/等)。

原因是因为cookie存储是不同的。您可以在技术上使用不同的Firefox配置文件,我认为...

...但回到你的问题 - 你可能想了解更多关于Cookies及其在会话中的功能。

1

该会话不应被终止,除非您自己执行检查并终止它。一个问题可能是实际的Facebook登录。如果Facebook不允许多次登录(我认为它没有),你的第一个浏览器会话会得到一个过期的会话(如果你检查Facebook登录状态),这可能会导致你的脚本刷新第一个客户端的状态(再次,如果你像那样处理它)。

+0

Facebook的oauth与Google的有很大不同吗?我知道我可以使用我的谷歌身份证在多个不同的浏览器上使用计算器进行登录 – daveomcd 2011-04-14 22:46:21

相关问题