2012-05-31 4 views
0

Я создал небольшую викторину в PHP, которая задает вам ряд вопросов «да/нет», а затем сообщает вам ответ в конце. Я пытаюсь использовать сеансы PHP так, чтобы, если пользователь получает только половину прохождения викторины, например, тогда, когда они закрывают свой браузер и повторно открывают его, он будет отвечать на тот же вопрос, что и когда они уходят. Ниже приведен код для одной из форм, которые я использую.Использование сеансов PHP для сохранения данных формы

<div class='questions'> 
    <form method ='GET' action='Creatures.php'> 
    <input type='submit' name='answer$number' value='Yes' class='buttons' /> 
    <input type='submit' name='answer$number' value='No' class='buttons' /> 
    </form> 
</div> 

Если вы хотите увидеть викторины пойти s504518.brunelweb.net/Creatures.php . Я не уверен, как это сделать, хотя раньше я не использовал сеансы, любая помощь была бы высоко оценена.

+0

** $) $ ** (aka 404, удерживая клавишу 'SHIFT') – Neal

+0

Я не понимаю, где я могу это поставить? – Harry12345

+0

ваша ссылка не существует [ссылка] (http://504518.brunelweb.net/Creatures.php). Если вы хотите сохранить данные, нужно установить их в сеансе, также вы можете использовать cookie для своей цели, добавьте больше информации о том, что вы действительно хотите сделать? какой элемент html у вас есть в вашей форме? – zhilevan

ответ

3

Вы не можете сделать это с помощью сеансов PHP, потому что сеанс уничтожается при закрытии браузера.

Чтобы добиться того, что вы упомянули, вы должны сохранить ответы конечного пользователя в файл cookie и проверить его существование, когда страница изначально загружена.

Взгляните на http://php.net/manual/en/function.setcookie.php.

0

Если пользователи зарегистрированы, храните их в дБ. Обычно это лучший выбор. Cookies могут работать, но у вас есть шанс что-то пойдет не так.

Кроме того - если я правильно прочитал, ответ $number не конкатцирует в одинарных кавычках. будет либо:

echo " name='answer$number' " (эхо в двойных кавычках) ИЛИ echo 'name="answer'.$number.' " ' (echo'd в одинарных кавычках). это скромно, тем не менее, может вводить в заблуждение. Я отложил цитаты, чтобы указать пробел, однако они должны быть удалены.

Я считаю, что ДБ - это САМОСТОЯТЕЛЬНЫЙ способ. U всегда может использовать файл cookie, чтобы связать пользователя с их ответами. Также - db даст позже статистику. Таким образом, даже если пользователь теряет свой файл cookie, он всегда может ввести свой адрес электронной почты для продолжения.

И да, сеансы ВСЕГДА убиты, когда браузер закрывается (только для подтверждения).

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