Php输入验证没有响应

时间:2013-12-05 10:13:01

标签: php html validation

我是网络发展中国家的新手。如果我有一些错误和知识不足,请与我同行。

我正在尝试研究用户输入的验证过程。以下是我的代码:

<?php

if($_POST['formSubmit'] == "Search") 
{
  $errorMessage = "";

  if(empty($_POST['formName'])) 
  {
    $errorMessage .= "<li>No Input</li>";
  }

  $varName = $_POST['formName'];

  if(!empty($errorMessage)) 
  {
    echo("<p>There was an error with your form:</p>\n");
    echo("<ul>" . $errorMessage . "</ul>\n");
  } 

}

?>

<form action="index.php" method="post">
<input type="text" name="formName" value="<?=$varName;?>">
<input type="Submit" name="formSubmit" value=" Search">
</form>

我认为应该发生的是当用户单击搜索按钮而不输入任何内容时会弹出错误消息,但我不明白为什么它没有响应或回显错误消息,我检查了名称和价值但是唉,感谢你能给予的所有帮助/建议。

感谢大家的回复,让它进入工作^ _ ^

6 个答案:

答案 0 :(得分:1)

您的$_POST['formSubmit']不包含Search。它包含Search(前面有空格)。

因为PHP永远不会验证您的表单。

答案 1 :(得分:1)

这有效:

<?php

if($_POST['formSubmit'] == "Search") 
{
  $errorMessage = "";

  if(empty($_POST['formName'])) 
  {
    $errorMessage .= "<li>No Input</li>";
  }

  $varName = $_POST['formName'];

  if(!empty($errorMessage)) 
  {
    echo("<p>There was an error with your form:</p>\n");
    echo("<ul>" . $errorMessage . "</ul>\n");
  } 

}

?>

<form action="index.php" method="post">
<input type="text" name="formName" value="<?=$varName;?>">
<input type="Submit" name="formSubmit" value="Search">
</form>

答案 2 :(得分:1)

你需要使用isset()函数

<?php
if(isset($_POST['formSubmit'])) 
{
  $errorMessage = "";

  if(empty($_POST['formName'])) 
  {
   echo $errorMessage .= "No Input";
  }
 else
 {
    $varName = $_POST['formName'];
 } 

}

 ?>

<form action="index.php" method="post">
<input type="text" name="formName" value="<?=$varName;?>">
<input type="Submit" name="formSubmit" value="Search">
</form>

答案 3 :(得分:0)

您的提交按钮名称错误。

<input type="Submit" name="formSubmit" value=" Search">

应该是

<input type="Submit" name="formSubmit" value="Search">

答案 4 :(得分:0)

更改此行

if($_POST['formSubmit'] == "Search") 

to

if(isset($_POST['formSubmit'])) 

答案 5 :(得分:0)

我正在做一些更正。请用这个。

<?php
if($_POST['formSubmit'] == "Search") {
    $errorMessage = "";
    if(empty($_POST['formName'])) {
        $errorMessage .= "<li>No Input</li>";
    } else {
        $varName = $_POST['formName'];
    }
    if(!empty($errorMessage)) {
        echo("<p>There was an error with your form:</p>\n");
        echo("<ul>" . $errorMessage . "</ul>\n");
    } 
}
?>

<form action="index.php" method="post">
    <input type="text" name="formName" value="<?=$varName;?>">
    <input type="Submit" name="formSubmit" value="Search">
</form>
  1. 更正了条件if($ _ POST ['formSubmit'] ==“搜索”)
  2. IF $ _POST ['formName']为空,则无需分配,因此将其置于其他条件下。