我在HTML5中创建了一个联系表单,我想用PHP验证它。我在UDEMY课程中使用了 Brad Hussey 所展示的方法。所以我用POST方法得到了数据。然后是这段代码:
if ($_POST) {
if (!$_POST['nev']) {
$error .= "Kérem töltse ki a név mezőt!<br>";
}
if (!$_POST['email']) {
$error .= "Kérem adja meg az email címet!<br>";
}
if ($_POST['email'] && STfilter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false) {
$error .= "A(z) $emailcim cím nem valós";
}
if ($error != "") {
$error ='<div class="alert alert-danger" role="alert">Hiba lépett fel!<br>' . $error . '</div>';
} else {
$nev = $_POST['nev'];
$emailcim = $_POST['email'];
include 'phpmailer.php';
}
}
phpmailer.php可以正常工作,如果我单独编辑它。如果我跳过验证并直接转到phpmailer.php,一切都还可以。所以问题应该在这3个IF语句中,只是我无法弄明白:(
你有什么想法吗?
更新:对不起,我没有写好这个问题。这只是简单的白页。因此,当我点击提交按钮时,它不会发送邮件,也不会返回到网站。它变成了一个完全空白的页面。像我想念的那样;标志。但是我多次检查它(使用语法检查器),没有任何遗漏。
我认为问题可能出在这里:
if ($_POST['email'] && STfilter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false) {
$error .= "A(z) $emailcim cím nem valós";
}
我真的不明白这部分的工作原理。
答案 0 :(得分:0)
TuğcaEker是对的!
问题是STfilter_var
前缀。
正确的陈述是:
if ($_POST['email'] && filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false) {
$error .= "A(z) $emailcim cím nem valós";
}