PHP - 如何防止用户同时从多台计算机登录?

时间:2010-08-13 04:36:55

标签: php

有没有办法阻止用户同时从不同的计算机登录系统?

谢谢

5 个答案:

答案 0 :(得分:7)

基于IP地址的所有这些解决方案的问题在于,如果用户位于通过多个IP地址路由其请求的代理服务器后面,则可能会失败,这意味着用户无法保持登录状态。

您可以做的只是,当任何用户登录时,为他们提供一个新的会话令牌,并使属于同一用户的所有先前会话令牌失效。

这将要求您保留所有有效会话令牌的表格以及与之关联的用户。请注意,PHP的内置会话处理不太可能在没有太多修改的情况下执行此操作。

答案 1 :(得分:1)

用户登录时,将其IP地址放入数据库。如果他们的IP发生变化,则要求他们再次登录。

更容易保存他们的SessionID。如果更改,则使旧会话无效。

答案 2 :(得分:1)

你无法阻止这一点。不应该 相反,您必须手动注销之前登录的所有人 只需在用户数据库中跟踪会话ID,并在会话ID不等于1时关闭会话,并在成功登录后存储在数据库中。 这将使所有同时用户不断登录并破坏他们使用您服务的所有努力。

答案 3 :(得分:0)

您可以尝试在登录时将用户的IP地址存储在数据库中,并在注销时清除该IP(或将其注销)。如果用户尝试登录但他们已经在数据库中存储了不同的IP,这可能表明他们正在从2台不同的计算机登录....不是100%准确但可能有点工作

答案 4 :(得分:0)

我建议跟踪用户登录的当前(最后)IP。用户登录时,更改该IP。根据身份验证过程的最后一个IP部分检查当前IP;如果不同,请将其注销。然后可以重新登录,但这会导致其他计算机的登录失败。