2014-02-12 1 views
2

Ниже приведен код скрипта проверки контактной формы, который я хотел бы расширить.Расширение проверки контактной формы PHP-скрипт с некоторыми сообщениями об ошибках

<?php 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 
    $from = 'From: DaVv'; 
    $to = '[email protected]'; 
    $subject = 'The topic'; 

    $body = "From: $name\n E-Mail: $email\n Message:\n $message"; 

    if ($_POST['submit'] {    
     if (mail ($to, $subject, $body, $from)) { 
      echo '<p>Your message has been sent!</p>'; 
     } else { 
      echo '<p>Something went wrong, go back and try again!</p>'; 
     } 
    } else if ($_POST['submit'] { 
     echo '<p>You answered the anti-spam question incorrectly!</p>'; 
    } 
?> 

Я хочу добавить еще одно сообщение для пользователя о письме, например: «Пожалуйста, введите правильный адрес электронной почты». когда, например, они не пишут «@». Я знаю, что это включено в html 5, но я хотел бы сделать это без HTML5.

+0

Вы имеете в виду проверку на стороне клиента? –

+0

js валидация ?? или php side validation? –

+0

js проверка: использование рамки. php validation: используйте 'regexp' и reffer для библиотеки regexp для электронной почты, телефона, строк и т. д. – JonnieJS

ответ

0
<?php 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 
    $from = 'From: DaVv'; 
    $to = '[email protected]'; 
    $subject = 'The topic'; 

    $body = "From: $name\n E-Mail: $email\n Message:\n $message"; 

    if(isset($_POST['submit'])) 
    { 
     if(filter_var($email, FILTER_VALIDATE_EMAIL) !== false) 
     {    
      if(mail ($to, $subject, $body, $from)) 
       echo '<p>Your message has been sent!</p>'; 
      else 
       echo '<p>Something went wrong, go back and try again!</p>'; 
     } 
     else 
      echo '<p>Wrong Email</p>'; 

    } 
    else if(!isset($_POST['submit'])) 
     echo '<p>You answered the anti-spam question incorrectly!</p>'; 
?> 
0

Я не совсем уверен, чего вы пытаетесь достичь, но я предполагаю, что это проверка на стороне сервера для электронной почты?

Если это так, вы можете использовать следующий PHP фрагмент:

if(!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    // The user supplied an invalid e-mailaddress 
} 
0

жаль, ребята я написал неправильный код ранее (coz я работал)

это правильно:

<?php 
$name = $_POST['name']; 
$email = $_POST['email']; 
$message = $_POST['message']; 
$from = 'From: domain.com'; 
$to = '[email protected]'; 
$subject = 'Message from domain.com'; 

$body = "From: $name\n E-Mail: $email\n Message:\n $message"; 

if ($_POST['submit']) { 
    if ($name != '' && $email != '') {     
     if (mail ($to, $subject, $body, $from)) { 
     echo '<p class="msg">Your message has been sent!</p>'; 
     } else { 
     echo '<p class="msg">Something went wrong, go back and try again!</p>'; 
     } 
      } else { 
       echo '<p class="msg">You need to fill in all required fields!!</p>'; 
      } 
    } 
?>  

И это я хотел бы добавить проверку электронной почты (на стороне сервера) и Сообщ «U написал неправильный адрес электронной почты» или что-н, как ... но Я не хочу удалить любое из сообщений, которые теперь включены в контактную форму. Просто хочу добавить информацию о неправильном письме.

Еще раз спасибо за помощь;)

+0

, а также я хотел бы отобразить только одно« сообщение об ошибке », даже если бы было« не все поля заполнены »и «неправильный адрес электронной почты», я бы хотел отобразить только одну ошибку из этих двух (это пример) – DaVv

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