簡體   English   中英

Php輸入驗證沒有響應

[英]Php Input Validation not responding

我是網絡發展中國家的新手。請不要因為我有一些錯誤和知識不足而告訴我。

我正在嘗試研究用戶輸入的驗證過程。 以下是我的代碼:

<?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>

我認為應該發生的是當用戶單擊搜索按鈕而不輸入任何內容時會彈出錯誤消息,但我不明白為什么它沒有響應或回顯錯誤消息,我檢查名稱和值但是Alas ,感謝您提供給tnx的所有幫助/建議。

感謝大家的回復,讓它進入工作^ _ ^

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

因為PHP永遠不會驗證您的表單。

這有效:

<?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>

你需要使用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>

您為提交按鈕提供了錯誤的名稱。

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

它應該是

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

改變這一行

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

to

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

我正在做一些更正。 請用這個。

<?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. 如果$ _POST ['formName']為空,則無需分配,因此將其置於其他條件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM