使用PHP和Jquery的扑克游戏-浏览器-后退按钮行为


Pokergame with PHP and Jquery - Browser-Back-Button behaviour

出于练习的原因,我用PHP编写了一个小的德州扑克游戏,使用了一些JQuery动画。每个动作(下注、下注、检查、增加、调用)都通过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
}

您需要使请求无效。这意味着一个请求紧跟着另一个请求。

你可以通过在游戏中存储该用户的所有请求来做到这一点。

如果发送了新的请求,则只能在末尾添加。

你可以在内存中创建游戏,通过初始化它,并在所有方面的所有事件中通过,直到一个特定的。

这个模式确实允许你防止作弊,以及重玩游戏,就像在以前的游戏的视图模式。

  • 00创建游戏ID:#7575
  • 01玩家加入座位:1;ID: # 12
  • 02玩家加入座位:2;ID: # 56
  • 03玩家加入席位:3;ID: # 87
  • 04牌洗牌顺序:这里的牌顺序。
  • 05…

所以你保留这些事件,如果一个新的请求是由用户发送的,你可以检查它是否与当前的情况。

也许这样可以。

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