2012-06-12 4 views
0

Я сделал опрос «да/нет», в котором игра пытается угадать, о существовании, о котором вы думаете, основываясь на этих вопросах, есть только 16 возможных ответов.Использование сеансов PHP в викторине

Что я пытаюсь сделать так, чтобы, если пользователь закрывает сайт частично через викторину, тогда, когда они вернутся к викторине, они будут приняты к тому же вопросу, на котором они остановились. Ниже приводится то, что я сделал до сих пор, но он не работает должным образом (см. Сами по себе: 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; 
} 
} 

То, что я пытаюсь достичь здесь есть, если сеанс уже установлен, то вывести вопрос и форму от этой сессии, и если он не отображается ничего, пока они не нажмут кнопку «Пуск». Я не уверен, почему он не работает должным образом, и любая помощь будет очень оценена.

+0

Сессия распадается при закрытии веб-сайта. Посмотрите на использование файлов cookie. http://php.about.com/od/advancedphp/qt/php_cookie.htm –

+0

Я знаю, что это можно сделать, как я видел это раньше, перейдите по адресу http://pbambridge.brunelweb.net/aw/expert. php – Harry12345

+0

Вы уверены, что это сеанс? – andrewsi

ответ

0

Вам нужно создать сеанс с session_start(), поместите это в первой строке PHP:

session_start(); 

Как php.net говорит мне, он также будет использовать уже сгенерированные сессии. Просто убедитесь, что у вас нет html-вывода перед началом сеанса.

+0

Да, я уже это сделал – Harry12345

+0

О, черт, я просто устал читать ... Используйте session_name («quiz») перед session_start, чтобы создать и получить указанный сеанс назад – Nurickan

+0

Я сделал это, и он почти сейчас работает, но вместо сохраненного вопроса, меняющегося на следующий, он остается там, и под ним появляется следующий вопрос. – Harry12345

Смежные вопросы