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

<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" οnclick="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" οnclick="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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值