PHP会话虽然循环不工作
我有这个while循环不停地重复同样的事情,直到它给了我一整页的错误。PHP会话虽然循环不工作
我会解释一下我在做什么:我做了一个BlackJack游戏,只使用PHP。因此,通过使用3种不同的形式,我开始游戏(给我2张卡片和经销商1张卡片),我创建了一个按钮(每次点击它时给我1张卡片)和一个展台形式(这将给经销商卡)。随着会话的使用,我记得所有的卡片,所以他们不会迷失在点击按钮上。随着重置按钮,我开始并销毁会话,以便新的游戏成为可能。所有这些工作,除了站立按钮。
它应该给经销商卡,直到他的点是=> 17.但由于某种原因它不断重复,直到我的整个页面充满了错误。我使用了一些不同的循环:
if(FORM_stand("Stand")){
while($total_dealer < 17){
draw_dealer_card();
}
list_dealer_hand();
}
和
if(FORM_stand("Stand")){
list_dealer_hand();
do {
draw_dealer_card();
} while ($total_dealer < 17);
}
我用他们都没有sucess。
draw_dealer_card();看起来像这样:
function draw_dealer_card() {
$dealer_card = array_rand($_SESSION["dealer_pile"]);
$_SESSION["dealer_hand"][$dealer_card] = $_SESSION["dealer_pile"][$dealer_card];
unset($_SESSION["dealer_pile"][$dealer_card]);
}
而且list_dealer_hand();像这样:
function list_dealer_hand() {
foreach($_SESSION["dealer_hand"] as $dealer_card=>$points) {
echo $dealer_card;
echo ', ';
}
}
我真的不知道还有什么是重要的,请让我知道如果你错过了一些信息!
在此先感谢!
ps:不要问为什么我只用PHP,因为这是这个任务的重点。 (只使用,或尽可能多的PHP)
如果你想知道我的错误是什么样的,他们会在我按下stand,加载几秒钟,然后一遍又一遍地显示这些错误再次:
Notice: Undefined index: dealer_pile
Trying to destroy uninitialized session
Notice: Undefined index: dealer_pile
编辑:在我的页面顶部我运行只得到,如果我PRES中断session_start();
是重置按钮。
编辑:
if(!isset($_SESSION["dealer_pile"])) $_SESSION["dealer_pile"] = array(
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => 6,
7 => 7,
8 => 8,
9 => 9,
10 => 10,
'Jack' => 10,
'Queen' => 10,
'King' => 10,
'Ace' => 11);`
除了缺少在session_start();你还应该设置$ _SESSION [“dealer_pile”]
$_SESSION["dealer_pile"] = "foobar";
我有一个session_start();在我的页面顶部。如果按下重置按钮,它只会停止会话。 –
你还在某处设置$ _SESSION [“dealer_pile”]吗? – koenoe
检查我编辑的问题,阵列是你的意思是对吗? –
你是否在页面的顶部包含'session_start();'?看起来好像你的会话不是一页一页地保存。 (这包括用户将继续进行的任何页面,即使是瞬间的)。 – Albzi
是BeatAlex是正确的...错误表示你的会话不存在。 – Dwza
@BeatAlex是的,在我的页面顶部,我有一个session_start();它只会停止这一个,如果我按我的重置按钮。如果我没有声明session_start,我的其他表单不应该工作吗? –