PHP电子邮件和url验证
所以我用php、css和html制作了一个小小的联系表单。但当我尝试添加电子邮件验证时,它仍然会发送电子邮件,并且不会将输入的样式更改为红色(就像我希望的那样)。我遇到的另一个问题是按钮重定向到页面顶部(我不希望它这样做)。最后,我可以让输入保留文本,而不是在提交后将其删除 HTML:PHP电子邮件和url验证,php,html,css,Php,Html,Css,所以我用php、css和html制作了一个小小的联系表单。但当我尝试添加电子邮件验证时,它仍然会发送电子邮件,并且不会将输入的样式更改为红色(就像我希望的那样)。我遇到的另一个问题是按钮重定向到页面顶部(我不希望它这样做)。最后,我可以让输入保留文本,而不是在提交后将其删除 HTML: 联系方式 提交 PHP: 尝试使用php验证电子邮件 <?php if (isset($_POST) && !empty($_POST)) { $name = $_P
联系方式
提交
PHP:
尝试使用php验证电子邮件
<?php
if (isset($_POST) && !empty($_POST)) {
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$visitors_site = $_POST['site'];
$message = $_POST['message'];
$email_from = 'mattmowen1@gmail.com';
$email_subject = 'New Contact Submission';
$to = 'mattmowen1@gmail.com';
$headers = "From:" . $email;
$headers = "Contact Submission From: " . $email;
$message1 = "Name: " . $name;
$message2 = "\n\nEmail: " . $email;
$message3 = "\n\nPhone: " . $phone;
$message4 = "\n\nTheir Site: " . $visitors_site;
$message5 = "\n\nMessage: " . $message;
$email_body = $message1 . $message2 . $message3 . $message4 . $message5;
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
mail($to, $email_subject, $email_body,$headers);
} else {
echo "<style>#email-input {color:red}</style>";
}
}
?>
要处理JSON请求,您需要发送JSON对象作为响应。因此,将php代码段更改为:
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
mail($to, $email_subject, $email_body,$headers);
exit(json_encode(array('error' => 0)));
} else {
exit(json_encode(array('error' => 1)));
}
不。即使不提交,样式也会变为红色。但这次它没有发送电子邮件。您需要检查
$\u POST
是否为!empty
仅在表单获得提交时执行php代码。让我更新我的答案代码虽然这是一个有效的编辑,但我不明白你为什么选择使用==false
,而你本可以删除代码>。如果电子邮件有效,它将返回电子邮件,如果无效,它将返回false,因此添加==false
似乎是多余的。加载时仍然是红色,而不是无效提交时。此外,该按钮还会将您引导到页面顶部。还有一个问题,我如何将文本保存在那里,并将其变为红色。@bc2946088您可以访问此处验证您的php验证逻辑()@bc2946088filter\u var()
如果有效,则不会返回true
;如果有效,它将返回过滤后的值。在某些情况下,可能是0
或其他一些“假”值。因此,您必须使用false!==filter_var(/*etc.*/)
。啊,我看到,在我对有效和无效的简单测试中,它工作得非常好。谢谢你的解释。为了清楚起见,我将删除我的评论@DecentDabbler谢谢你的问题Matt,但是对于未来,我想请你把你的问题分开,因为你现在基本上同时问三个问题。有关原因的说明,请参见。
<?php
if (isset($_POST) && !empty($_POST)) {
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$visitors_site = $_POST['site'];
$message = $_POST['message'];
$email_from = 'mattmowen1@gmail.com';
$email_subject = 'New Contact Submission';
$to = 'mattmowen1@gmail.com';
$headers = "From:" . $email;
$headers = "Contact Submission From: " . $email;
$message1 = "Name: " . $name;
$message2 = "\n\nEmail: " . $email;
$message3 = "\n\nPhone: " . $phone;
$message4 = "\n\nTheir Site: " . $visitors_site;
$message5 = "\n\nMessage: " . $message;
$email_body = $message1 . $message2 . $message3 . $message4 . $message5;
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
mail($to, $email_subject, $email_body,$headers);
} else {
echo "<style>#email-input {color:red}</style>";
}
}
?>
<script>
var url = 'email.php';
$.ajax({
url : url,
type : "POST",
dataType : "JSON",
data : $('#contact-form').serialize(),
success : function(response) {
if (response.error == 0) { // success
$('#contact-form')[0].reset();
alert('Form submitted successfully. We will contact you asap.');
} else { // error
$('#email-input').css('color', 'red');//in case of email error
alert('ERROR MESSAGE');//form is invalid
}
}
})
</script>
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
mail($to, $email_subject, $email_body,$headers);
exit(json_encode(array('error' => 0)));
} else {
exit(json_encode(array('error' => 1)));
}