//前端登录页面表单及javascript+ajax传输

<input type="text" name="nickname"  placeholder="请输入名称" class="login-password">

<input type="text" name="mobile"  placeholder="请输入手机号" class="login-password">
<input type="text" class="reg-yzm" name="tel_code" maxlength="6" placeholder="输入验证码" />
<input type="button" οnclick="code();" id="login_time" class="yzm-hq" value="获取验证码" />
<input type="password" name="password"  placeholder="请输入(6-16字母、数字、下划线)密码" class="login-password">
<input type="password" name="passwords"  placeholder="确认密码" class="login-name">
<input type="button" class="login-btn" οnclick="check();" value="立即注册">

<script>
    function check(){
        var nickname = $('input[name = nickname]').val();
        var mobile = $('input[name = mobile]').val();
        var tel_code = $('input[name = tel_code]').val();
        var password = $('input[name = password]').val();
        var passwords = $('input[name = passwords]').val();
        var url = "{:url('index/user/mobileReg')}";
        var data = {'nickname':nickname,'mobile':mobile,'tel_code':tel_code,'password':password};
       if(nickname == ''){
              layer.open({
              content: '请输入昵称',
              skin: 'msg',
              time: 2
         });
         return false;
        }
        if(!mobile.match(/^1[34578]\d{9}$/)){
            layer.open({
                  content: '请输入正确的手机号',
                  skin: 'msg',
                  time: 2 //2秒后自动关闭
              });
            return false;
         }
        if(mobile == ''){
              layer.open({
              content: '请输入手机号',
              skin: 'msg',
              time: 2
         });
         return false;
        }
        if(tel_code == ''){
              layer.open({
              content: '请输入验证码',
              skin: 'msg',
              time: 2
         });
         return false;
        }
        if(password == '' || !password.match(/^(\w){6,16}$/)){
              layer.open({
              content: '请输入规范密码',
              skin: 'msg',
              time: 2
         });
         return false;
        }
        if(passwords == ''){
              layer.open({
              content: '请再次输入密码',
              skin: 'msg',
              time: 2
         });
         return false;
        }
        if(passwords != password){
              layer.open({
              content: '两次输入密码不一致',
              skin: 'msg',
              time: 2
         });
         return false;
        }
        $.post(url,data,function(result){
            if(result.flag){
                layer.open({
                      content: result.flag,
                      skin: 'msg',
                      time: 2
                });
            }else{
                alert(result.success);
                window.location.href=document.referrer;
            }
        },'json')

}

function code()
    {
        var mobile = $('input[name = mobile]').val();
        var url = "{:url('index/user/code')}";
        if(mobile == ''){
              layer.open({
              content: '手机号不能为空',
              skin: 'msg',
              time: 2
         });
         return false;
        }

$.post(url,{'mobile':mobile},function(result){
            if(result.flag){
                layer.open({
                  content: result.flag,
                  skin: 'msg',
                  time: 2
             });
            }else{
                layer.open({
                  content: result.success,
                  skin: 'msg',
                  time: 2
             });
            }
        },'json');

$('#login_time').attr('disabled',true);
        var num = 60;
        function each()
        {
            num--;
            if(num == 0)
            {
                $('#login_time').attr('disabled',false);
                $('#login_time').val(' 获取验证码');
            }else
            {
                $('#login_time').val('('+num+')');
                $('#login_time').attr('disabled',true);
                var time = setTimeout(each,1000);        // 延时定时器是隔多长时间后,执行,并且只执行一次   所以,放在这是让内部的函数
            }
        }
        var time = setTimeout(each,1000);
    }

</script>

//在config.php中写

return[

'JHAPI'=>[
            'key'=>'6e4b8c644************43b5f93d7f2',                     //  聚合数据短信验证api        appkey
            'tpl_id'=>'1***23',           //聚合数据模板id  
            'company'=>'***网',  //自定义
    ],

];

// 发送手机验证码

public function code(){

$param = $this->request->param();

// 调用配置文件
        $API =  config('JHAPI');

// 生成验证码
        $code = mt_rand(1000,9999);
        $smsConf = array(
        'key'       => $API['key'],      //您申请的APPKEY
        'mobile'    => $param['mobile'],    //接受短信的用户手机号码
        'tpl_id'    => $API['tpl_id'],   //您申请的短信模板ID,根据实际情况修改
        'tpl_value' =>urlencode('#code#='.$code.'&#company#='.$API['company'])
       );

$data['mobile'] = $param['mobile'];
        $data['code'] = $code;
        $data['create_time'] = time();
        $url = 'http://v.juhe.cn/sms/send?mobile='.$smsConf['mobile'].'&tpl_id='.$smsConf['tpl_id'].'&tpl_value='.$smsConf['tpl_value'].'&key='.$smsConf['key'];
        //请求发送短信
        // $result = curt_url($url);

$ch = curl_init();
        $timeout = 5;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $contents = curl_exec($ch);
        curl_close($ch);

$result = json_decode($contents,true);

if($result['error_code'] == 0){
            Db::name('user_api')->insert($data);
            echo json_encode(array('success'=>'发送成功'));
            exit;
        }else{
            echo json_encode(array('flag'=>'发送失败,错误码:'.$result['error_code']));
            exit;
        }
    }

//登录验证

