0

練習上の理由から、いくつかの JQuery アニメーションを使用して PHP で小さなテキサス ホールデム ゲームをプログラムしました。すべてのアクション (ベット、フォールド、チェック、レイズ、コール) は、HTML フォームを介して PHP スクリプトに送信されます。

残念ながら、ユーザーはボード全体とコンピューターのカードを確認し、ブラウザの戻るボタンを使用して賭け構造を調整した後、最初の賭けラウンドに戻ることができます。

これを防ぐ実用的な方法はありますか?

ありがとう、コーヒーハウス

PS:

ボタンスクリプトは、たとえば次のとおりです。

if (isset($_POST['call']) AND $_SESSION['bettingcap'] == 1){
    $_SESSION['kapitalspieler'] -= $smallbet; // deduct money from player
    $_SESSION['pot'] += $smallbet; // add this to the pot
    $_SESSION['bettingcap'] = 0; // After call go to next street, so cap is 0
    $_SESSION['buttonmodus']=1; // I want to show only certain buttons
    $_SESSION['whichstreet']=$_SESSION['whichstreet']+1; // go to next street
    $_SESSION['animateagain']='yes'; // show JQuery Animation

}
4

2 に答える 2

1

リクエストを無効にする必要があります。つまり、あるリクエストが別のリクエストの後に続きます。

これを行うには、そのユーザーのすべてのリクエストをゲームに保存します。

新しいリクエストが送信された場合、最後にのみ追加できます。

ゲームを初期化することでメモリ内にゲームを作成し、特定のイベントまですべてのサイドからすべてのイベントをパスすることができます。

このモデルでは、以前のゲームのビュー モードのように、チートやゲームの再プレイを防ぐことができます。

  • 00 作成したゲーム ID:#7575
  • 01 プレーヤーがシートに参加しました:1; ID:#12
  • 02 プレーヤーがシートに参加しました:2; ID:#56
  • 03 プレーヤーがシートに参加しました:3; ID:#87
  • 04 デッキシャッフル順:カードの順番はこちら。
  • 05 ...

したがって、これらのイベントを保持し、ユーザーから新しいリクエストが送信された場合、現在の状況に問題がないかどうかを確認できます。

于 2013-03-13T11:07:37.197 に答える
0

おそらく、このようなものが機能するでしょう。

<SCRIPT type="text/javascript">
    window.history.forward();
    function noBack() { window.history.forward(); }
</SCRIPT>
</HEAD>
<BODY onload="noBack();"
    onpageshow="if (event.persisted) noBack();" onunload="">

リンクから

于 2013-03-13T10:35:15.310 に答える