所以我有一个基本表格,您可以输入您的电子邮件或电话号码,然后输入所需的用户名。所以我想要做的只是输入电话号码或电子邮件。所以这就是我正在做的事情
这是我的变量
$email = htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8');
$phone = htmlspecialchars($_POST['phone'], ENT_QUOTES, 'UTF-8');
我如何检查字段
if(empty($email) || empty($phone)){
$errors['num_em'] = "Enter a valid email or phone number";
}
标记
<p class="alternative">OR</p>
<div id="DIV_7">
<input type="text" name="email" placeholder="Email" id="INPUT_8" autocomplete="off"/>
</div>
这个问题是它让我输入电子邮件和电话,这很奇怪,因为我正在使用OR
运算符。有任何想法吗?
答案 0 :(得分:2)
现在的方式,如果一个或另一个是空的,它将会失败。
您想要的是AND
运算符&&
。
if(!filter_var($email, FILTER_VALIDATE_EMAIL) && empty($phone))
{
$errors['num_em'] = "Enter a valid email or phone number";
}
为什么?
因为如果电子邮件是空的并且电话是空的,我们会失败。
但是,如果电子邮件不是空的并且电话是不符合要求的,那么我们是安全的,因为有1个填充而另一个是空的。
答案 1 :(得分:0)
试试这个:
if ($email == "" && $phone == "") {
$errors['num_em'] = "Enter either a valid email or phone number";
} else if ((strlen($email) > 0) && (strlen($phone) > 0)) {
$errors['num_em'] = "Enter either a valid email or phone number";
}
这样,如果两个字段都为空,则会出错。如果两个字段都已填满,则仍会出现错误。因此,只能输入一个字段。