2013-04-24 4 views
0

Я делаю форму для отправки данных, но проблема в том, что ошибки не повторяются. если все поля введены правильно, форма успешно отправляет данные, но когда нет данных, вывод ошибки не возвращается. я поместил это эхо заявления чуть ниже заголовкаПроверка формы PHP

Вот форма ...

<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

+0

Пожалуйста, пожалуйста, сделайте все (включая будущее и текущее) огромной услугой, должным образом отпечатав свой код. – PeeHaa

+0

У вас есть это на живом сайте? –

ответ

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> в код, который является ugly и ненужным, вы можете просто создать неупорядоченный список, см. Ниже и использовать 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; 
} 
Смежные вопросы