PHP 手机验证码登录

1.手机验证码登录

  /**
     * 短信宝 获取验证码
     */
    public function login(Request $request){
        $tel=$request->get('phoneNum');
        //限制手机号请求次数
//        Cache::put($tel,0);die;
        if (Cache::has($tel)){
            $num=Cache::get($tel);
        }else{
            $num=Cache::put($tel,0);
        }
        if ($num>30){
            return $this->getJsonData(10010,'一天只能请求30次',null);
        }
        $smsapi = $this->smsapi;
        $user = $this->user; //短信平台帐号
        $pass = md5($this->pass); //短信平台密码
        $rand=rand(1000,9999);
        $content="【八维】:您的验证码:".$rand;//要发送的短信内容
        $phone = $tel;//要发送短信的手机号码
        $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
        $result =file_get_contents($sendurl) ;
       if ($result!=0){
           Cache::increment($tel,1);
           Cache::put('code',$rand);
           return $this->getJsonData(200,'获取成功',$rand);
       }else{
           return $this->getJsonData(500,'获取失败',null);
       }
    }
    //登录
    public function logindo(Request $request){
        $phone=$request->get('phone');
        $code=$request->get('xcode');
        $session_code=Cache::get('code');
        //根据手机号获取uid
        $user=WechatUser::where('phone',$phone)->first()->toArray();
        //生成token
        $token = $this->createToken($user['id']); //生成token
        if ($code==$session_code){
            return $this->getJsonData(200,'登录成功',$token);
        }else{
            return $this->getJsonData(500,'登录失败',null);
        }

    }
 //限制发送时间//获取验证码
    $('#dyMobileButton').click(function () {
        var time = 60;
        var phone = $('#prependedInput').val();
        setInterval(function () {
            time--;
            if (time > 0) {
                $('#dyMobileButton').html('重新发送(' + time + ')秒');
                $('#dyMobileButton').prop('disabled', true);
            } else {
                $('#dyMobileButton').html('发送验证码');
                $('#dyMobileButton').prop('disabled', false);
            }
        }, 1000);

2.ajax上传 接值还是input接

<script>
    $('#button').click(function () {
        var token="{$Think.session.token}";
        var name=$('#name').val();
        var price=$('#price').val();
        var formData=new FormData();
        var img=document.getElementById('img').files[0];
        formData.append('name',name);
        formData.append('price',price);
        formData.append('img',img);
        $.ajax({
            url:"/addajax?token="+"{$Think.session.token}",
            data:formData,
            type:'post',
            dataType:'json',
            processData:false,
            contentType:false,
            success:function (res) {
                if (res.code==200){
                    alert(res.msg);
                    location.href="/show?token="+token;
                }
            }
        })
    })
</script>

3.七牛云上传 接收文件值只能用$_FILES接值,否则tp框架接值需要处理接到的值。files[‘tmp_name’]一定要看清接到的值。imageurl是在线地址。

//七牛云
        //接收文件上传的值
        $file = $_FILES;
        //本地的文件路径
        $localFilePath = $file['img']['tmp_name'];
        //截取文件后缀名
        //$suffix = '.jpg';
        $suffix = strtolower(substr($file['img']['name'],strpos($file['img']['name'],'.')));

        //生成一个唯一的文件名称,重命名 (md5加密原文件名+秒+随机数)
        $fileName = md5($file['img']['name']) . date('s',time()) . rand(1,9999999);
        $fileName .= $suffix;

        //上传七牛云业务逻辑
        $accessKey = 'FNbcGeNVSydTXAmq5gp'; //去控制台的秘钥管理拿AK
        $secretKey = 'zA8AeRR0j9Tf1KlUgEc';//去控制台的秘钥管理拿SK
        $auth = new Auth($accessKey, $secretKey);
        //七牛云桶名,根据自己实际进行填写
        $bucket = 'gaodewen';
        // 生成上传Token
        $token = $auth->uploadToken($bucket);
        // 构建 UploadManager 对象
        $uploadMgr = new UploadManager();

        // 调用 UploadManager 的 putFile 方法进行文件的上传。
        list($ret, $err) = $uploadMgr->putFile($token, $fileName, $localFilePath);

        //错误信息提示
        if ($err != null) {
            //可调整为错误页面
            $this->error('上传文件失败');
        }

        //把七牛云图片路径存储到我们自己的数据库  七牛云图片路径
        $imageUrl = 'http://qwot0f374.hd-bkt.clouddn.com/' . $fileName;
        $data['img']=$imageUrl;
        $res=\app\admin\model\Goods::add($data);
        $token=session('token');
        if ($res){
            return $this->success('添加成功','/show?token='.$token);
        }
        //入库业务逻辑 create save 只有这两个模型方法才能自动写入时间戳

3.layui搜索展示和分页 layui引用官网的模板,写上容器ID,limit,limits,三个参数。表单字段改成自己对应的字段,去掉下面的key,加上where

 public function getShow(){
        $page=input('page')? input('page') :1;
        $limit=input('limit')? input('limit') :3;
        $offset=($page-1)*$limit;
        $where=[];
        $key=input('name')? input('name'): [];
        if (!empty($key)){
            $where['name']=['like','%'.$key.'%'];
        }
        $count=\app\admin\model\Goods::getCount($offset,$limit,$where);
        $data=\app\admin\model\Goods::show($offset,$limit,$where);
        return getJsonData(0,'查询成功',$data,$count);
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值