在测验中使用PHP会话

时间:2012-06-12 20:41:26

标签: php forms session

我做了一个是/否测验,游戏试图根据这些问题猜测你在想什么生物,只有16个可能的答案。

我想要做的是,如果用户通过测验中途关闭网站,那么当他们返回测验时,他们将采取他们停止的相同问题。以下是我到目前为止所做的事情,但它无法正常工作(请参阅http://s504518.brunelweb.net/Creatures.php)你必须对第一个问题回答“是”,然后关闭浏览器,因为我只对该问题进行了一次会话,所以远。这是我到目前为止所做的一部分

//These are used for saving the session
 $q2 = "<div class='questions'><p>{$questions[0][0]}</p></div>";
 $q3 = "<div class='questions'><p>{$questions[0][1]}</p></div>";

 $f2 = "<div class='questions'><form method ='GET' action='Creatures.php'>
     <input type='submit' name='answer1' value='Yes' class='buttons' />
     <input type='submit' name='answer1' value='No' class='buttons' />
     </form></div>";
 $f3 = "<div class='questions'><form method ='GET' action='Creatures.php'>
     <input type='submit' name='answer2' value='Yes' class='buttons' />
     <input type='submit' name='answer2' value='No' class='buttons' />
     </form></div>";

//If start button has not been pressed, display nothing
if (!isset($_POST['start'])){

} //If start button has been pressed, display questions
else
{
//Display the first question
echo $firstquestion;
     echo "<div class='questions'><form method ='GET' action='Creatures.php'>
     <input type='submit' name='yes1' value='Yes' class='buttons' />
     <input type='submit' name='no1' value='No' class='buttons' />
     </form></div>";
}
//Question 2
if (isset($_SESSION['form']))
{
echo $_SESSION['question'];
echo $_SESSION['form'];
}
else{
if ($_GET['yes1']) //If answer to Q1 is yes then display this
{
echo "<div class='questions'><p>{$questions[0][0]}</p></div>";
showquestion(1);
$_SESSION['question'] = $q2;
$_SESSION['form'] = $f2;
}
}

我想在这里尝试实现的是,如果已经设置了会话,则显示该会话中的问题和表单,如果它们没有显示任何内容,直到他们单击开始按钮。我不确定为什么它不能正常工作,任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

你需要用session_start()创建一个会话,把它放到php的第一行:

session_start();

正如php.net告诉我的,它也将使用已经生成的会话。只是避免在开始会话之前没有html输出