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.
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']; } }
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]; }
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 } }
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!