2013-07-19 2 views
-1

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

Вот мой PHPФорма процесса PHP даже с ошибками

<?php 
if(($_SERVER['REQUEST_METHOD'] =='POST') && (!empty ($_POST['action']))): 

if (isset ($_POST['myname'])){$myname=$_POST['myname'];} 
if (isset ($_POST['myphone'])){$myphone=$_POST['myphone'];} 
if (isset ($_POST['myemail'])){$myemail=$_POST['myemail'];} 
if (isset ($_POST['job'])){$job=$_POST['job'];} 
if (isset ($_POST['comments'])){ 
    $comments= filter_var($_POST['comments'], FILTER_SANITIZE_STRING);} 

$formerrors = false; 



     if($myname === '') : 
     $err_myname = '<div class="error"> Sorry, your name is rquired</div>'; 
     endif;  

     if($myphone === ''): 
     $err_myphone = '<div class="error"> Sorry, your phone number is rquired</div>'; 
     endif;  

     if($myemail === ''): 
     $err_myemaile = '<div class="error"> Sorry, your email is rquired</div>'; 
     endif;  

     if($job === ''): 
     $err_job = '<div class="error"> Sorry, your business is rquired</div>'; 
     endif;  



if (!($formerrors)) : 
$to = "[email protected]"; 
$subject = " Request from $myname"; 

$message = "A new show and tell request from:\n 
      $myname \n 
      $myemail\n 
      $myphone\n 
      $job\n 
      $comments\n"; 
$replyto = "From: $myemail"; 


if(mail($to, $subject, $message)): 
    $msg ="Thanks for filling out our form"; 
    else: 
    $msg = "There was a problem sending the message"; 
    endif; //mail data 

endif; //check errors 

endif; //form submitted 

?> 

Если мне нужно размещать больше информации, такие как фактический HTML, пожалуйста, дайте мне знать.

ответ

4

Вы не устанавливаете $formerrors=true при возникновении ошибок, поэтому всегда установлено значение false и почта всегда отправляется.

попробовать что-то вроде этого:

if($myname === '') : 
    $err_myname = '<div class="error"> Sorry, your name is rquired</div>'; 
    $formerrors=true; 
endif;  
+0

Потрясающие спасибо за помощь – mhartington

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