计算机网络/计算机科学与应用/系统/运维/开发

Tp5.1 验证码/登录

一、验证码

composer require topthink/think-captcha=2.0.*


验证码配置:

 public function verify()
 {
        ob_clean();
        $captcha = new Captcha();
        $captcha->fonSize= 30;
        $captcha->length=2;
        $captcha->useCurve=false;
        $captcha->useNoise=false;
        return $captcha->entry();
 }

二、发送表单

前端html自行构建,ajax发送数据

 $.post('{:url("Login/login")}',{username:username,password:password,code:code},function(data){
                     if(data.status == 1){
                         layer.alert(data.info, {
                             title: '提示框',
                             icon: 1,
                         },function(){
                             location.href = "{:url('Index/index')}";
                         });
                         // layer.close(index);
                     }else{
                         layer.alert(data.info, {
                             title: '提示框',
                             icon: 0,
                         });
                         layer.close(index);
                     }
                },'json')

三、后端接收验证

public function login()
    {
        $code = input('post.code');
        $username = input('post.username');
        $password = input('post.password');
        if(empty($code) || empty($username) || empty($password)){
            return json(array('status'=>0,'info'=>'参数不正确'));
        }
        $captcha = new Captcha();
        if(!$captcha->check($code)){
            return json(array('status'=>0,'info'=>'验证码错误'));
        }
        try {
            // 根据用户名查找用户的数据
            $admin_one = $this->table->getOne(array('username'=>$username));
            if(!empty($admin_one) && $admin_one['password'] == md5(md5($password).$admin_one['salt'])){
                session('uid',$admin_one['admin_id']);
                session('username',$admin_one['username']);
                session('login_time',date('Y-m-d H:i:s',time()));
                session('login_ip',get_client_ip());
                // 更新登录信息
                $data = array(
                    'login_time'=>time(),
                    'login_ip'=>get_client_ip()
                );
                $this->table->saveData(array('admin_id'=>$admin_one['admin_id']),$data);
                return json(array('status'=>1,'info'=>'登录成功'));
            }else{
                return json(array('status'=>0,'info'=>'账号密码错误'));
            }
        }catch(Exception $e){
            return json(array('status'=>0,'info'=>$e->getMessage()));
        }
    }


人各有命,但命运也从来不是随机发牌,而是每个人主动选择的结果。

评论

^