Comment implémenter l'enregistrement du téléphone mobile en php

王林
Libérer: 2023-03-13 09:48:02
original
2124 Les gens l'ont consulté

Comment implémenter l'enregistrement du téléphone mobile en PHP : 1. Mettez l'adresse de l'interface et la clé d'application dans le fichier de configuration ; 2. Encapsulez la fonction sendmsg et utilisez curl pour envoyer la requête ; Appelez la fonction sendmsg pour implémenter la fonction d’envoi de SMS de code de vérification.

Comment implémenter l'enregistrement du téléphone mobile en php

L'environnement d'exploitation de cet article : système windows10, php 7, ordinateur thinkpad t480.

Nous avons généralement besoin d'envoyer un code de vérification par SMS lors de l'inscription avec un numéro de téléphone mobile. Lors de l'exécution d'opérations sensibles telles que la modification de mots de passe, nous avons également besoin d'un numéro de téléphone mobile pour envoyer un code de vérification par SMS. Alors, que devez-vous faire si vous souhaitez envoyer un code de vérification par SMS dans un projet réel ? Il est généralement nécessaire d'appeler l'interface d'envoi de SMS du fournisseur de SMS tiers.

Voyons comment y parvenir !

Inscription mobile :

Vous pouvez mettre l'adresse de l'interface et la clé d'application dans le fichier de configuration. Encapsulez une fonction sendmsg pour envoyer des messages texte. Vous pouvez utiliser la méthode de requête curl en PHP (bibliothèque de fonctions curl en PHP) pour envoyer la requête.

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'];
    }
}
Copier après la connexion

Définissez une méthode sendcode dans le contrôleur. Lorsque la réception clique pour envoyer le code de vérification, elle envoie une requête ajax. Cette méthode reçoit le numéro de téléphone portable de l'utilisateur enregistré à la réception et appelle la fonction sendmsg. mettre en œuvre la fonction d’envoi de SMS de code de vérification.

 //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];
    }
Copier après la connexion

Inscription par e-mail :

L'enregistrement par e-mail en PHP peut utiliser le plug-in PHPMailer pour envoyer des e-mails (voir le manuel PHPMailer pour plus de détails). Configurez les informations du compte de messagerie dans le fichier de configuration, encapsulez une fonction send_email et utilisez phpmailer pour envoyer des 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
    }
}
Copier après la connexion

Appelez ensuite cette fonction dans la méthode du contrôleur pour implémenter la fonction d'envoi d'e-mails de vérification aux boîtes aux lettres des utilisateurs enregistrés.

Apprentissage recommandé : Formation php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!