我有一个功能页面和我的表单页面。我的表单是我的注册页面,它有支票。(如果需要更多,我发布了大约30%的代码请问我)
Functionspage:
function validateRegister(){
foreach($_POST as $key=>$value) {
if(empty($_POST[$key])) {
$errmsg_arr[] = ucwords($key) . " field is required";
$errflag = true;
}
}
if(!empty($_POST['reg'])){
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$errmsgt_arr[] = "the provided email is not a valid email address";
$errflagt = true;
}
}
if(!empty($errflag)) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: register.php");
exit();
}
if(!empty($errflagt)) {
$_SESSION['ERRMSGT_ARR'] = $errmsgt_arr;
session_write_close();
header("location: register.php");
exit();
}
在我的注册页面中,我有这样的表格:
<?php
include 'header.php';
include 'functions.php';
session_start();
ini_set('error_reporting', E_ALL);
?>
<?php
if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 ) {
foreach($_SESSION['ERRMSG_ARR'] as $msg) {
echo '<li>',$msg,'</li>';
}
}
if( isset($_SESSION['ERRMSGT_ARR']) && is_array($_SESSION['ERRMSGT_ARR']) && count($_SESSION['ERRMSGT_ARR']) >0 ) {
foreach($_SESSION['ERRMSGT_ARR'] as $msg) {
echo '<li>',$msg,'</li>';
}
}
?>
<form method="post" action="register.php" enctype="multipart/form-data">
<tr>
<td>gebdatum</td>
<td><input type="text" name="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>"/></td>
</tr>
<tr>
<td>rijbewijs</td>
<td><input type="text" name="username" value="<?php if(isset($_POST['username'])) echo $_POST['username'];?>"/></td>
</tr>
<tr>
<td></td>
<td><input name="reg" type="submit" value="Sign-up" class="btn2"/></td>
</tr>
</table>
</div>
<?php
if (isset($_POST['reg']))
{
$register = new User();
$register->Register();
}
unset($_SESSION['ERRMSG_ARR']);
unset($_SESSION['ERRMSGT_ARR']);
?>
</form>
当我注册时检查所有$ _posts等。当表单成功提交时,<?php if(isset($_POST['email'])) echo $_POST['email'];?
代码行有效。它回应了之前的价值观。
但是当错误显示时。$ _POST值不再保留,它就会消失。
我不知道导致这个问题的原因。如果有人知道我做错了什么,我会爱。