绑定手机号,并发送段信验证码

来源:互联网 发布:淘宝客网站介绍 编辑:程序博客网 时间:2024/04/30 13:28
<div class="user-addr-tips">* 为了您的账号安全,请您绑定手机号码!</div><form name="from" action="/mobile/registdo" method="post">    <input type="hidden" name="ts" value="do_post">    <input type="hidden" name="v_rid" value="{$v_rid}">    <section>        <p  class="mobile-code"><em>手机号:</em><input  id="new_tel" type="text" value="">            <span id="sms_code_id" onclick="getTelCode()" class="send-code">发送验证码</span>        </p>        <p><em>验证码:</em><input   id="sms_code" type="text" value="">        </p>    </section>    <input type="hidden" class="input-text" name="telbackurl" id="telbackurl" value="{$settelbackurl}">    <input type="hidden" class="input-text" name="sms_check_code" id="sms_check_code" value="">    <input id="set_tel" type="button" onclick="setTel()"  value="确认并绑定" class="submit"></form><div class="user-mobile-tips"><p>注:一个界面账号仅能绑定一个手机号码</p></div><!-- 公用蒙层 --><div class="bg-shadow"></div><!-- 提示框 --><section id="tishi"  style="display: none;">    <div class="bd-tips bd-tips-sm">        <span class="bd-tips-bg"></span>        <p class="font-blue">温馨提示:每日限兑2件</p>        <a href="javascript:;" class="sure-close">确定</a>    </div></section><script type="text/javascript">    $("#tishi").on("click",function(){        $(this).hide();        $(".bg-shadow").hide();    });</script><script type="text/javascript">    function fun_tishi(content){        $("#tishi .font-blue").html(content);        $(".bg-shadow").show();        $("#tishi").show();    }    //获取手机验证码    var t = 60;    var sendCode = true;    function getTelCode(){        var new_tel = $('#new_tel').val();        //验证手机格式        var strP =/^1([3]|[4]|[5]|[7]|[8]){1}[0-9]{9}$/;        if(strP.test(new_tel)==false){            fun_tishi("手机格式不正确!");            return false;        }        var ajax_url = "{:U('user/getTelCode')}";        ajax_url = ajax_url.replace('/mobile', "");        if (t == 60) {            $.ajax({                type: "POST",                url: ajax_url,                data:{ new_tel:new_tel},                success: function (result) {                    if(result.code == 0){                        sendCode = true;                        sendCodeAgain();                        $('#sms_code_id').removeClass('blue');                        $('#sms_code_id').css('cursor','auto');                        $('#sms_check_code').val(result.result);                    }else if(result.code == 1){                        fun_tishi("手机格式不正确!");                        return false;                    }else if(result.code == 1010099){                        fun_tishi("短信已发送,请耐心等待!");                        return false;                    }else if(result.code == 1011802){                        fun_tishi("手机格式不正确!");                        return false;                    }else if(result.code == 1011805){                        fun_tishi('抱歉,该手机号码已经被其他用户使用,请您更换其他号码!');                        return false;                    }else{                        fun_tishi("未知错误,请联系网站工作人员");                        return false;                    }                }            })        }    }    /**     * 重新发送评论状态     */    function sendCodeAgain() {        t--;        $("#sms_code_id").attr("disabled", "disabled");        if (t == 0) {            $('#sms_code_id').css('cursor','pointer');            $('#sms_code_id').addClass('blue');            $("#sms_code_id").removeAttr("disabled");            $("#sms_code_id").html('获取验证码');            t = 10;            sendCode = true;            return false;        } else {            sendCode = false;            $("#sms_code_id").html(t+"秒获取验证码");            setTimeout("sendCodeAgain();", 1000);        }    }    //修改手机    function setTel(){        var new_tel = $('#new_tel').val();        var t_password = $('#t_password').val();        var sms_code = $('#sms_code').val();        var sms_check_code = $('#sms_check_code').val();//        var sms_check_code = "WPLNkDBlepHjltNopKIMGjs9-miZn0QiVqPEhCW23SASfrRuiXmSZEkkCaDtZ14cOET5VAN31Rg9GX-jOJ-Wjg9584SuyOnDMvMlAmICFOa9";        var backurl = $('#telbackurl').val();        var uid = {$uid};        //验证手机格式        var strP = /^1([3]|[4]|[5]|[7]|[8]){1}[0-9]{9}$/;        if(strP.test(new_tel)==false){            fun_tishi("未知错误,请联系网站工作人员!");            return false;        }        //验证隐藏的验证码        if(sms_check_code == '' || sms_check_code.length == 0){            fun_tishi("手机验证码不能为空!");            return false;        }        //验证用户输入的验证码        var strC = /^[0-9]{6}/;        if(strC.test(sms_code)==false){            fun_tishi("手机验证码格式不正确!");            return false;        }        //验证密码        if(t_password != undefined){            var strPass = /^[\w\W]{6,16}$/;            if(strPass.test(t_password)==false){                fun_tishi("密码格式不正确!");                return false;            }        }        if(t_password == undefined){            var jsonpData = "uid="+uid+"&mobile="+new_tel+"&backurl="+backurl+"&sms_code="+sms_code+"&sms_check_code="+sms_check_code;        }else{            var jsonpData = "uid="+uid+"&mobile="+new_tel+"&password="+t_password+"&backurl="+backurl+"&sms_code="+sms_code+"&sms_check_code="+sms_check_code;        }        $.ajax({            type: "GET",//             async: false,            url:passport_url+"/wapi/modifymobile.json",            dataType: "jsonp",            data:jsonpData,            jsonp: "cb",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)            //jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据            success: function(json){                if(json.code == 0){                    //mbox.msg('修改成功!', 2, 0);                    $('#set_tel').html('保存成功');                    $('#set_tel').addClass('btn-success');                    setTimeout("setSubmitHtml('set_tel','更新')",3000);                    var tel_url = "{:U('user/setTelDo')}";                    tel_url = tel_url.replace('/mobile', "");                    $.ajax({                        url:tel_url,                        type: "POST",                        data: {new_tel:new_tel},                        success: function (result) {                            if(result.code == 0){                                /*location=location.href+"#telId";                                location.reload();*/                                window.location.href="{:U('market/user_address_change',$redUrlParams)}";                            }else{                                fun_tishi(result.message);return false;                            }                        }                    });                }else{                    var msg = '';                    if(json.code == 1010001){                        msg = '手机号无效';                    }else if(json.code == 1010002){                        msg = '服务繁忙,请重试!';                    }else if(json.code == 1010007){                        msg = '手机号已注册!';                    }else if(json.code == 1010012){                        msg = '短信验证码错误!';                    }else{                        msg = '未知错误,请联系网站工作人员!';                    }                    fun_tishi(msg);return false;                }            },            error: function(){                fun_tishi("网络错误,请稍后再试!");return false;            }        });    }</script>



 /**     * 获取手机验证码     */    public function getTelCode(){        $tel = I('new_tel');        $regex = regex($tel,"phone");        if(empty($regex)){            $this->ajaxReturn(array('code'=>1,'message'=>'手机格式不正确!'));        }        //判断是否绑定接口        $data = array(        'mobile'       => $tel,            'type'      => 3,            'ip'        => get_client_ip()        );        $result = api_send_by_post('/api/mobile/send.json',$data);        $this->ajaxReturn($result);    }/*** 使用正则验证数据* @access public* @param string $value  要验证的数据* @param string $rule 验证规则* @return boolean * 使用距离 regex('abc@jiemian.com', 'email')*/function regex($value,$rule) {    $validate = array(        'require'   =>  '/.+/',        'email'     =>  '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',        'url'       =>  '/^http(s?):\/\/(?:[A-za-z0-9-]+\.)+[A-za-z]{2,4}(?:[\/\?#][\/=\?%\-&~`@[\]\':+!\.#\w]*)?$/',        'currency'  =>  '/^\d+(\.\d+)?$/',  //货币        'number'    =>  '/^\d+$/',        'zip'       =>  '/^\d{6}$/',        'integer'   =>  '/^[-\+]?\d+$/',        'double'    =>  '/^[-\+]?\d+(\.\d+)?$/',        'english'   =>  '/^[A-Za-z]+$/',        'phone'     =>  '/^1[3|4|5|7|8][0-9]\d{8,8}$/',    );    // 检查是否有内置的正则表达式    if(isset($validate[strtolower($rule)]))        $rule       =   $validate[strtolower($rule)];    return preg_match($rule,$value)===1;}


0 0