2012-06-08 2 views
1

У меня есть эта контактная форма на моем веб-сайте, но я не могу проверить, заполнены ли поля формы.Форма для связи - Проверка того, выполнил ли пользователь все поля

<form id="cform" name="cform" method="post" action="<?php bloginfo('template_directory'); ?>/cform.php"> 
    <div id="nande"> 
    <p><input type="text" id="name" name ="name"; onfocus="if(this.value=='Your Name is')this.value='';" onblur="if(this.value=='')this.value='Your Name is';" alt="Your Name" value="Your Name is"/></p> 
    <p> <input type="text" id="e-mail" name="mail" onfocus="if(this.value=='Your Email is')this.value='';" onblur="if(this.value=='')this.value='Your Email is';" alt="Your Email" value="Your Email is"/></p> 
    </div> 
    <div class="clear"></div> 
    <p><textarea name="message" rows="4" id="comments" tabindex="4" title="comments" onfocus="if(this.value=='Your Message is')this.value='';" onblur="if(this.value=='')this.value='Your Message is';"">Your Message is</textarea></p> 
    <div class="clear"></div> 
    <p><input name="submit" type="submit" value="SEND" id="submit"/></p> 
</form> 

Ниже PHP для формы

<?php 
if(isset($_POST['submit'])) { 
    $to = '[email protected]' ;  //put your email address on which you want to receive the information 
    $subject = 'designdone project email'; //set the subject of email. 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    $message = "<table><tr><td>Your Name</td><td>".$_POST['name']."</td></tr> 
       <tr><td>E-Mail</td><td>".$_POST['email']."</td></tr> 
       <tr><td>Message</td><td>".$_POST['message']."</td> 
       </tr></table>" ; 
mail($to, $subject, $message, $headers); 
header('Location: http://designdone.com') ; 
} 
?> 

Как я могу проверить, если пользователь Заполнив форму и не отправляет пустую форму?

Благодарим за помощь.

+0

Я решил проблему, используя эту форму http://www.freecontactform.com/email_form.php Это та же концепция, которую предложил @editor. – designdone

ответ

3

Попробуйте использовать isset() или empty() на полях $_POST.

Например:

foreach ($_POST as $attr => $val) { 
    if (!isset($_POST[ $attr ]) || empty($_POST[ $attr ])) { 
    die('Please fill out all fields.'); 
    } 
} 
+0

Спасибо за быстрый ответ. Я получаю эту ошибку «Ошибка анализа: синтаксическая ошибка, неожиданный T_EXIT» в строке с кодом «die». – designdone

+1

вы можете написать echo вместо die и использовать 'exit();' – Dion

+0

Я решил проблему, используя эту форму freecontactform.com/email_form.php. Это та же концепция, предложенная вами. Так что спасибо. – designdone

1

Я бы рекомендовал использовать библиотеку валидации. Есть много доступных, и большинство из них очень гибкие.

+1

Зачем работать сами? –

0

В javascript вы можете использовать .isEmpty, чтобы определить, пустое поле или нет.

+0

К сожалению, я не эксперт в js. Можете ли вы рассказать мне, как включить его в мой код. Я ценю ваше время. Благодарю. – designdone

+0

Обычный javascript - не моя сильная сторона (я лично предпочитаю jQuery). Но http://www.w3schools.com/js/js_form_validation.asp должно быть достаточно, чтобы вы могли понять основы и дать вам представление о том, что делать (хотя isEmpty там не используется, есть другие способы проверки полей) , – Darvex

Смежные вопросы