如何防止使用php或javascript在同一浏览器会话中打开另一个选项卡?

如何防止使用php或javascript在同一浏览器会话中打开另一个选项卡?,javascript,php,session,cookies,Javascript,Php,Session,Cookies,我想知道如何防止用户在打开以前的浏览器实例时打开新选项卡 我的目的是防止覆盖数据。 例如,如果用户在同一个应用程序中打开一个新选项卡,我想提示如下消息 “您正试图在同一应用程序中打开一个新的活动窗口。请关闭以前的窗口。” 有什么方法可以用php、javascript、会话或cookie实现吗?我想我会用php中的会话信息。。。当用户打开选项卡时,将其添加到会话中。如果它已经加载了该选项卡,请提出问题。棘手的部分是知道用户何时停止使用你的应用程序或只是闲置 您永远无法阻止用户在其浏览器中打开新选项

我想知道如何防止用户在打开以前的浏览器实例时打开新选项卡

我的目的是防止覆盖数据。 例如,如果用户在同一个应用程序中打开一个新选项卡,我想提示如下消息

“您正试图在同一应用程序中打开一个新的活动窗口。请关闭以前的窗口。”


有什么方法可以用php、javascript、会话或cookie实现吗?

我想我会用php中的会话信息。。。当用户打开选项卡时,将其添加到会话中。如果它已经加载了该选项卡,请提出问题。棘手的部分是知道用户何时停止使用你的应用程序或只是闲置

您永远无法阻止用户在其浏览器中打开新选项卡,但您可以阻止应用程序中的信息访问用户。你也可以使用cookies,但是如果它不需要比会话时间更长的记忆,我看没有任何意义


如果您想使用JavaScript而不是PHP进行检查,还可以查看HTML5Web存储。它将与IE8及以上版本配合使用。它只是一个键/值数据库。

只要它是同一个浏览器窗口,就不能说用户是否打开了新选项卡,或者只是在同一个选项卡上加载了页面。即使在
私人模式
匿名模式下
,选项卡也会共享会话

会话依赖于cookie,其中cookie可能比会话更持久。同样的问题


您可以做的是,防止用户在其上一个会话仍然有效时再次登录,但当用户打开新的浏览器窗口(或其他浏览器)并尝试登录时,这将起作用。

以下链接显示了如何跟踪它,但我不熟悉.Net。根据他的解决方案,我认为PHP可能也有解决方案。是的,这可以工作,但您需要问自己一个问题。这是安全问题吗?因为使用JavaScript进行安全保护是不好的。每个人(特别是那些想要突破安全的人)都可以操作或禁用JavaScript(和cookie)。依靠这是个坏主意。如果不是为了安全,那么继续按照链接下的说明操作(TL;DR;-set cookie,在PHP中,如果设置了cookie,则不显示内容,在JS事件“onbeforeunload”中删除cookie)。