使用会话的PHP问题

时间:2014-02-11 11:13:04

标签: php forms session

我是会话的新手,因为我现在需要使用其中的一大部分,所以创建问题似乎是不可避免的。

我被告知只使用PHP和HTML制作纸牌游戏(BlackJack)。到目前为止一切都那么好,拿到卡片及其中的所有内容,启动,点击,站立和重置工作都很好。

我是通过使用表单来完成的。用于启动表单的表单和用于表单的表单。通过使用会话,它会提醒所有卡片和分数。

但问题来自于我开始插入投注系统。我从标准银行开始,这是100

我的开始表单中有一个输入字段,也就是下注的位置。当用户点击开始表单时,它会在其他一些表单中调用此函数:

// Calculate the bank
function calc_bank() {
   $_SESSION["bet"] = $_POST["bet"];
   $_SESSION["bank"] = 100 - $_SESSION["bet"];
}

这个也适用,当用户点击开始时它会回显95(最小赌注为5)。当用户点击匹配时,它将转到命中表单,记住所有会话并显示95,与支架相同。

这是我的问题,当说,我按下命中并获得23分。 $ _SESSION [“银行”]没有任何反应,投注将保持95.但是当用户改变他的下一个赌注说20时。然后点击开始它将再次计算银行,并且你可以猜测,它将需要标准100 - 20并制作SESSION 80,而它应该是75.

我真的希望我能为你们清楚地解释我的问题,如果没有请告诉我!

提前致谢!

2 个答案:

答案 0 :(得分:1)

问题在于,每次调用函数时,$ _SESSION [“bank”]等于100减去赌注。

试试这个

function calc_bank() {
   if (!isset($_SESSION["bank"])){$_SESSION["bank"]=100;}
   $_SESSION["bet"] = $_POST["bet"];
   $_SESSION["bank"] = $_SESSION["bank"] - $_SESSION["bet"];
}

答案 1 :(得分:0)

您应该在创建游戏时填写$_SESSION['bank']值,以便它始终可用。然后,当用户执行操作时,您可以随意执行任何操作。

此外,您在会话库计算功能中硬编码了银行值。也许您应该考虑在另一个函数中动态设置银行值?这使您可以选择更改每场比赛的开始数量。