权限控制,一开始打算直接写在共用函数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吧,我另外一篇文章有说到。