【发布时间】:2018-05-31 00:34:52
【问题描述】:
我需要验证一个输入,稍后我需要对照数据库检查它是否存在于表中。输入必须是手机号码(所有数字,最大长度为 10)或电子邮件地址。以下是我所做的
<?php
$credential = '9999999999';
if (ctype_digit($credential)) {
$mobile_number = $credential;
echo 'Mobile: '. $mobile_number;
} elseif (filter_var($credential, FILTER_VALIDATE_EMAIL)) {
$email = $credential;
echo 'Email: '.$email;
}
输出当$credential = '9999999999';
Mobile: 9999999999
输出当$credential = 'abc@gmail.com';
Email: abc@gmail.com
两个问题,
有没有更好的方法?比如,使用 preg_match。
上面的代码设法区分了电子邮件和手机号码,稍后我需要与数据库进行匹配。在实际场景中,输入将由用户提供,
$credential = $_POST['credential'];,然后将相应地设置两个变量中的任何一个。我如何知道设置了两个变量中的哪一个?如果我要将电子邮件匹配到电子邮件列或将手机号码匹配到移动列,我需要知道这两者中哪一个有值,哪一个为空。
【问题讨论】:
-
如果两个条件都不返回真,你在做什么? ...好吧,你走了,我也走了。
-
@mickmackusa,嘿,谢谢你的回复,对不起,不得不走了。这不是确切的代码,而是我想提出的一个想法,验证也没有达到生产的标准,这个想法是有一个 10 位数的手机号码(中间没有空格,两端修剪)或有效的电子邮件。如果匹配良好,则回显未找到记录。
标签: php validation email phone-number