thinkphp的权限控制

权限控制,一开始打算直接写在共用函数common.php里面的,后来一直提示错误,原来$this->success() 和$this->error()这两个函数一直提示错误,原来没有继承action类,所以把权限控制写成一个类放在org里面,到时需要用的时候就导入

在lib目录下创建org目录,建check.class.php文件类

源码如下

<?php

class check extends Action{

	/**
	 * 用户登陆
	 */
	 function Get_user_login($username, $password , $url) {
	 	$user = M("user"); // 实例化User对象
	 	$condition['username'] = $username;
		$User = $user->where($condition)->select();
		//dump($username.$password.$url);
		//dump($User);
		$us = is_array($User);
		//dump($us);
		$ps = $us ? md5($password) == $User[0][password] : FALSE;
		//dump(md5($password).'qqqqqqqq'.$User['password']);
		if ($ps) {
			session('uid',$User[0][uid]);
			session('shell',md5($User[0][username] . $User[0][password] . "TKBK"));
			session('ontime',mktime());
			$this->success('登陆成功!',$url);

		} else {
			session(null);
			$this->error('密码或帐号错误!');
		}
		}

	/**
	 * 用户权限判断($uid, $shell)
	 */
	function Get_user_shell($uid, $shell) {
		$user = M("user"); // 实例化User对象
		$condition['uid'] = $uid;
		$User=$user->where($condition)->select();
		//dump($uid.'qqq'.$shell.'qqqqqqqq'.$User);
		$us = is_array($User);
		$shell = $us ? $shell == md5($User[0][username] . $User[0][password] . "TKBK") : FALSE;
		$shell ? $User : NULL;
		if($shell){
			$this->Get_user_ontime();
		}else{
			$this->error('没权限,请先登录');
		}
	}



	/**
	 * 用户登陆超时时间(秒)
	 */
	 function Get_user_ontime($long = '3600') {
		$new_time = mktime();
		$onlinetime = session('ontime');
		//echo $new_time - $onlinetime;
		if ($new_time - $onlinetime > $long) {
			session(null);
			$this->error('登录超时');
			exit ();
		} else {
			session('ontime',mktime());
		}
	}




	 /**
	  * 用户退出登陆
	  */
	 function Get_user_out() {
		session(null);
		$this->error('退出成功!');
	}

}
?>

数据库比较简单,uid,username,password


这个权限控制比较简单,不过一般的小的项目也够用了,如果需要加强版的话,就用rbac吧,我另外一篇文章有说到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值