php - 提交时的 PHP 联系表单验证
问题描述
所以交易是这样的:验证过程在用户点击提交后开始。但是由于某种原因,代码无法正常工作。
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']) {} 不会被我的提交按钮触发。我想知道为什么会这样?
解决方案
对我来说,您似乎没有将变量分配给 POST 元素。
如果您在第一个片段中替换为$email
、$_POST['message_email']
、$name
,$_POST['message_name']
您可能会发现更好的运气。$message
$_POST['message_text']
无论如何,我可以在这个片段中看到很多未使用的变量,包括$headers
、$to
、$subject
以及在my_contact_form_generate_*
. 确保这些也已设置。
推荐阅读
- javascript - 如何将查询 graphql 转换为 json 对象?
- python - 如何在 TF2.0 中用 GradientTape 替换 Keras 的 gradients() 函数?
- php - 多站点管理员在子目录中安装“ERR_TOO_MANY_REDIRECTS”
- postgresql - 如何使用 .bat 文件执行 postgreSql 查询
- pyspark - PySpark 超时异常
- asp.net-core - 从服务中获取类类型的可靠方法,通过 .Net Core DI 实例化
- python - 过去 2 个月的平均值
- excel - 将值分配给数组时出现类型不匹配错误
- mysql - 如何使用 NodeJS 在 MySQL 数据库表中插入行
- python - 如何将模块中的所有 printf 样式转换为 python 中的格式化样式?