关于项目综合案例的部分功能实现

1、实现后台登录功能

控制器:PublicController.class.php

模版:login.html

方法:login captcha checkLogin

第一步:在控制器中创建captcha方法,用于输出验证码

	//captcha方法
	public function captcha(){
		//配置
		$cfg = array(){
            'fontSize'  =>  20,              // 验证码字体大小(px)
            'useCurve'  =>  false,            // 是否画混淆曲线
            'useNoise'  =>  false,            // 是否添加杂点  
            'length'    =>  4,               // 验证码位数
            'fontttf'   =>  '4.ttf',          // 验证码字体,不设置随机获取
		};
		//实例化验证码类
		$Verify = new \Think\Verify($cfg);
		//输出验证码
		$Verify -> entry();
		
	}

}

第二步:在模版文件login.html中输出验证码

 <cite><img style="margin-left: 3px;" src="__CONTROLLER__/captcha" /></cite>

给图片绑定点击事件,让点击图片能够刷新验证码:

<cite><img style="margin-left: 3px;" src="__CONTROLLER__/captcha" onclick="this.src='__CONTROLLER__/captcha/t/'+Math.random()" /></cite>

第三步:准备创建用户表

表名:oa_user

检查表单:

添加form标签:

       <form action="{:U('checkLogin')}" method="post">

字段完善:

修改登录按钮的href属性,阻止其默认的浏览器行为:

编写jQuery代码实现表单的提交:

//jQuery代码
$(function(){
    //给登录按钮绑定点击事件
    $('.btn').on('click',function(){
        //事件处理程序
        $('form').submit();
    });
});

编写checkLogin方法用于处理用户登录

	public function checkLogin(){
		//接收数据
		$post = I('post.');
		//验证码验证(不需要传参)
		$verify = new \Think\Verify();
		//验证
		$result = $verify -> check($post['captcha']);
		//判断验证码是否正确
		if ($result){
			//验证码正确,继续处理用户名和密码
			$model = M('User');
			//删除验证码元素
			unset($post['catpcha']);
			//查询
			$data = $model -> where($post) -> find();
			//判断是否存在用户
			if($data){
				//存在用户,用户信息持久化保存到session中,跳转到后台
				session('id',$data['id']);
				session('username',$data['username']);
				session('role_id',$data['role_id']);
				//跳转
				$this -> success('登录成功',U('Index/index'),3);
			}else{
				//不存在
				$this -> error('用户名或密码错误');
			}
		}else{
			//验证码不正确
			$this -> error('验证码不正确');
	}
	}

创建退出方法:

	public function logout(){
		//清除session
		session(null);
		//跳转到登录页面
		$this -> success('退出成功',U('login'),3);
	}


修改跳转地址,让地址跳转到Public/logout:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值