Кнопка сброса формы PHP - очистить сеанс с помощью метода = получить

Я создал многостраничную форму, которая хранит данные в сеансах. Вместо использования method="post" я использую method="get", чтобы позволить пользователю нажать кнопку "Назад" и сохранить данные на предыдущих страницах для редактирования. У меня также есть проверка электронной почты, происходящая в скрипте PHP.

Как я мог бы иметь кнопку отправки для перехода на следующую страницу в форме и кнопку «Сброс», чтобы очистить сеанс и остаться на этой странице (или перезагрузить страницу) без отображения данных сеанса в полях формы?

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

<?php
session_start();
foreach ( $_GET as $key=>$value ) {
  if ( $key!="submit" ) {
      $value = htmlentities(stripslashes(strip_tags($value)));
      $_SESSION[$key] = $value;
  } 
}

$firstname = $_SESSION['Firstname'];
$lastname = $_SESSION['Lastname'];
$email = $_SESSION['Email'];

if(isset($_GET['clear'])) {
  session_destroy(); // Or other session-unsetting logic
  header("Location: form.php"); // Reload your page
}

else if(isset($_GET['submit'])) {
//next page logic
header("Location: form-2.php"); // Reload your page
}
?>

Вот форма в теле страницы:

<form class="mod-columns-form" method="get" name="mailform" action="form-2.php" onsubmit="return validateForm();">
 <fieldset>
  <label for="Firstname">First Name <span class="mod-error">*</span></label>
  <input type="text" name="Firstname" id="Firstname" placeholder="first name" value="<? echo $firstname; ?>" />
  <label for="Lastname">Last Name <span class="mod-error">*</span></label>
  <input type="text" name="Lastname" id="Lastname" placeholder="last name" value="<? echo $lastname; ?>" />
  <label for="Email">Email <span class="mod-error">*</span></label>
  <input type="text" name="Email" id="Email" placeholder="[email protected]" value="<? echo $email; ?>" />
  <button name="submit" type="submit" value="submit" class="submit">Next</button>
  <button name="clear" type="submit" value="clear">Clear</button>
 </fieldset>
</form>

person fishonstilts    schedule 26.02.2015    source источник


Ответы (1)


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

<button name="reset" value="resert">RESET</button>

вам нужно проверить сеанс этой страницы, создав небольшой блок кода в php.

<?php           
session_start();
if (!isset($_SESSION['Firstname']) && $_SESSION['Lastname'] && $_SESSION['Email']) 
{
    print "error";
}
?>
person LPSANTOS    schedule 26.02.2015
comment
Спасибо за ответ. Я сделал вариант по вашей рекомендации, где я сделал кнопку «Сброс» кнопкой, ссылающейся на базовую страницу PHP без оператора if, но с помощью session_start(); unset($_SESSION['‹переменная›']); для очистки каждой переменной и session_write_close(); header(Расположение: ‹URL страницы›); вернуться на страницу формы. Потребовалось много экспериментов, и я пошел по пути JavaScript, что было ошибкой. - person fishonstilts; 31.03.2015