Heim >Backend-Entwicklung >PHP-Problem >So implementieren Sie die Mobiltelefonregistrierung in PHP

So implementieren Sie die Mobiltelefonregistrierung in PHP

王林
王林Original
2021-10-14 16:59:482172Durchsuche

So implementieren Sie die Mobiltelefonregistrierung in PHP: 1. Geben Sie die Schnittstellenadresse und den Appkey ein. 2. Kapseln Sie die sendmsg-Funktion und verwenden Sie Curl, um die Anfrage zu senden. 4. Definieren Sie die sendcode-Methode. Rufen Sie die sendmsg-Funktion auf, um die SMS-Sendefunktion für Bestätigungscodes zu implementieren.

So implementieren Sie die Mobiltelefonregistrierung in PHP

Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP 7, Thindpad T480-Computer.

Bei der Registrierung mit einer Mobiltelefonnummer müssen wir normalerweise einen SMS-Bestätigungscode senden. Bei sensiblen Vorgängen wie dem Ändern von Passwörtern benötigen wir auch eine Mobiltelefonnummer, um einen SMS-Bestätigungscode zu senden. Was sollten Sie also tun, wenn Sie in einem tatsächlichen Projekt einen SMS-Bestätigungscode senden möchten? In der Regel ist es erforderlich, die SMS-Versandschnittstelle des SMS-Drittanbieters aufzurufen.

Schauen wir uns an, wie wir es erreichen können!

Mobile Registrierung:

Sie können die Schnittstellenadresse und den Appkey in die Konfigurationsdatei einfügen. Kapseln Sie eine Funktion sendmsg zum Senden von Textnachrichten. Sie können die Curl-Anfragemethode in PHP (Curl-Funktionsbibliothek in PHP) verwenden, um die Anfrage zu senden.

if (!function_exists('sendmsg')) {
    function sendmsg($phone, $msg){
        //从配置文件读取接口信息
        $gateway = config('msg.gateway');
        $appkey = config('msg.appkey');
        //准备请求地址
        $url = $gateway . "?appkey=" . $appkey . "&mobile=" . $phone . "&content=" . $msg;
        //发送请求 比如get方式  https请求
        $res = curl_request($url, false, [], true);
 
        if (!$res) {
            return "请求发送失败";
        }
        //请求发送成功,返回值json格式字符串
        $arr = json_decode($res, true);
        if ($arr['code'] == 10000) {
            return true;
        }
        return $arr['msg'];
    }
}

Definieren Sie eine Sendcode-Methode im Controller. Wenn die Rezeption zum Senden des Bestätigungscodes klickt, sendet sie eine Ajax-Anfrage an die Mobiltelefonnummer des registrierten Benutzers und ruft die sendmsg-Funktion auf Implementieren Sie die Funktion zum Senden von Bestätigungscodes per SMS.

 //ajax请求发送注册验证码
    public function sendcode($phone)
    {
        //参数验证
        if (empty($phone)) {
            return ['code' => 10002, 'msg' => '参数错误'];
        }
        //短信内容  您用于注册的验证码为:****,如非本人操作,请忽略。
        $code = mt_rand(1000, 9999);
        $msg = "您用于注册的验证码为:{$code},如非本人操作,请忽略。";
        //发送短信
        $res = sendmsg($phone, $msg);
        if ($res === true) {
            //发送成功,存储验证码到session 用于后续验证码的校验
            session('register_code_' . $phone, $code);
            return ['code' => 10000, 'msg' => '发送成功', 'data' => $code];
        }
        return ['code' => 10001, 'msg' => $res];
    }

E-Mail-Registrierung:

Die E-Mail-Registrierung in PHP kann das PHPMailer-Plug-in zum Senden von E-Mails verwenden (Einzelheiten finden Sie im PHPMailer-Handbuch). Konfigurieren Sie die E-Mail-Kontoinformationen in der Konfigurationsdatei, kapseln Sie eine send_email-Funktion und verwenden Sie phpmailer zum Senden von E-Mails.

if (!function_exists('send_email')) {
    //使用PHPMailer发送邮件
    function send_email($email, $subject, $body){
        //实例化PHPMailer类  不传参数(如果传true,表示发生错误时抛异常)
        $mail = new PHPMailer();
//        $mail->SMTPDebug = 2;                              //调试时,开启过程中的输出 
        $mail->isSMTP();                                     // 设置使用SMTP服务
        $mail->Host = config('email.host');                  // 设置邮件服务器的地址
        $mail->SMTPAuth = true;                              // 开启SMTP认证
        $mail->Username = config('email.email');             // 设置邮箱账号
        $mail->Password = config('email.password');            // 设置密码(授权码)
        $mail->SMTPSecure = 'tls';                            //设置加密方式 tls   ssl
        $mail->Port = 25;                                    // 邮件发送端口
        $mail->CharSet = 'utf-8';                           //设置字符编码
        //Recipients
        $mail->setFrom(config('email.email'));//发件人
        $mail->addAddress($email);     // 收件人
        //Content
        $mail->isHTML(true);                                  // 设置邮件内容为html格式
        $mail->Subject = $subject; //主题
        $mail->Body    = $body;//邮件正文
//      $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
        if ($mail->send()) {
            return true;
        }
        return $mail->ErrorInfo;
//        $mail->ErrorInfo
    }
}

Dann rufen Sie diese Funktion in der Controller-Methode auf, um die Funktion zum Senden von Bestätigungs-E-Mails an registrierte Benutzerpostfächer zu implementieren.

Empfohlenes Lernen: php-Schulung

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Mobiltelefonregistrierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn