gpt4 book ai didi

php - 如何避免打开两个浏览器窗口?

转载 作者:行者123 更新时间:2023-12-01 02:34:00 26 4
gpt4 key购买 nike

我想避免打开两个应用程序窗口(或选项卡)的可能性。如果我的应用程序 (LAMP+Javascript) 安装在 http://www.domain.com 上并且用户正在浏览页面 http://www.domain.com/用户/他/她无法打开另一个窗口,例如http://www.domain.com/system/。如果他/她打开另一个窗口,应用程序应该显示一条错误消息。

这可能吗?

对于好奇的人:我需要这种行为,因为我的应用程序使用一些 session 数据来识别操作序列。如果用户在同一浏览器上打开一个新窗口,通常一切都是正确的,但如果他/她开始一个新序列,前一个(在另一个窗口中)将会丢失。

最佳答案

虽然所有其他人在这里所说的都是正确的,即您无法阻止某人两次打开您的网站,但可能有一个解决方法适合您。请注意,这不是 100% 的解决方案,需要您在此基础上开发进一步的代码。

据我了解,您遇到以下问题:

  1. 如何确定用户是否使用共享 session 数据的窗口/标签(即 Chrome 中的两个标签页、2 个 Chrome 窗口等)打开您的页面 - 这是最简单的部分。
  2. 如何确定用户是否在不同的浏览器中打开您的页面(即同时在 FF 和 Chrome 中打开) - 这是一个棘手的问题。

但是 - 您可以使用 LSO - Local Shared Objects来实现这一点。这些是存储在客户端的基于 Flash 的 cookie 类似数据 block 。它们是跨浏览器和跨域兼容的。您可以找到一个名为 EVERCOOKIE 的不错的库来使用它们 here .

通过设置这样的 cookie,即使用户打开一个新窗口,或者即使他在不同的浏览器中打开您的页面,只要浏览器共享相同的 Flash 安装等,您也将能够跟踪用户。

请注意,这不会阻止某人直接打开两个窗口,但它使您能够将他发送到与他在另一个窗口中相同的序列状态。

您还应该意识到这不是 100% 的解决方案。总会有一些技巧来解决这个问题,尽管我认为普通用户无法得到它......

关于php - 如何避免打开两个浏览器窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9708989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com