扩展联系表单验证PHP脚本中包含一些错误消息

问题描述:

以下是我想要扩展的联系表单验证脚本的代码。扩展联系表单验证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方面验证? –

+0

js验证:使用框架。 php验证:使用'regexp'和reffer到正则表达式库的电子邮件,电话,字符串等 – JonnieJS

<?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>'; 
?> 

我不是很确定你想达到什么,但我假设它是电子邮件服务器端验证?

如果是这样,你可以使用下面的PHP代码片段:

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

对不起你们,我写以前的错误代码(因为我在工作)

这是正确的:

<?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