filter_var($email, FILTER_VALIDATE_EMAIL) 在 if 条件下不工作
filter_var($email, FILTER_VALIDATE_EMAIL) not working in if condition
我正在使用- filter_var($email, FILTER_VALIDATE_EMAIL) 验证电子邮件。
如果上面的函数 returns 为假,我想回应一个声明 'invalid email' 。然而,无论 if 语句 'invalid email' 从页面加载开始时就在屏幕上回显。帮助。
这是我的代码:
<?php $emailErr = ""; ?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<ul class="form-style-1">
<li>
<label for="email">Email</label>
<input placeholder="Email*" type="email" name="email" id="email" required>
</li>
<?php
if(filter_var($email, FILTER_VALIDATE_EMAIL) == false){
$emailErr = "Invalid email.";
echo $emailErr;}?>
</ul>
</form>
您似乎在验证电子邮件之前没有检查是否设置了 $email
。作为空字符串或 null
不是有效的电子邮件,测试失败并显示消息 invalid email
你应该使用这个:
if(!empty($email) && filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
$emailErr = "Invalid email.";
echo $emailErr;
}
我正在使用- filter_var($email, FILTER_VALIDATE_EMAIL) 验证电子邮件。 如果上面的函数 returns 为假,我想回应一个声明 'invalid email' 。然而,无论 if 语句 'invalid email' 从页面加载开始时就在屏幕上回显。帮助。
这是我的代码:
<?php $emailErr = ""; ?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<ul class="form-style-1">
<li>
<label for="email">Email</label>
<input placeholder="Email*" type="email" name="email" id="email" required>
</li>
<?php
if(filter_var($email, FILTER_VALIDATE_EMAIL) == false){
$emailErr = "Invalid email.";
echo $emailErr;}?>
</ul>
</form>
您似乎在验证电子邮件之前没有检查是否设置了 $email
。作为空字符串或 null
不是有效的电子邮件,测试失败并显示消息 invalid email
你应该使用这个:
if(!empty($email) && filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
$emailErr = "Invalid email.";
echo $emailErr;
}