0

ウェブサイトの一部のサブページ(ゲーム付き)がブラウザごとに複数のタブで開かれないようにしたい。ブラウザごとに1つのサブページだけを開きたい。私はサーバーサイド言語としてPHPを使用しており、ゲームはSWF形式です。

ユーザーがゲームリストに移動し、ゲームアイコンをクリックすると、ポップアップが開きます。href属性が無効になり、各ゲームアイコンにonclickイベントが追加されました。

ただし、これは、ユーザーがゲームのURLをコピーしてから、新しいタブを手動で開いてURLを貼り付けることを妨げるものではありません。

私の目標を達成する方法はありますか?ユーザーがゲームの画像をクリックすると、ajaxを使用し、サーバーでPHPを呼び出してセキュリティトークンを設定することを考えていました。ゲームの埋め込みが終了したら、トークンを破棄します。ユーザーがURLをコピーして別のタブに貼り付けた場合、それは機能しません。

しかし、ユーザーがゲームページを更新するとどうなりますか?これに何か提案がありますか?

ありがとうございました

4

1 に答える 1

1

編集:元々誤解されていました。ユーザーごとに1ページのみを許可するには

クリックすると

  • そのユーザーの他のトークンを削除します
  • そのユーザーのトークンを作成して保存します
  • ページを配信します(URLでそのトークンを使用します)
  • ページの読み込み時にトークンをチェックします
  • ページにタイムスタンプを生成します(サーバーではなく、つまりJSで)
  • このページは、トークンとタイムスタンプを使用してサーバーを定期的にポーリングします(または長いポーリング/プッシュを使用します)。
  • 投票時:
    • トークンが存在し、(タイムスタンプ>=stored_timestampまたはstored_timestamp=NULL)
      • はい:より大きいまたはstored_timestamp = NULLの場合、タイムスタンプを現在に設定し、それ以外は何もしません
      • いいえ:このゲームを殺します
    • トークンが存在しません
      • このゲームを殺す

更新すると、新しいタイムスタンプが設定され、古いゲームが強制終了されます。新しいブラウザで開くと、タイムスタンプが更新され、古いゲームが強制終了されます。

于 2012-11-26T00:28:15.993 に答える