2015-02-26 3 views
0

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

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

Я пробовал изменить чужое предложение, используя следующее безрезультатно. Вот 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> 

ответ

0

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

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

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

<?php   
session_start(); 
if (!isset($_SESSION['Firstname']) && $_SESSION['Lastname'] && $_SESSION['Email']) 
{ 
    print "error"; 
} 
?> 
+0

Благодарим за отзыв. Я сделал вариацию вашей рекомендации, когда я сделал кнопку Reset кнопкой, ссылающейся на базовую страницу PHP без оператора if, но session_start(); unset ($ _ SESSION ['']); для каждой переменной очистить и session_write_close(); header ("Местоположение: "); для возврата на страницу формы. Это заняло много экспериментов, и я пошел по пути JavaScript, что было ошибкой. – fishonstilts

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