<? /* * 名称: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(
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"; } } ?>___FCKpd___0
登录类
最新推荐文章于 2024-03-25 19:20:05 发布