php - 使用 php/javascript 跟踪用户并禁止多个窗口/选项卡

标签 php javascript ajax

我想建立一个系统,允许访问者一次只能查看一个网页。 只允许一个浏览器窗口或选项卡。

我已经实现了一个名为“is_viewing”的 session 变量。如果属实,则该人将被拒绝访问这些页面(只需显示不同的模板)。

如果用户从一个页面导航到另一个页面,重置此 session 变量的最佳方法是什么?

我在 html body 的 onunload 事件中添加了 ajax 函数。它所做的只是将 session 变量设置为 false。

但这会带来各种麻烦和意想不到的结果。 刷新页面首先显示拒绝模板( session 变量由于某种我不知道的原因显示为 true),然后在另一次刷新后我可以再次加载页面。

我不能在使用 ajax 调用的脚本上使用 header 吗? 如果用户已经在查看另一个页面,我该如何重置 session 变量并跟踪用户在网站上的位置以拒绝他的访问?

最佳答案

如果您确实想阻止人们这样做,请限制服务器上每个 IP 的连接数。但请不要限制为一台左右,以免在拥有多台电脑时锁定整个家庭。

如果人们愿意忽略该限制(例如通过启动另一个浏览器),则可以为每个用户提供一个 cookie 并限制服务器上每个 cookie 的连接数 - 当新连接进入时杀死旧连接。

关于php - 使用 php/javascript 跟踪用户并禁止多个窗口/选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4298243/

相关文章:

php - php trim() 是否删除换行符?

php - 使用 Android 和 PHP 服务器的聊天应用程序

javascript - JS 中的命名组和 OR 运算符

JavaScript 跳过 AJAX Post

javascript - 使用 JavaScript 实时生成结果

javascript - 我可以向 XMLHttpRequest.send() 传递什么样的参数?

javascript - 如何在我的应用程序中正确处理闰秒

PHP:如何将现有的数据库连接传递给静态类方法?

javascript - 迭代对象、解构并推送到 React 状态数组

javascript - 使用 Ajax 刷新 Javascript 下拉框