php不会向会话变量添加数据

时间:2014-06-24 19:24:30

标签: php forms session

我在向会话添加数据时遇到问题。我制作了一个小游戏,用户必须点击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

2 个答案:

答案 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(),你就不会在会话中使用任何变量