登录类

<?

/*

 *  名称:CnkknD PHP Login Class

 *  描述:PHP用于登录的类,基于MySQL

 *  作者:Daniel King,cnkknd@msn.com

 *  日期:Start@2003/8/25,Update@2004/4/16

 */



class Login

{

	var $appname="login";	//网站名称



	var $username;	//用户名

	var $userpass;	//密码



	var $authtable="account";	//验证用数据表

	var $col_username="username";	//用户名字段

	var $col_password="password";	//用户密码字段

	var $col_banned="banned";	//是否被禁止字段



	var $use_cookie=true;	//使用cookie保存sessionid

	var $cookiepath='/';	//cookie路径

	var $cookietime=108000;	//cookie有效时间



	var $err_mysql="mysql error";			//mysql出错提示

	var $err_auth="username invalid or wrong password";	//用户名无效提示

	var $err_user="user invalid";			//用户无效提示(被封禁)



	var $err;	//出错提示



	var $error_report=false;	//显示错误



	function Login($appname="")

	{

		$this->appname=$appname;	//初始化网站名称

	}



	function isLoggedin()	//判断是否登录

	{

		if(isset(
___FCKpd___0
COOKIE['sid'])) //如果cookie中保存有sid { session_id(
___FCKpd___0
COOKIE['sid']); session_start(); if(
___FCKpd___0
SESSION['appname']!=$this->appname) Return false; //为了防止不同的程序使用同一个登录类产生冲突,加了个appname作为区分标记 return true; } else //如果cookie中未保存sid,则直接检查session { session_start(); if(isset(
___FCKpd___0
SESSION['appname'])) return true; } return false; } function userAuth($username,$userpass) //用户认证 { $this->username=$username; $this->userpass=$userpass; $query="select * from `".$this->authtable."` where `".$this->col_username."`='$username';"; $result=mysql_query($query); if(mysql_num_rows($result)==1) //找到此用户 { $row=mysql_fetch_array($result); if($row['banned']==1) //此用户被封禁 { $this->errReport($this->err_user); $this->err=$this->err_user; return false; } elseif(md5($userpass)==$row[$this->col_password]) //密码匹配 { $this->userinfo=$row; return true; } else //密码不匹配 { $this->errReport($this->err_auth); $this->err=$this->err_auth; return false; } } else //没有找到此用户 { $this->errReport($this->err_auth); $this->err=$this->err_auth; return false; } } function setSession() //置session { $sid=uniqid('sid'); //生成sid session_id($sid); session_start();
___FCKpd___0
SESSION['appname']=$this->appname; //保存程序名
___FCKpd___0
SESSION['userinfo']=$this->userinfo; //保存用户信息(表中所有字段) if($this->use_cookie) //如果使用cookie保存sid { if(!setcookie('sid',$sid,time()+$this->cookietime,$this->cookiepath)) { $this->errReport("set cookie failed"); $this->err="set cookie failed"; } } else setcookie('sid','',time()-3600); //清除cookie中的sid } function userLogout() //用户注销 { session_start(); unset(
___FCKpd___0
SESSION['userinfo']); //清除session中用户信息 unset(
___FCKpd___0
SESSION['appname']); //清除session中程序名 if(setcookie('sid','',time()-3600)) //清除cookie中的sid return true; else return false; } function errReport($str) //报错 { if($this->error_report) echo "ERROR: $str"; } } ?>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值