public function mobileReg(){
        $param = $this->request->param();

$res = Db::name('user_api')
              ->where(['mobile'=>$param['mobile']])
              ->order('create_time DESC')
              ->find();

if($res['mobile'] != $param['mobile']){
            echo json_encode(['flag'=>'手机号有误']);
            exit;
        }
        if($res['code'] != $param['tel_code']){
            echo json_encode(['flag'=>'验证码有误']);
            exit;
        }
        $difftime = time() - $res['create_time'];
        if($difftime > 120){
            echo json_encode(['flag'=>'验证码过期']);
            exit;
        }
        $count = Db::name('user')
                  ->where(['mobile'=>$param['mobile']])
                  ->count();

if($count>0){
            echo json_encode(['flag'=>'账号已存在']);
            exit;
        }else{
            $data = [];
            $data['usertype'] = 2;
            // $data['last_login_ip'] = $_SERVER['HTTP_CLIENT_IP'];
            $data['last_login_time'] = time();
            $data['create_time'] = time();
            $data['status'] = 1;
            $data['mobile'] = $param['mobile'];
            $data['nickname'] = $param['nickname'];
            $data['password'] = $param['password'];
            $result = Db::name('user')
                    ->insertGetId($data);

if(is_numeric($result)){
                echo json_encode(['success'=>'注册成功']);
                exit;
            }else{
                echo json_encode(['flag'=>'注册失败']);
                exit;
            }
        }

}

手机验证码注册,登录相关推荐

  1. springboot整合redis之用户手机验证码注册登录

    目录 1搭建项目开发环境 1.1安装redis 1.1.1下载redis 1.1.2安装redis 1.1.3设置redis为windows服务 安装为windows服务 1.2启动idea 1.3增 ...

  2. Security实现手机验证码注册登录

    准备工作: <!-- 导入security依赖 --> <dependency><groupId>org.springframework.boot</grou ...

  3. php 短信验证登录,短信验证码注册登录的实现,php接入的3种方法(附示例)

    上周,有朋友需要帮忙做一个关于手机短信验证码注册登录的功能,之前没有做过,于是我查查资料,汇总出PHP接入短信验证码的3种方法,现在和大家分享: 1.cURL $curl = curl_init(); ...

  4. 手机验证码+Redis登录验证+token+登录拦截

    手机验证码+Redis登录验证+token+登录拦截 文章目录 手机验证码+Redis登录验证+token+登录拦截 解决方案 思想 以阿里云为例 1.阿里云官网开通短信服务 2.创建签名 3.创建短 ...

  5. Python3版本Django实现免费手机验证码注册

    Demo代码已放上GitHub,实现登录短信校验+极验验证 https://github.com/ChenJhua/TestLogin 打开网站互亿无线注册一个账号,有50条免费短信 登录进去后会有以 ...

  6. AXURE手机版注册登录原型(下载+教学)

    今天给大家分享一套APP注册/登录界面模板,其中包括本机登录页面,短信验证登录页面,密码登录页面,人脸登录页面,微博.微信.QQ.支付宝登录页面,注册页面,用户协议和隐私条款.该原型使用简单,交互完善 ...

  7. Day 5-6 阿里云手机验证码及登录代码

    短信服务 我们需要在阿里云官网进行注册登录 阿里云短信服务(Short Message Service)是广大企业客户快速触达手机用户所优选使用的通信能力.调用API或用群发助手,即可发送验证码.通知 ...

  8. 使用阿里云短信验证码API发送短信验证码(配置,获取短信验证码,注册,登录,密码重置)

    获取阿里云短信验证码需要的配置信息. 如果是新用户,可以免费领取3个月,老用户的话就只能购买了,但是也不贵. 申请短信签名 申请短信模板 编写发送短信验证码的工具类 代码中我已经进行了详细的注释,也写 ...

  9. 使用容联云通讯实现手机验证码注册

    添加Pom文件以及下lib下添加jar包 添加main方法测试,发送手机验证码 package javamaildemo;import java.util.HashMap; import java.u ...

最新文章

  1. java 进程100_原创:如何排查java进程cpu100%的问题
  2. datagridview 设置选中行_Excel实用两大技巧,删除重复行,神奇选择性粘贴
  3. 设置mac笔记本为固定ip
  4. ellen 纽奥良大学演讲
  5. Netty中的Future
  6. C和指针 第十四章 习题
  7. ios真机中Text组件出现多余边框
  8. 关键词组合工具_SEO学习:如何挖掘行业关键词?关键词挖掘策略和工具推荐
  9. 深信服桌面云的各种密码
  10. ssd测试软件寿命查看,SSD固态硬盘使用寿命检测方法 固态硬盘怎么测剩余寿命?...
  11. JavaWeb开发QQ动态表情-源文件
  12. 红帽子linux转中文后乱码,安装redhat时中文显示乱码(小方框)解决方法
  13. 《蜗居》100句台词 血淋淋的经典
  14. 计算机游戏如何产生娱乐效果,浅谈电脑游戏与信息技术教学
  15. Anaconda从C盘移动到D盘
  16. 哪款蓝牙耳机性价比最高?2023性价比高的蓝牙耳机推荐
  17. DS SIMULIA Antenna Magus Professional 2021.5
  18. 远程桌面从服务器拷文件出错
  19. (附源码)Node.js自我展示博客网站 毕业设计231547
  20. 如果宏安全性设置为“禁用所有宏,并且不通知”,将自动禁用所有宏。使用下列步骤可启用宏。

热门文章

  1. The baby-bust economy “婴儿荒”经济 | 经济学人20230603版社论双语精翻
  2. 牛客网|名字的漂亮度
  3. 在酒店房间中的数据库索引
  4. Same Remainder(翻译)
  5. mysql和python的关系_八MySQL与Python
  6. 演练 大蛇丸的招唤术
  7. 【Linux】使用linux命令查找应用安装路径
  8. 巴塞尔委员会:加密产业的增长可能对银行和金融稳定性产生威胁
  9. 史上最牛B的FLASH广告——本田汽车
  10. 个推报错result=AppidError