Cara melaksanakan pendaftaran telefon mudah alih dalam PHP: 1. Letakkan alamat antara muka dan kunci aplikasi dalam fail konfigurasi 2. Kemaskan fungsi sendmsg dan gunakan curl untuk menghantar permintaan 3. Tentukan kaedah sendcode dalam pengawal; 4. Panggilan Fungsi sendmsg melaksanakan fungsi penghantaran SMS kod pengesahan.
Persekitaran pengendalian artikel ini: sistem windows10, php 7, komputer thindpad t480.
Kami biasanya perlu menghantar kod pengesahan SMS semasa mendaftar menggunakan nombor telefon mudah alih Kami juga perlu menghantar kod pengesahan SMS apabila melakukan operasi sensitif seperti menukar kata laluan. Jadi apakah yang perlu anda lakukan jika anda ingin menghantar kod pengesahan SMS dalam projek sebenar? Biasanya adalah perlu untuk memanggil antara muka penghantaran SMS pembekal SMS pihak ketiga.
Mari kita lihat bagaimana untuk mencapainya!
Pendaftaran telefon mudah alih:
Anda boleh meletakkan alamat antara muka dan kunci aplikasi dalam fail konfigurasi. Merangkumkan fungsi sendmsg untuk menghantar mesej teks Anda boleh menggunakan kaedah permintaan curl dalam PHP (pustaka fungsi curl dalam PHP) untuk menghantar permintaan.
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']; } }
Tentukan kaedah kod hantar dalam pengawal Apabila meja depan mengklik untuk menghantar kod pengesahan, ia menghantar permintaan ajax. Kaedah ini menerima nombor telefon mudah alih pengguna berdaftar di meja depan dan memanggil fungsi sendmsg untuk menghantar Fungsi SMS kod pengesahan.
//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]; }
Pendaftaran e-mel:
Pendaftaran e-mel dalam PHP boleh menggunakan pemalam PHPMailer untuk menghantar e-mel (lihat manual PHPMailer untuk butiran). Konfigurasikan maklumat akaun e-mel dalam fail konfigurasi, rangkumkan fungsi send_email dan gunakan phpmailer untuk menghantar e-mel.
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 } }
Kemudian panggil fungsi ini dalam kaedah pengawal untuk melaksanakan fungsi menghantar e-mel pengesahan ke peti mel pengguna berdaftar.
Pembelajaran yang disyorkan: latihan php
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pendaftaran telefon bimbit dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!