>  기사  >  백엔드 개발  >  PHP로 휴대폰 등록을 구현하는 방법

PHP로 휴대폰 등록을 구현하는 방법

王林
王林원래의
2021-10-14 16:59:482129검색

PHP에서 휴대폰 등록을 구현하는 방법: 1. 인터페이스 주소와 앱 키를 구성 파일에 넣습니다. 2. sendmsg 함수를 캡슐화하고 컬을 사용하여 요청을 보냅니다. 3. 컨트롤러에서 sendcode 메서드를 정의합니다. 인증코드 SMS 전송 기능을 구현하기 위해 sendmsg 함수를 호출합니다.

PHP로 휴대폰 등록을 구현하는 방법

이 기사의 운영 환경: windows10 시스템, PHP 7, Thindpad t480 컴퓨터.

일반적으로 휴대폰 번호로 등록할 때 SMS 인증 코드를 보내야 합니다. 비밀번호 변경과 같은 민감한 작업을 수행할 때 SMS 인증 코드를 보내려면 휴대폰 번호도 필요합니다. 그렇다면 실제 프로젝트에서 SMS 인증코드를 보내고 싶다면 어떻게 해야 할까요? 일반적으로 타사 SMS 제공업체의 SMS 전송 인터페이스를 호출해야 합니다.

이를 달성하는 방법을 살펴보겠습니다!

모바일 등록:

구성 파일에 인터페이스 주소와 앱키를 넣을 수 있습니다. 문자 메시지 전송을 위한 함수 sendmsg를 캡슐화합니다. PHP의 컬 요청 메소드(PHP의 컬 함수 라이브러리)를 사용하여 요청을 보낼 수 있습니다.

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

프론트에서 인증코드 전송을 클릭하면 Ajax 요청을 컨트롤러에서 정의합니다. 이 메서드는 프론트에서 등록된 사용자의 휴대폰 번호를 받아 sendmsg 함수를 호출합니다. 인증번호 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];
    }

이메일 등록:

PHP에서 이메일 등록은 PHPMailer 플러그인을 사용하여 이메일을 보낼 수 있습니다(자세한 내용은 PHPMailer 매뉴얼 참조). 구성 파일에서 이메일 계정 정보를 구성하고, send_email 함수를 캡슐화하고, phpmailer를 사용하여 이메일을 보냅니다.

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
    }
}

그런 다음 컨트롤러 메소드에서 이 함수를 호출하여 등록된 사용자 사서함으로 확인 이메일을 보내는 기능을 구현합니다.

추천 학습: php training

위 내용은 PHP로 휴대폰 등록을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.