考虑一个网页,例如http://www.somedomain.tld/page1.php 我不希望有人打开 page1.php 的多个实例。如果用户打开,多个浏览器中的同一页面会断开连接并显示警告消息。
有什么建议如何进行吗?可能的 cookie 检查、简单的 .htaccess 实现、IP 检查?
如果您需要有关该场景的进一步说明,请告诉我。
编辑:接受“ deceze ”的方向。
@Mods:您可以关闭这个问题。
考虑一个网页,例如http://www.somedomain.tld/page1.php 我不希望有人打开 page1.php 的多个实例。如果用户打开,多个浏览器中的同一页面会断开连接并显示警告消息。
有什么建议如何进行吗?可能的 cookie 检查、简单的 .htaccess 实现、IP 检查?
如果您需要有关该场景的进一步说明,请告诉我。
编辑:接受“ deceze ”的方向。
@Mods:您可以关闭这个问题。
因此,您在这里拥有的两个工具是 IP 和 cookie。
IP 对用户来说不是唯一的。忘记他们。IP 是一种路由数据的传递机制,它们太粗糙而无法识别用户。
Cookie 不会跨浏览器共享,因此您无法使用 Cookie 跨浏览器识别用户。
此外,网络是无状态的。当网站打开时,浏览器和服务器之间没有一个持久连接。页面加载后,它在浏览器中保持打开状态,但它与服务器之间没有通信。
鉴于这些情况,使用 IP 或 cookie 几乎不可能按照您的要求进行操作。至少没有一些副作用,可能包括用户退出自己的帐户或共享相同 IP 的人彼此死锁。
您应该做的是以一种包含 HTTP 请求的无状态特性的方式编写您的应用程序。您可以通过给他一个独特的 cookie 来识别用户。相反,没有cookie的用户是新用户(包括不同的浏览器);使用此信息对您有利。如果您需要在完成其他操作之前完成某个过程,则需要将此状态保留在服务器端并将其绑定到特定用户。即“具有cookie XYZ 的用户接下来需要执行操作C”,然后当用户向您的服务器发出HTTP 请求时,让服务器评估该请求并决定它是否适合用户应该做的任何事情;通过重定向或拒绝请求做出适当的响应。
如果有登录,那么我的解决方案可能对你有用..
如果它在多个浏览器中,这意味着在第二个浏览器中用户必须再次登录..
因此,您在数据库中记下用户信息/登录信息,一旦登录您将无法再次登录...
可能无法在不同选项卡中阻止来自同一浏览器的用户
谢谢
存储IP地址,每次检查这个值和请求的URL,这样你就可以决定哪个人可以看到你的网页(多少次)。