0

我想防止我网站上的某些子页面(带有游戏)在每个浏览器的多个选项卡中打开。我希望每个浏览器只打开 1 个子页面。我使用 PHP 作为服务器端语言,游戏是 SWF 格式。

用户转到游戏列表,然后单击游戏图标,然后打开一个弹出窗口。href 属性已被禁用,并且每个游戏图标都添加了 onclick 事件。

但这并不妨碍用户复制游戏 URL,然后手动打开一个新选项卡并粘贴 URL。

有什么方法可以实现我的目标吗?我在想,当用户单击游戏图像时,使用 ajax 并在我的服务器上调用 PHP 来设置安全令牌。游戏嵌入完成后,销毁令牌。如果用户将 URL 复制粘贴到另一个选项卡中,它将不起作用。

但是如果用户刷新游戏页面会发生什么呢?对此有什么建议吗?

谢谢

4

1 回答 1

1

编辑:最初误解了。每个用户只允许一页

点击时

  • 删除该用户的其他令牌
  • 为该用户创建和存储令牌
  • 交付页面(在 URL 中使用该令牌)
  • 在页面加载时,它会检查令牌
  • 在页面上生成时间戳(不是服务器,即在JS中)
  • 该页面使用令牌和时间戳定期轮询服务器(或使用长轮询/推送)
  • 民意调查:
    • 令牌存在并且( timestamp >= stored_timestamp 或 stored_timestamp =NULL )
      • 是:如果更大或stored_timestamp =NULL,则将时间戳设置为当前,不做任何其他事情
      • 否:杀死这个游戏
    • 令牌不存在
      • 杀了这个游戏

如果他们刷新它将设置一个新的时间戳,杀死他们的旧游戏。如果他们在新浏览器中打开,它将刷新时间戳,从而终止他们的旧游戏。

于 2012-11-26T00:28:15.993 回答