2013-06-13 3 views
0

У меня есть экзамен, и я хочу использовать сеанс для сохранения каждого значения, будь то текстовые или избранные или группы переключателей. Поэтому, если пользователь отправляет форму и что-то пропускает, возвращаясь к форме с другой страницы, она сохраняет все значение, которое было введено, и автоматически заполняет его. Я также хотел бы сохранить сессию в течение 2 часов. Я знаю, что могу использовать что-то из следующего:Использование сеанса для сохранения текстовых полей и значений переключателей

FORM PAGE:

<form method=post action="submit.php"> 
    <input type=text value="" name="first" /> 

    <input type=radio value="A" name="acct" /> A 
    <input type=radio value="B" name="acct" /> B 

    <input type=radio value="A" name="birt" /> A 
    <input type=radio value="B" name="birt" /> B 
</form> 

О представлении формы в submit.php странице у меня есть это:

<?php 
    session_start(); 
    $_SESSION['textbox1'] = isset($_POST[first]) ? $_POST[first] : null; 
    $_SESSION['radiogroup1'] = isset($_POST[acct]) ? $_POST[acct] : null; 
    $_SESSION['radiogroup2'] = isset($_POST[birt]) ? $_POST[birt] : null; 

** PLUS OTHER CODES I USE ** 
    ?> 

выше должна начаться сеанс и сохранить эти значения, поэтому независимо от того, выйду ли я из страницы или нет, он должен ее сохранить. Верный?

Теперь вопросы я являются:

  • Как сделать сеанс живыми только в 2 часа
  • Скажем, я закрыть страницу или перейти на другую страницу, и я вернусь на страницу FORM, как я могу автоматически ввести значение, которое было первоначально сохранено в сеансе?
  • В ЧТО СЛЕДУЕТ Я ЗДЕСЬ Как выполнить, если пользователь выбрал значение, заполнить его иначе, оставив его в покое? решаемых

Я очень ценю помощь.

+1

Поместите 'null' вместо * ЧТО СЛЕДУЕТ Я ЗДЕСЬ * – jraede

+0

Спасибо. Позвольте мне сразу изменить его. – Si8

+1

Как вы знаете, и если вы не ... когда пользователь выходит из браузера, все сеансы автоматически уничтожаются. для того, чтобы спросить о том, как сделать сеанс живым всего лишь на 2 часа, вот ответ, который я нашел: [session timeout] (http: // stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes) –

ответ

2

первый ответ:

SESSIONS остаться в живых до тех пор, пока пользователь не закроет его/ее браузер, так что вы должны сделать печенье, как это:

setcookie("TestCookie", $value, time()+(3600*2)); //save for 2 hours 

второй ответ:

Использовать массив: $_COOKIE['session_name']

3-й ответ:

Просто используйте null.

Простой :)

+0

'$ _COOKIE ['textbox1']' будет автоматически заполняться, если в нем хранится значение? Хотелось бы, чтобы простой lol – Si8

+0

да, сначала нужно сделать это 'setcookie (" textbox1 ", $ txtbox_value, time() + (3600 * 2));' –

+0

setcookie должен быть на странице формы или на странице php ? – Si8

1

Чтобы добавить данные, представленные в форме, торчат выводим сессии до значения всех входов:

<input type=text value="<?php echo $_SESSION['textbox1'];?>" name="first" /> 
1

Чтобы АВТОЗАПОЛНЕНИЯ сделать что-то вроде:

<input type=radio value="A" name="acct" <?php echo ($_SESSION['acct'] == A) ? "checked" : "" ?>/> 
+0

Будет ли это делать то, что я ищу? http://pastebin.com/index/gSrZCEJQ – Si8

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