这就是问题所在:验证过程在用户点击提交后开始。但是由于某种原因,代码无法正常工作。
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']){}不会被我的提交按钮触发。我想知道为什么会这样?
答案 0 :(得分:0)
在我看来,您似乎没有将变量分配给POST元素。
如果在第一个代码段中将$email
替换为$_POST['message_email']
,将$name
替换为$_POST['message_name']
,将$message
替换为$_POST['message_text']
,您可能会遇到好运
无论如何,我在此片段中可以看到很多未使用的变量,包括$headers
,$to
,$subject
,以及my_contact_form_generate_*
下使用的每个报告变量。确保还设置了这些。