短信验证-互亿短信

第一步:

控制器

一个空的前端显示控制器

 //代理注册
    public function proxyreg(){

        $this->display();
    }


短信后台代码

//随机数产生函数
    private function GetRandStr($len, $rtype = 0){
        if ($rtype == 0) {
            $chars = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
                           "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
                           "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
                           "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
                           "S", "T", "U", "V", "W", "X", "Y", "Z", "1", "2",
                           "3", "4", "5", "6", "7", "8", "9");
        }else{
            $chars = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
        }
        $charsLen = count($chars) - 1;
        shuffle($chars);
        $output = "";
        for ($i=0; $i<$len; $i++){
            $output .= $chars[mt_rand(0, $charsLen)];
        }
        return $output;
    }


        // 发送短信
    public function sms(){
        $mobile_code = $this->GetRandStr(4,1);
        //$this->logger("aaaaaa");
        $unifiedOrder = new \UnifiedOrder_pub();

        $mobile = $_POST['mobile'];

        if($mobile=="18128826867" || $mobile=="15992875599"){
            $gets = array('code' => 2, 'msg' => '提交成功');
            $mobile_code = '1234';
        }else{
            $target = "http://106.ihuyi.cn/webservice/sms.php?method=Submit";
            $post_data = "account=cf_chenqiang&password=chenqiang&mobile=".$mobile."&content=".rawurlencode("您的验证码是:".$mobile_code."。请不要把验证码泄露给其他人。");

            //密码可以使用明文密码或使用32位MD5加密
            // $send = $this->Post($post_data, $target);
            $wechatUser = $this->wechatUser;
            $send = $wechatUser->request_post($target, $post_data);
            $gets = $unifiedOrder->xmlToArray($send);           
        }

        if($gets['code']==2){
            $smsjson="{\"rcode\":".$gets['code'].",\"rmsg\":".$mobile_code."}";
        }else{
            $smsjson="{\"rcode\":".$gets['code'].",\"rmsg\":\"".$gets['msg']."\"}";
        }
        $this->ajaxReturn($smsjson,'json');
    }

    //日志记录
    private function logger($content){
        $logSize=100000;
        $log="log.txt";
        if(file_exists($log) && filesize($log)  > $logSize){
            unlink($log);
        }
        file_put_contents($log,date('H:i:s')." ".$content."\n",FILE_APPEND);
    }


第二部:

前端部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>代理注册</title>
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <link rel="stylesheet" type="text/css" href="__PUBLIC__/Daikuan/New/js/duanxin.js">
<script type="text/javascript">
// 确认当前用户端的信息是否发生修改
    function vertifyModify(){
        var modify="";
        var passStyle = $('input:radio[name="passStyle"]:checked').val();

        
        if(''!=$.trim($('#telPhone').val())){
            modify = modify+"9,";
        }
        if(''!=passStyle){
            modify = modify+"10,";
        }
        modify = modify+"0";
        return modify;
    }


    // 注册提交
    var smsData;
    function proxyreg1() {
        var passStyle = $('input:radio[name="passStyle"]:checked').val();
        var jsdata=JSON.parse(smsData);
        var vertifystr = jsdata.rmsg;

        if($.trim(vertifystr)!=$.trim($('#vertifyCode').val())){
            alert("您输入的验收证码不对!");
            return false;
        }else{
            $.ajax({
                type : "POST",
                dataType:"text",
                url : "/Daikuan/Weixin/proxyreg1/",
                data : {
                    telPhone : $('#telPhone').val(),
                    flag : 1,
                    modify : vertifyModify()
                },
                success : function(res) {
                    var jsondata = eval('(' + res + ')');
                    var jsdata=JSON.parse(jsondata);
                    alert(jsdata.smsresult);
                    if(jsdata.result > 0){
                        WeixinJSBridge.call('closeWindow');
                    }
                }
            });
        }
    }

    // 短信发送
    function get_mobile_code(){
        var mobile = jQuery.trim($('#telPhone').val());
        var zphone = document.getElementById('zphone');
        
        if(mobile.length != 11){
            alert('手机号码!');
            $('#telPhone').focus();
        }else{
            if(vertifyModify()=="0"){
                alert("您的注册信息未发任何修改!");
            }else{
                document.getElementById('zphone').disabled = true;
                $.ajax({
                    type : "POST",
                    dataType:"text",
                    url : "Daikuan/Weixin/sms",
                    data : {mobile:mobile},
                    success : function(res) {
                       // alert(res);
                        var json = eval('(' + res + ')');
                        var jsonstr=JSON.parse(json);
                        if(jsonstr.rcode==2){
                            smsData = json;
                            RemainTime();
                        }else{
                            alert("发送短信失败原因:"+jsonstr.rmsg);
                            document.getElementById('zphone').disabled = false;
                            document.getElementById('showTooltips').disabled = true;
                        }
                    }
                });
            }
        }
    }

    var iTime = 59;
    var Account;
    function RemainTime(){
        var iSecond,sSecond="",sTime="";
        if (iTime >= 0){
            document.getElementById('zphone').disabled = true;
            document.getElementById('showTooltips').disabled = false;
            $('#telPhone').attr("readonly","readonly")//将input元素设置为readonly

            iSecond = parseInt(iTime%60);
            iMinute = parseInt(iTime/60);
            if (iSecond >= 0){
                if(iMinute>0){
                    sSecond = iMinute + "分" + iSecond + "秒";
                }else{
                    sSecond = "重新获取(" +iSecond + "S)";
                }
            }
            sTime=sSecond;
            if(iTime==0){
                clearTimeout(Account);
                sTime='获取验证码';
                iTime = 59;
                document.getElementById('zphone').disabled = false;
                document.getElementById('showTooltips').disabled = true;                
                $("#telPhone").removeAttr("readonly");//去除input元素的readonly属性
            }else{
                Account = setTimeout("RemainTime()",1000);
                iTime=iTime-1;
            }
        }else{
            sTime='没有倒计时';
        }
        document.getElementById('zphone').value = sTime;
    }

</script>
</head>
<body>
<div class="weui_cells weui_cells_form">
         <div class="tab-content">
            <div class="weui_cell">
                <div class="weui_cell_hd"><label class="weui_label">手机号码</label>
                </div>
                <div class="weui_cell_primary">
                    <input class="weui_input" type="number" id="telPhone" pattern="[0-9]*" placeholder="手机号">
                </div>
            </div>
          </div>

            <div class="weui_cell">
                <div class="weui_cell_hd"><label class="weui_label">验证码</label>
                </div>
                  <div class="weui_cell_bd weui_cell_primary">
                    <input class="weui_input" type="number" id="vertifyCode" pattern="[0-9]*" placeholder="请输入验证码">
                  </div>
                <input id="zphone" type="button" value=" 获取验证码 " class="weui_btn weui_btn_mini weui_btn_primary" οnclick="javascript:get_mobile_code();"/>
            </div>
           
         <div class="weui_cell1">
            <input class="weui_btn weui_btn_primary" type="button" id="showTooltips" value="提交"   οnclick="javascript:proxyreg1();"/>
        </div>
    </div>
  </form>
 </body>
</html>

注:

1:引入前端jquery

2.在引入Thinkphp\library\vendor 下引入demo和自己短信封装包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可以吧可以吧

打赏可以获得大长腿妹子微信

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值