0

我一直在四处寻找,并没有找到一种简单的方法来编辑此代码,以便当用户没有在必填字段中输入任何内容(所有字段都是必需的)时,会显示一个警报,要求用户请输入一些东西。

任何人都可以帮忙吗?

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

4 回答 4

1

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

试试这个链接。它显示了如何使用该required属性的简单演示。 这个也是

于 2013-08-14T10:58:33.747 回答
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
}
于 2013-08-14T11:15:35.170 回答
0

使用如下代码:-

$('.required').each(function(){
    if($(this).val()=="")
    {
         alert("error");
    }
});
于 2013-08-14T11:17:49.003 回答
0

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

在客户端,在提交表单时,我们应该检查字段是否正确并要求用户修复错误。有很多很棒的帮助库可以做到这一点,一些更常见的库是http://parsleyjs.org/http://jqueryvalidation.org/都使用 jQuery 并且有简单的示例来开始。

在服务器端,正如一些评论者所指出的,您当前的脚本容易受到标头注入和其他讨厌的东西的攻击。您可能想要切换到使用诸如 swiftmailer 之类的库,这将防止发生很多不好的事情。这是一个非常简单的示例,说明如何发送电子邮件http://swiftmailer.org/docs/sending.html

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

于 2013-08-14T11:18:36.267 回答