我正在尝试进行电子邮件验证。
我有一个输入文本字段,当用户将数据输入到输入字段时,我将其写入文件。
我想要一个简单的代码来检查电子邮件是否有效,如果电子邮件无效,请返回原始页面,不要将其添加到.txt文件
目前我有:
// only do file operations when appropriate
if(isset($_POST['email']) && (filter_var($a, FILTER_VALIDATE_EMAIL)) {
$a = $_POST['email'];
$myFile = "email.txt";
$fh = fopen($myFile, 'a') or die("can't open file");
fwrite($fh, $a);
fclose($fh);
}
else
{
echo "Email is not Valid" . "<script>history.back()</script>";
}
正如您所看到的,我还没有弄清楚如何不将其添加到文本文件中,但我想让电子邮件过滤器首先运行。任何人都可以帮我解决这个问题吗?
修改:我也一直收到错误:
解析错误:语法错误,意外的'{'in 第39行的C:....... \ authorized.php
哪个是if语句的开头括号?
答案 0 :(得分:1)
我认为问题可能是您正在使用$ a,而if条件检查中未定义
我认为你应该
if(isset($_POST['email']) && (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)))
而不是
if(isset($_POST['email']) && (filter_var($a, FILTER_VALIDATE_EMAIL))
答案 1 :(得分:0)
您的代码中存在错误。您正在检查“if”中的$变量,但此变量是在if之后定义的。 您可以使用filter_input而不是filter_var:
$a = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);