PHP联系表单上的必需警报

时间:2013-08-14 10:53:45

标签: php forms

我一直在四处寻找并且没有找到一种简单的方法来编辑这段代码,这样当用户没有在必填字段中输入任何内容(需要所有字段)时,会显示一条警告请用户输入内容。

有人可以帮忙吗?

<?php
    $field_name = $_POST['name'];
    $field_email = $_POST['email'];
    $field_message = $_POST['message'];

    $mail_to = 'you@yourdomain.com';
    $subject = 'Site Mail';

    $body_message = 'From: '.$field_name."\n";
    $body_message .= 'Email: '.$field_email."\n";
    $body_message .= 'Message: '.$field_message;

    $headers = 'From: '.$field_email."\r\n";
    $headers .= 'Reply-To: '.$field_email."\r\n";

    $mail_status = mail($mail_to, $subject, $body_message, $headers);

    if ($mail_status) { ?>
        <script language="javascript" type="text/javascript">
            alert('Thanks! Your email has been sent.');
            window.location = 'index.html';
        </script>
    <?php
    }
    else { ?>
        <script language="javascript" type="text/javascript">
            alert('Sorry, something went wrong.');
            window.location = 'index.html';
        </script>
    <?php
    }
?>

4 个答案:

答案 0 :(得分:1)

如果您想利用html5功能,可以使用required属性。

试试 LINK 。它显示了如何使用required属性的简单演示。 This 一个

答案 1 :(得分:0)

<强> PHP

<?php
$fields = array([0]=>$field_name,[1]=>$field_email,[2]=>$field_message);
foreach($fields as $field){
    if !$field{
        echo "Please enter a value.";
    }
}
?>

或者,你可以使用javascript验证,它看起来像这样:

<script>
function formValid(){
  var valid = true;
  var fields = getElementByTag(input);
  for (var i;i>=fields.length;i++){
    if (!fields[i]){
      getElementById('warning').style.display='inline'; // assuming the error message element is called 'warning'
      getElementById('valid').value=1; // assuming we have an input that will indicate to the php code whether the form is validated  
    }
  }
}
</script>

对于这个脚本,我们将添加到form-action php块的开头:

if(isset($_POST['submit'])&&$_POST['valid']!=1){
// form action code goes here
}

答案 2 :(得分:0)

使用如下代码: -

$('.required').each(function(){
    if($(this).val()=="")
    {
         alert("error");
    }
});

答案 3 :(得分:0)

检查必填字段的最常用方法是在客户端(通知用户)和服务器端(在发送数据之前检查数据是否合法)。

在客户端,在提交表单的位置,我们应该检查字段是否正确并要求用户修复错误。有许多很棒的帮助程序库可以执行此操作,一些更常见的库http://parsleyjs.org/http://jqueryvalidation.org/都使用jQuery并且有简单的示例可以开始。

在服务器端,正如一些评论者指出的那样,您当前的脚本容易受到标头注入和其他令人讨厌的东西的攻击。您可能希望切换到使用swiftmailer等库,这样可以防止发生很多不好的事情。以下是如何发送电子邮件http://swiftmailer.org/docs/sending.html

的一个非常简单的示例

要向您添加服务器端验证示例,因为简单的方法是在调用$_POST['name'];之前检查$mailer->send($message);的值