仅在我点击它时打开页面

时间:2012-11-25 23:57:22

标签: php javascript jquery

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

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

但这并不妨碍用户复制游戏网址,然后手动打开新标签页并粘贴网址。

有没有办法实现我的目标? 我在想当用户点击游戏图像时,使用ajax并在我的服务器上调用PHP来设置安全令牌。当游戏完成嵌入时,销毁令牌。如果用户将URL粘贴到另一个选项卡中,则无法使用。

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

谢谢

1 个答案:

答案 0 :(得分:1)

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

点击

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

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