2013-04-24 119 views
0

我正在提交一個表單來提交數據,但問題是這些錯誤沒有被回顯出來。如果所有字段都輸入正確,則表單成功提交數據,但當沒有數據時,不會返回錯誤輸出。我把剛纔的頭PHP表單驗證

這裏是下面的形式將此echo語句...

<label for="Name"> Names:</label> 
        <input type="text" name="Name" maxlength="25" size="24" class="input"/> 

<label for="Email">Email Address:</label> 

           <input type="text" name="Email" maxlength="30" size="24" class="input"/> 

<label for="Subject">Subject:</label><br/> 
           <input type="text" name="Subject" maxlength="25" size="25" class="input"/> 

<label for="Comments">Comments</label><br/> 
           <textarea rows="6" cols="50" name="Ujumbe"size="140" class="textarea"></textarea> 
    <input type="submit" value="Send Mail" name="submit" /> 

這裏是驗證碼...

<?php 
    if(isset($_POST['submit'])){ $error= array(); 

        if(empty($_POST['Name'])) { $error[]='Your name '; } 
        else if (!empty ($_POST['Name'])){ $Name=mysql_real_escape_string(htmlentities($_POST['Name'])); } 

        if(empty($_POST['Email'])) {$error[]='Your email address. '; } 

         else if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/",$_POST['Email'])){ 
          $Email = mysql_real_escape_string($_POST['Email']); 
          } 
          else { 
           $error[]='That you entered e-mail address is invalid.'; 
           } 

        if(empty($_POST['Comments'])){ $error[]='Enter a comment '; } 
             else if (!empty ($_POST['Comments'])) 
             { 
             $Comments=mysql_real_escape_string(htmlentities($_POST['Comments'])); 
             } 

        if(empty($_POST['Subject'])){ $error[]='Enter the subject '; } 
                else if (!empty ($_POST['Comments'])){ $Subject=mysql_real_escape_string(htmlentities($_POST['Subject'])); } 


     if (empty ($error)){ 

       header("messages.php?x=3"); 


         } 
     else{ 
      $error_message ='<br/><br/><span class="error"><br />You did not submit the following required information!<br/><br/>' ; 
      foreach($error as $key => $values) { 
         $error_message.= "<br/>$values<br/>"; 
       } 
        $error_message.="</span> <br/><br/><br/>"; 
          }} 

?> 
+1

您沒有任何'echo'語句。我會想像那是你的問題。 – vimist 2013-04-24 18:56:12

+0

請您通過正確縮進您的代碼來爲每個人(包括未來和當前您)提供一個巨大的幫助 – PeeHaa 2013-04-24 19:03:46

+0

您是否在一個現場網站上有此功能? – 2013-04-24 19:07:18

回答

0

更改的最後一部分的代碼看起來像這樣:

if (empty ($error)){ 
     header("messages.php?x=3"); 
    } else { 
     $error_message ='<br/><br/><span class="error"><br />You did not submit the following required information!<br/><br/>' ; 
     foreach($error as $key => $values) { 
      $error_message.= "<br/>$values<br/>"; 
     } 

     $error_message.="</span> <br/><br/><br/>"; 

     echo 'Please see the below error Messages: <br>' . $error_message; 
    } 

此外,而不是添加了無數<br>到您的代碼,這兩者都是醜陋不必要,你可以簡單地創建一個未排序的列表,請參閱下文,並使用margins分開列表中的項目。

  if (empty ($error)){ 
      header("messages.php?x=3"); 
     } else { 
      $error_message ='<span class="error">You did not submit the following required information!</span> 
<ul id="error-list"> 
' ; 
      foreach($error as $key => $values) { 
       $error_message.= "<li>$values</li>"; 
      } 

      $error_message.="</ul>"; 

      echo 'Please see the below error Messages: <br>' . $error_message; 
     } 

CSS:

.error{ 
    margin: 15px 0 10px 0; 
} 

#error-list li{ 
    margin-top: 10px; 
}