绑定手机号,并发送段信验证码
2015-08-10 09:56
483 查看
<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; }
相关文章推荐
- Spring Mobile是如何判断访问设备的类型的
- Tomcat总体架构(Tomcat源码解析系列二)
- PowerCmd 2.2 注册码
- More is better---hdu1856(并查集)
- 3.4-3.5-rsync后台服务方式
- 计蒜客 难题题库 141 非递归二叉树的前序遍历
- 数据库事务并发带来的问题、及并行
- csdn分类功能有问题
- asp jmail发送带附件的邮件出现乱码问题
- 华为机试题七
- Windows浏览器启动页被更改为www.hao123.com
- 用ajax传递json对象数组的方法
- caffe安装指南
- 计蒜客 难题题库 140 非递归二叉树的后序遍历
- 之字形打印二叉树
- 3.1-3.3-rsync常用选项
- sap知识-MPS和MRP的区别
- PMP杂谈--配置管理系统和变更控制系统
- [转]Eclipse shortcuts
- PLS-00103:Encountered the symbol "EXIT" when expecting one of the following:.( ,%