Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用会话的PHP问题_Php_Forms_Session - Fatal编程技术网

使用会话的PHP问题

使用会话的PHP问题,php,forms,session,Php,Forms,Session,我对会话是新手,因为我现在需要使用一大堆会话,所以产生问题似乎是不可避免的 我被告知只使用PHP和HTML制作纸牌游戏(21点)。到目前为止一切都很好,所有的牌都准备好了,开始,击中,站立和重置都很好 我是用表格做的。一个表格用于开始,一个表格用于打击,一个表格用于站立。通过使用会话,它提醒了所有的卡片和分数 但问题来了,当我开始插入一个打赌系统。我从一家100美元的标准银行开始 我的开始表单中也有一个输入字段,这是下注的地方。当用户单击开始窗体时,它将调用以下函数: // Calculate

我对会话是新手,因为我现在需要使用一大堆会话,所以产生问题似乎是不可避免的

我被告知只使用PHP和HTML制作纸牌游戏(21点)。到目前为止一切都很好,所有的牌都准备好了,开始,击中,站立和重置都很好

我是用表格做的。一个表格用于开始,一个表格用于打击,一个表格用于站立。通过使用会话,它提醒了所有的卡片和分数

但问题来了,当我开始插入一个打赌系统。我从一家100美元的标准银行开始

我的开始表单中也有一个输入字段,这是下注的地方。当用户单击开始窗体时,它将调用以下函数:

// Calculate the bank
function calc_bank() {
   $_SESSION["bet"] = $_POST["bet"];
   $_SESSION["bank"] = 100 - $_SESSION["bet"];
}
这一个也可以工作,当用户点击开始时,它会发出95的回声(最小赌注是5)。当用户单击hit时,它将进入hit表单,记住所有会话并显示95,与stand相同

这就是我的问题,比如说,我按hit键,得到23分。美元时段[“银行”]不会发生任何变化,赌注将保持在95美元。但当用户将下一次赌注改为20时。点击开始,它将再次计算银行,正如你所猜测的,它将采用标准的100-20,使会话变成80,而它本应是75

我真的希望我能给你们解释清楚我的问题,如果不能,请告诉我


提前谢谢

问题是,每次调用函数时,$\u会话[“bank”]等于100减去下注

试试这个

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

创建游戏时,您应该填写
$\u SESSION['bank']
值,这样它将一直可用。然后,当用户执行某个操作时,您可以对其执行任何操作


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

非常感谢!基本上,如果会话库没有设置,它会说100,但是如果设置了,它会使用设置的值来代替?我是个新手,但是谢谢你给我的答案!