表单验证在php mysql页面中不起作用在表单数据处理php文件上移动而没有表单验证?

表单验证在php mysql页面中不起作用在表单数据处理php文件上移动而没有表单验证?,php,mysql,forms,validation,Php,Mysql,Forms,Validation,我用php制作了一个表单,我想在数据库中插入表单条目。我的表单有一些验证规则,当我填写表单时,甚至是填写错误的条目,并点击提交按钮,它会移动到下一个表单数据处理php文件,但不会验证条目。这里是我的代码 <pre> <?php // define variables and set to empty values $regErr = $nameErr = $misErr = $vbErr = $statErr = $tmErr = ""; $reg = $name = $mis

我用php制作了一个表单,我想在数据库中插入表单条目。我的表单有一些验证规则,当我填写表单时,甚至是填写错误的条目,并点击提交按钮,它会移动到下一个表单数据处理php文件,但不会验证条目。这里是我的代码

<pre>
<?php
// define variables and set to empty values
$regErr = $nameErr = $misErr = $vbErr = $statErr = $tmErr = "";
$reg = $name = $mis = $vb = $stat = $tm = "";

if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (empty($_POST["Reg"]))
     {$regErr = "Reg ID is required";}
     else
     {
     $reg = $_POST["Reg"];
}
   if (empty($_POST["Name"]))
     {$nameErr = "Name is required";}
     else
     {
     $name = $_POST["Name"];

          // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$name))
     {
       $nameErr = "Only letters and white space allowed"; 
       }
   }

   if (empty($_POST["Mis"]))
     {$misErr = "Please Enter Marks";}
   else
     {
     $mis = $_POST["Mis"];
     // check if value entered is Numeric
     if(!is_numeric($mis)) {
    $misErr = "Data entered was not numeric";
     }
     }

   if (empty($_POST["Vb"]))
     {$vbErr = "Please Enter Marks";}
   else
     {
     $vb = $_POST["Vb"];
     // check if value entered is Numeric
     if(!is_numeric($vb)) {
    $vbErr = "Data entered was not numeric";
     }
     }

     if (empty($_POST["Stat"]))
     {$statErr = "Please Enter Marks";}
   else
     {
     $stat = $_POST["Stat"];
     // check if value entered is Numeric
     if(!is_numeric($stat)) {
    $statErr = "Data entered was not numeric";
     }
     }

     if (empty($_POST["Tmarks"]))
     {$tmErr = "Please Enter Marks";}
   else
     {
     $tm = $_POST["Tmarks"];
     // check if value entered is Numeric
     if(!is_numeric($tm)) {
    $tmErr = "Data entered was not numeric";
     }
     }     
}
?>


Here is my Form Code..


<form method="post" action="insert.php"> 
<table width=600 cellspacing=1 cellpadding=2 style='color:white;'>
<tr>
<td>Registration#:</td>
<td><input type="text" name="Reg"><span class="error">* <?php echo $regErr;?></span></td>
</tr>
<tr>
<td>Student Name:</td>
<td><input type="text" name="Name"> <span class="error">* <?php echo $nameErr;?></span></td>
</tr>
<tr>
<td>MIS Marks:</td>
<td><input type="text" name="Mis"><span class="error">*<?php echo $misErr;?></span></td>
</tr>
<tr>
<td>VB.NET Marks:</td>
<td><input type="text" name="Vb"><span class="error">*<?php echo $vbErr;?></span></td>
</tr>
<tr>
<td>Stat Marks:</td>
<td><input type="text" name="Stat"><span class="error">*<?php echo $statErr;?></span></td>
</tr>
<tr>
<td>Subject Total Marks:</td>
<td><input type="text" name="Tmarks"><span class="error">*<?php echo $tmErr;?></span></td>
</tr>
</table><br>
<p style='margin-left:300px;'><input type="submit" name="submit" value="Submit"></p>
</form>

</pre>

如何解决此问题?

发生这种情况是因为您正在将数据提交到另一个文件insert.php。它没有经过代码中的验证。您必须将此验证代码放入insert.php文件中

例如,您有一个文件,其格式如下:

//insert.php
<?php
  $name = $_POST['name'];
  //validate name here
  //then insert into database..

?>

如果要在表单所在的同一页面中显示验证,请参阅。

开始使用暴力方法。在不同点回显数据值,查看验证和所有操作是否顺利进行。另外…insert.php是上述文件的名称还是其他文件的名称?insert.php是我编写数据库连接和插入功能的另一个文件。我是初学者,不知道暴力方法:蛮力方法只是将echo放在不同的点以测试代码阻塞的位置。很抱歉,按照上述方法,现在出现了新的错误,这是在php脚本文件(如insert.php)上为错误定义的变量,现在在另一个表单文件中,变量与span标记中的表单字段一起使用,我在表单文件中发现错误,未找到错误变量..:我从代码中删除了这两行,并将所有php代码放在表单文件中。如果mysql_query$sql,$connection{die'Error:'.mysql_Error;}现在错误已经消失,我的表单验证和提交也可以工作,但不能将数据插入数据库,即使它找到了数据库,但不能在数据库中插入数据。。我在屏幕上没有收到错误或警告。
//insert.php
<?php
  $name = $_POST['name'];
  //validate name here
  //then insert into database..

?>