PHP和Jquery的扑克游戏 - Browser-Back-Button行为

时间:2013-03-13 10:25:44

标签: php javascript jquery html browser

出于练习原因,我用PHP编写了一些带有一些JQuery动画的德州扑克游戏。每个动作(下注,折叠,检查,加注,调用)都通过HTML表单提交给PHP脚本。

现在不幸的是,用户可以在看到整个棋盘和计算机的牌之后回到第一轮下注,并通过使用浏览器的后退来相应地调整他的投注结构。

是否有一种实用的方法可以防止这种情况发生?

谢谢, 咖啡屋

PS:

一个buttoncript就是这样的:

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

}

2 个答案:

答案 0 :(得分:1)

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

您可以通过在游戏中存储该用户的所有请求来完成此操作。

如果发送了新请求,则只能在最后添加。

您可以通过初始化游戏并在所有事件中传递所有事件直到特定事件来创建游戏。

此模型可以让您防止作弊以及像以前游戏的观看模式那样重新玩游戏。

  • 00创建游戏ID:#7575
  • 01名球员加入席位:1; ID:#12
  • 02名球员加入席位:2名; ID:#56
  • 03名球员加入席位:3名; ID:#87
  • 04套牌洗牌顺序:卡在这里订购。
  • 05 ...

因此,您保留这些事件,如果用户发送了新请求,您可以检查当前情况是否合适。

答案 1 :(得分:0)

也许这样的事情会起作用。

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

来自link