我在向会话添加数据时遇到问题。我制作了一个小游戏,用户必须点击2个按钮。如果游戏说单击右键,并且用户单击右键,则应在会话中保存的分数中加1,否则减去1。
我遇到的问题不是传递数据,而是评估提交的答案和正确的答案。我尝试了多种方式,而且我没有进一步了解var_dumps,它向我显示了答案以及用户提交的内容。起初我尝试将一个变量设置为post数据并使用它进行检查,但后来我使用了一个没有结果的字符串的变量,因此得分仍然为0。
game2.php:
<?php
if (isset($_SESSION['antwoord2'])) {
$antwoord1=$_SESSION['antwoord2'];
}
else {
echo "geen waarde gevonden voor antwoord";
}
/*---------------------------------*/
/* USER RESPONSE */
if (isset($_POST['links1'])) {
$user_response1=$_POST['links1'];
$usr_antwoord = "links";
} else if (isset($_POST['rechts1'])) {
$user_response1=$_POST['rechts1'];
$usr_antwoord = "rechts";
} else {
echo "geen antwoord gegeven door gebruiker";
}
/*-------------------------------*/
/* SCORE CHECK */
$score=$_SESSION['score'];
/*-------------------------------*/
/* ANTWOORD CHECK */
if($antwoord1 == $usr_antwoord) {
$score = $score + 1;
}
else {
$score = $score - 1;
}
?>
带有echo变量$usr_response1
的会话的转储结果会产生这样的结果(提交表单数据时):
array(3) { ["score"]=> int(0) ["antwoord2"]=> string(6) "rechts" }
USER INPUT : rechts
答案 0 :(得分:1)
根据我的理解,您尝试做什么,当用户点击正确的按钮时,会增加$ _SESSION [&#39;得分&#39;]。
根据我从您的代码中看到的内容,您实际上没有将$ _SESSION [&#39;得分&#39;]设置为任何内容的区域。
在该代码块中期待以下内容
/*-------------------------------*/
/* ANTWOORD CHECK */
if($antwoord1 == $usr_antwoord) {
$_SESSION['score'] = $score + 1;
}
else {
$_SESSION['score'] = $score - 1;
}
答案 1 :(得分:-1)
如果你不在php脚本的第一行使用session_start()
,你就不会在会话中使用任何变量