PHP:使用正则表达式执行表单验证,然后提交

PHP:使用正则表达式执行表单验证,然后提交,php,regex,validation,Php,Regex,Validation,下面的脚本可以很好地验证输入。问题是在验证之后,我想将数据发送到另一个脚本,以便它可以存储在数据库中。如何编辑操作属性以获得所需内容 <!DOCTYPE HTML> <html> <head> <style> .error {color: #FF0000;} </style> </head> <body> <?php $nameErr = ""; $name = ""; if ($_SERVER["

下面的脚本可以很好地验证输入。问题是在验证之后,我想将数据发送到另一个脚本,以便它可以存储在数据库中。如何编辑操作属性以获得所需内容

<!DOCTYPE HTML> 
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body> 

<?php
$nameErr = "";
$name = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
   if (empty($_POST["name"])) {
     $nameErr = "Name is required";
   } else {
     $name = test_input($_POST["name"]);
     if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
       $nameErr = "Only letters and white space allowed"; 
     }
   }
}

function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}
?>

<h2>PHP Form Validation Example :</h2>
<p><span class="error">* required field.</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
   Name: <input type="text" name="name" value="<?php echo $name;?>">
   <span class="error">* <?php echo $nameErr;?></span>
   <br><br>
   <input type="submit" name="submit" value="Submit"> 
</form>

<?php
echo "<h2>Input:</h2>";
echo $name;
?>

</body>
</html>

.错误{color:#FF0000;}
PHP表单验证示例:
*必填字段

启动会话:

session_start();
在会话中存储表单数据:

$_SESSION['form_data'] = $_POST;
重定向到新脚本:

header("Location: new_script.php");

在新脚本中,从会话中检索数据并将其插入数据库。有关详细信息,请参阅。

是否希望他们提交两次表单?首先验证它,然后将它发送给处理它的第二个脚本?如果他们在您验证输入后修改输入,该怎么办?验证时不应调用
htmlspecialchars
,而应仅在显示数据时使用。我想要的是:1。验证输入。2.如果一切正常,则重定向到流程脚本。3.如果没有返回到html页面,出现错误消息。重定向不会发送POST参数。我知道这就是我被困在这里的原因。。。有什么建议吗?顺便说一下,谢谢你:D