Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php/javascript跟踪用户并禁止多个窗口/选项卡_Php_Javascript_Ajax - Fatal编程技术网

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

使用php/javascript跟踪用户并禁止多个窗口/选项卡,php,javascript,ajax,Php,Javascript,Ajax,我想建立一个允许访问者一次只能查看一个网页的系统。 只允许使用一个浏览器窗口或选项卡 我已经实现了一个名为“is_view”的会话变量。如果为真,则拒绝该用户访问页面(只需显示不同的模板) 如果用户从一个页面导航到另一个页面,重置此会话变量的最佳方法是什么 我在html主体的onunload事件中添加了一个ajax函数。它所做的只是将会话变量设置为false 但这带来了各种各样的麻烦和意想不到的结果。 刷新页面时,首先会显示拒绝模板(由于我不知道的原因,会话变量显示为true),然后在再次刷新后

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

我已经实现了一个名为“is_view”的会话变量。如果为真,则拒绝该用户访问页面(只需显示不同的模板)

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

我在html主体的onunload事件中添加了一个ajax函数。它所做的只是将会话变量设置为false

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

我不能在用ajax调用的脚本上使用标题吗?
如果用户已经在查看另一个页面,我如何重置会话变量并跟踪用户在站点上的位置以拒绝其访问?

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


如果人们愿意忽略该限制(例如,启动另一个浏览器)是可以的,那么给每个用户一个cookie,并限制服务器上每个cookie的连接数-在新连接出现时杀死旧连接。

为什么要这样做?如果用户真的想查看多个窗口或选项卡,他们可以禁用Javascript。我需要防止人们一次查看多个页面。如果关闭javascript,则不会看到视频。因此,该网站只能使用javascript,我不必担心那些关闭了javascript的人。或者每个ip只允许一个流,或者在流时设置一个cookie检查,每个cookie id只允许一个流。好吧,这就是我正在尝试做的(服务器端会话)。问题是,当访问者打开一个新选项卡或导航到另一个流时,我如何才能可靠地删除该cookie?@user478419:请看我的帖子:“当新连接出现时,杀死旧连接”