之前写了一篇文章叫 thinkphp实现用户注册
今天和大家说一下thinkphp实现用户登录,可以用cookie记录也可以用session记录
今天我用的是session记录用户名
首先是模板上的一个登录框,提交到下面这个方法
[code]
public function dologin(){//登录
$username = $_POST[“name”];
$password = $_POST[“pass”];
$w[‘name’]=array(‘eq’,$username);
$rset = M(“User”)->where($w)->find();
if(!$rset){
$this->error(‘用户名不存在,请检查!’);
return false;
}else{
if($rset[‘pass’]==md5($password)){
$_SESSION[‘user_a’]=$_POST[‘name’];//设置登录session
$_SESSION[‘admin’]= $rset[‘ifadmin’];//设置管理员session
//Cookie::set(‘user_a’,$_POST[‘name’],time()+3600); 之前是用cookie登录
//Cookie::set(‘ifadmin’,$rset[‘ifadmin’],time()+3600);
$this->assign(“jumpUrl”,”__APP__/Index”);
$this->success(“登录成功!”);
}else
{
$this->error(‘密码错误!!!,忘记密码请找管理员.’);
}
}
}
[/code]
验证用户名和密码,验证通过则设置用户名session
查询数据库返回看这个用户是否为管理员
写一个管理员session,方便灯下判断是否为管理员
。
下面这个php是判断用户是否是管理员:
[code]
<?php
class ShanmaoAction extends Action{
function _initialize(){
header(“Content-Type:text/html; charset=utf-8”);
$this->assign(‘website’,C(ZCTITLE));
$a = $_SESSION[‘admin’];
$this->assign(‘user’,$a);
if(!empty($a) && $a==’admin’){
$this->assign(“jumpUrl”,”__URL__/index”);
}else{
$this->assign(“jumpUrl”,”__ROOT__”);
$this->error(“没有权限!!”);
}
}
}
?>
[/code]
如果不是管理员,到了相应的页面休会返回说没有权限。
下面这个文件是判断用户是否登录,很多操作都是登录后才可以执行的
[code]
<?php
/*作者:山猫
*博客:http://shanmao.me
*2012-5-10
*/
class ShanmaoAction extends Action{
function _initialize(){
header(“Content-Type:text/html; charset=utf-8”);
$this->assign(‘website’,C(ZCTITLE));
$a = $_SESSION[‘user_a’];
$this->assign(‘user’,$a);
if(!empty($a)){
$this->assign(“jumpUrl”,”__URL__/index”);
}else{
$this->assign(“jumpUrl”,”__APP__/Public”);
$this->error(“没有权限!!”);
}
}
}
?>
[/code]
你当前Action的php文件如果想要实现管理员权限验证,可以这样
class IndexAction extends ShanmaoAction
直接继承刚才的 ShanmaoAction 类文件即可!!!
不清楚的请留言。
thinkphp登录模块代码下载
$condition[‘name’] = ‘thinkphp’;$condition[‘account’] = ‘thinkphp’;$condition[‘_logic’] = ‘OR’;// 把查询条件传入查询方法$User->where($condition)->select();