我创建了一个将数据存储在会话中的多页表单。我没有使用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="yourname@domain.com" 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 :(得分:0)
要从表单中的数据中解放出来,您可以创建一个按钮,执行重置变量。
<button name="reset" value="resert">RESET</button>
你需要检查这个页面的会话,在php中创建一个小代码块。
<?php
session_start();
if (!isset($_SESSION['Firstname']) && $_SESSION['Lastname'] && $_SESSION['Email'])
{
print "error";
}
?>