php实现发送验证码功能的方法:1、创建好html和js文件;2、创建“msm.php”文件,内容为“public function sendmsm(){...}”;3、通过curl发送http请求即可。
本文操作环境:windows7系统、php7.1版、dell g3电脑
php怎么实现发送验证码的功能?
php实现发送短信验证码:
一、html代码
<li><span>手机号码:</span><input type="text" placeholder="手机号码" name="telephone"></li><li><span>验证码:</span><input type="text" placeholder="短信验证码" name="phonecode"><span class="code_btn" onclick ="return get_svg();">获取验证码</span></li>
二、js代码
/** * 发送验证码 * @return {[type]} [description] */function get_svg() {var phone = $("input[name='telephone']").val(); if (!(/^1[34578]\d{9}$/.test(phone))) {layer.msg("请正确输入手机号!");return false;} var url = "/msm/sendmsm/phone/" + phone;$.get(url, function (resdata) {console.log(resdata);layer.msg(resdata.data);if (resdata.type == 1) {$(".code_btn").attr('onclick', "return false;");listion_sendmsm();}})return false;} function listion_sendmsm() {var time = 61;settime = setinterval(function () {if (time <= 1) {clearinterval(settime);$(".code_btn").text("再发一次");$(".code_btn").attr('onclick', "return get_svg();");return;}time--;$(".code_btn").text(time + "s"); }, 1000);}
三、php代码实现
msm.php
/** * 发送短信 * @author * @return [type] [description] */public function sendmsm(){$phone = input('phone'); if(!$phone){return wpreturn('请输入手机号码!',-1);} $code = rand(1000,9999);$_session['code'] = $code;$res = sendmessage($code ,$phone);if($res){return wpreturn('发送成功',1);}else{return wpreturn('发送验证码失败!',-1);}} /* ** 类名:chuanglansmsapi* 功能:创蓝短信接口请求类* 详细:构造创蓝短信接口请求,获取远程http数据* 说明:* 以下代码只是样例代码,使用第三方创蓝发送短信接口。* 该代码仅供学习,只是提供一个参考。*/public function sendmessage($code, $telephone){$conf = getconf(''); if(!$code){return false;} if(!$telephone){return false;}$content = "您的验证码是:{$code},如非本人操作,请忽略此短信。";//创蓝接口参数$postarr = array ('account' => $conf['msm_appkey'],'password' => $conf['msm_secretkey'],'msg' => urlencode($content),'phone' => $telephone,'report' => true); $result = $this->curlpost("http://smssh1.253.com/msg/send/json", $postarr);$json = json_decode($result);if($json -> code != 0){return false;}else{return true;}} /** * 通过curl发送http请求 * @param string $url //请求url * @param array $postfields //请求参数 * @return mixed * */private function curlpost($url,$postfields){$postfields = json_encode($postfields);$ch = curl_init ();curl_setopt( $ch, curlopt_url, $url ); curl_setopt( $ch, curlopt_httpheader, array('content-type: application/json; charset=utf-8' //json版本需要填写 content-type: application/json;));curl_setopt($ch, curlopt_ipresolve, curl_ipresolve_v4); curl_setopt( $ch, curlopt_returntransfer, 1 );curl_setopt( $ch, curlopt_post, 1 );curl_setopt( $ch, curlopt_postfields, $postfields);curl_setopt( $ch, curlopt_timeout,60); curl_setopt( $ch, curlopt_ssl_verifyhost, 0);curl_setopt( $ch, curlopt_ssl_verifypeer, 0);$ret = curl_exec ( $ch );if (false == $ret) {$result = curl_error( $ch);} else {$rsp = curl_getinfo( $ch, curlinfo_http_code);if (200 != $rsp) {$result = "请求状态 ". $rsp . " " . curl_error($ch);} else {$result = $ret;}}curl_close ( $ch );return $result;}
推荐学习:《php视频教程》
以上就是php怎么实现发送验证码的功能的详细内容。