<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;
}