如何验证数据库中已经存在的电话号码,并且必须仅发送OTP来注册手机号码


how to verify phone number which is already there in database or not, and have to send otp only to register mobile numbers

我正在开发Android应用程序,其中应用程序应在使用OTP验证用户手机号码后显示注册配置文件。我正在使用MySQL作为数据库并使用PHP访问数据库并使用JSON解析来自PHP的回复。我正在使用 REST 服务来开发此应用程序。你能帮我找到解决方案吗?我必须只发送注册电话号码的一次性密码提前致谢

从 PHP

获取注册的电话号码,仅通过 PHP 发送 OTP。用户将通过API点击验证手机号码,并检查OTP是否与用户的电话号码匹配,并将已验证号码的字段设置为是/否或0/1。然后在通过PHP发送响应时检查手机号码是否经过验证。在 PHP 端处理请求和响应是更好的方法,因为它需要较少的应用程序更改。

PHP代码生成OTP

public function generaterefCode() {
        $alphabet = "0123456789";
        $pass = array();
        $alphaLength = strlen($alphabet) - 1;
        for ($i = 0; $i < 8; $i++) {
            $n = rand(0, $alphaLength);
            $pass[] = $alphabet[$n];
            }
        return implode($pass);
    }

此函数将生成 OTP。获取此OTP,将短信发送到注册的手机号码,并将其保存在数据库中的手机号码中。

从安卓APP获取请求,并发送用户ID,手机号码和OTP。然后从数据库获取用户 ID 的值,并检查手机号码和 OTP 是否匹配。在此更新后,数据库作为移动验证是/否或 0/1

if($this->isNumAlreadyExists(9XXXXXXXX1)){
 $query = 'INSERT INTO OTP_table VALUES (9XXXXXXXX1, OTP, USERID)';
 (new PDO())->query($query);
 $code = rand(10, 99) . rand(10, 99) . rand(10, 99);
 $status = $this->sendSMS(9XXXXXXXX1, $code);
}
function sendSMS($number, $code){
 //user curl call of your sms service provider   
}
function isNumAlreadyExists($number){
  $query = 'SELECT UserID FROM table_user WHERE Mobile = 9XXXXXXXX1';
  $tmp = (new PDO())->query($query);
  $result = $tmp->fetch(PDO::FETCH_ASSOC);
  if($result){
    return true;
  }
  else {
    return false;
  }
}

您可以设置表的 OTP 字段 NULL(默认情况下)。生成 OTP 时,必须将空值替换为生成的 OTP 值。经过用户端的验证过程。编写查询以使字段再次为 NULL。