我正在开发用户注册表单,并希望验证用户的电子邮件地址。 但是,我读过的所有php文档都建议使用filter_var。 我的脚本将有效的电子邮件验证为无效。 请发布一个工作脚本或者指导我完成我的脚本。 她是我的剧本:
<?php
if(isset($_POST['email'])== true && empty($_POST['email'])false)
{
$email = $_POST['email'];
}
if(filter_var($email,FILTER_VALIDATE_EMAIL))
{
echo"valid email";
}
else
{
echo"invalid email";
}
?>
答案 0 :(得分:3)
if(isset($_POST['email'])== true && empty($_POST['email'])false)
这应该是
if(isset($_POST['email']) && !empty($_POST['email']) )
或@jack只能使用
if (!empty($_POST['email']))
empty()
隐式isset()
答案 1 :(得分:2)
$email = isset($_POST['email']) ? $_POST['email'] : "";
echo(filter_var($email,FILTER_VALIDATE_EMAIL) ? "valid email" : "invalid email");
答案 2 :(得分:0)
if(isset($_POST['email'])== true && empty($_POST['email'])false)
^^^^^^^--redundant ^^^^^---typo?
答案 3 :(得分:0)
在您的情况下,您不应该使用filter_var
,而是filter_input
。这是您需要的所有代码:
if ($email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL)) {
// email was submitted and is a valid email
}
此bug可能与您的问题有关。