提交时的PHP联系人表单验证

时间:2018-07-31 14:55:16

标签: php html contact-form

这就是问题所在:验证过程在用户点击提交后开始。但是由于某种原因,代码无法正常工作。

PHP:

if ($_POST['submitted']) {
    if(!filter_var($email, FILTER_VALIDATE_EMAIL))
        my_contact_form_generate_response("error", $email_invalid);
    else //email is valid
    {
        //validate presence of name and message
        if (empty($name) || empty($message)) {
            my_contact_form_generate_response("error", $missing_content);
        } else //ready to go!
        {
            $sent = wp_mail($to, $subject, strip_tags($message), $headers);
            if ($sent) my_contact_form_generate_response("success", $message_sent); //message sent!
            else my_contact_form_generate_response("error", $message_unsent); //message wasn't sent
        }
    }
} else {
    $response = "";
}

HTML:

<form action="<?php the_permalink(); ?>" class="contact" method="post">
                        <input type="text" placeholder="Your Name" name="message_name" value="<?php echo esc_attr($_POST['message_name']); ?>">
                        <input type="text" placeholder="Your Email" name="message_email" value="<?php echo esc_attr($_POST['message_email']); ?>">
                        <input type="text" placeholder="Your Company" name="message_company" value="<?php echo esc_attr($_POST['message_company']); ?>">
                        <textarea name="message_text" rows="10" placeholder="Your Message"><?php echo esc_textarea($_POST['message_text']); ?></textarea>
                        <button type="submit" class="contact-button" name="submitted">Submit</button>
                    </form>
                    <?php echo $response ?>

编辑: 抱歉,我忘了添加文章的最后一部分,我认为PHP脚本应该在我点击提交按钮时就可以正常工作。但是if($ _POST ['submitted']){}不会被我的提交按钮触发。我想知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

在我看来,您似乎没有将变量分配给POST元素。

如果在第一个代码段中将$email替换为$_POST['message_email'],将$name替换为$_POST['message_name'],将$message替换为$_POST['message_text'],您可能会遇到好运

无论如何,我在此片段中可以看到很多未使用的变量,包括$headers$to$subject,以及my_contact_form_generate_*下使用的每个报告变量。确保还设置了这些。