PHP 验证登陆类的用法
本文给大家介绍的是用php实现的用户登录与验证的一段代码,没有把登录和数据库查询分开,有需要的朋友,可以参考学习下
简单的登录类,没有把登录和数据库查询分开
代码如下:
/* * 例子 * $Auth=new Auth(); * $Auth- login( 123@123.com , 123 * $Auth- logout(); * echo $r- init(); **/验证登陆类
代码如下:
?php * @ID: 验证登陆类 * @class: Auth.class.php * @auther: 欣儿 * @time: 2015/03/12 * @web: my.oschina.net/xinger class Auth { //外部设置 //cookie设置 var $cookie_time;// 7200 var $cookie_where;// / var $cookie_domain;// yourweb.com var $cookie_secure;// 1和0 //数据库设置 var $select_uid;// uid var $select_table;// user var $select_usersname;// email var $select_password;// password var $salt;// 12332 var $guest_name;// Guest //用户获取值 var $user_id; var $username; var $ok; var $pre;// auth_ var $depr;// - //内部变量 private $pre_username; private $pre_password; public function __construct($config=array()){ $this- set($config); $this- pre_username=sha1(md5($this- pre. username $this- pre_password=sha1(md5($this- pre. password public function set($config){ $this- cookie_time = isset($config[ cookie_time ])?$config[ cookie_time ]: 7200; $this- cookie_where = isset($config[ cookie_where ])?$config[ cookie_where ]: / $this- cookie_domain = isset($config[ cookie_domain ])?$config[ cookie_domain ]: $this- cookie_secure = isset($config[ cookie_secure ])?$config[ cookie_secure ]: $this- select_uid = isset($config[ select_uid ])?$config[ select_uid ]: uid $this- select_table = isset($config[ select_table ])?$config[ select_table ]: table $this- select_usersname = isset($config[ select_usersname ])?$config[ select_usersname ]: user_name $this- select_password = isset($config[ select_password ])?$config[ select_password ]: password $this- salt = isset($config[ salt ])?$config[ salt ]: sghsdghsdg // $this- guest_name = isset($config[ guest_name ])?$config[ guest_name ]: Guest // $this- pre = isset($config[ auth ])?$config[ auth ]: auth_ $this- depr = isset($config[ depr ])?$config[ depr ]: - public function init(){ $this- user_id = 0; $this- username = $this- guest_name; $this- ok = false; if(!$this- check_session()){ $this- check_cookie(); return $this- //验证SESSION private function check_session(){ if(!empty($_SESSION[$this- pre_username]) !empty($_SESSION[$this- pre_password])){ return $this- check($_SESSION[$this- pre_username],$_SESSION[$this- pre_password]); } else { return false; //验证COOKIE private function check_cookie(){ if(!empty($_COOKIE[$this- pre_username]) !empty($_COOKIE[$this- pre_password])){ return $this- check($_COOKIE[$this- pre_username],$_COOKIE[$this- pre_password]); } else { return false; //登陆 public function login($username,$password){ $sql = select .$this- select_uid. from .$this- select_table. where .$this- select_usersname. = $username and .$this- select_password. = $password $result = mysql_query($sql); $rows = mysql_num_rows($sql); if($rows==1){ $this- user_id = mysql_result($result,0,0); $this- username = $username; $this- ok = true; $username = $username.$this- depr.$this- get_ip(); $user_name = $this- encrypt($username, E ,$this- salt); $_SESSION[$this- pre_username]=$user_name; $_SESSION[$this- pre_password]=md5(md5($password,$this- salt)); setcookie($this- pre_username,$user_name,time()+$this- cookie_time,$this- cookie_where,$this- cookie_domain,$this- cookie_secure); setcookie($this- pre_password,md5(md5($password,$this- salt)),time()+$this- cookie_time,$this- cookie_where,$this- cookie_domain,$this- cookie_secure); return true; return false; //验证 private function check($username,$password){ $user_name = $this- encrypt($username, D ,$this- salt); $name = explode($this- depr, $user_name); $username = $name[0]; $ip = isset($name[1]) ? $name[1] : NULL; if($ip !== $this- get_ip()) return false; static $vars = array(); if(!empty($vars) is_array($vars) isset($vars[$username.$password])){ $this- user_id = $vars[ user_id $this- username = $vars[ username $this- ok = $vars[ ok return true; $sql = select .$this- select_uid. , .$this- select_password. from .$this- select_table. where .$this- select_usersname. = $username $query = mysql_query($sql); $result = mysql_fetch_array($query); $row = mysql_num_rows($sql); if($row == 1){ $db_password=$result[$this- select_password]; if(md5(md5($db_password,$this- salt)) == $password){ $this- user_id = $vars[ user_id ] = $result[$this- select_uid]; $this- username = $vars[ username ] = $username; $this- ok = $vars[ ok ] = true; $vars[$username.$password] = md5($username.$password); return true; return false; //退出 public function logout(){ $this- user_id = 0; $this- username = $this- guest_name; $this- ok = false; $_SESSION[$this- pre_username]= $_SESSION[$this- pre_password]= setcookie($this- pre_username, ,time()-$this- cookie_time,$this- cookie_where,$this- cookie_domain,$this- cookie_secure); setcookie($this- pre_password, ,time()-$this- cookie_time,$this- cookie_where,$this- cookie_domain,$this- cookie_secure); //加密 public function encrypt($string,$operation,$key= ) { $key=md5($key); $key_length=strlen($key); $string=$operation== D ?base64_decode($string):substr(md5($string.$key),0,8).$string; $string_length=strlen($string); $rndkey=$box=array(); $result= for($i=0;$i =255;$i++) $rndkey[$i]=ord($key[$i%$key_length]); $box[$i]=$i; for($j=$i=0;$i $i++) $j=($j+$box[$i]+$rndkey[$i])%256; $tmp=$box[$i]; $box[$i]=$box[$j]; $box[$j]=$tmp; for($a=$j=$i=0;$i $string_length;$i++) $a=($a+1)%256; $j=($j+$box[$a])%256; $tmp=$box[$a]; $box[$a]=$box[$j]; $box[$j]=$tmp; $result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256])); if($operation== D ) if(substr($result,0,8)==substr(md5(substr($result,8).$key),0,8)) return substr($result,8); else return else return str_replace( = , ,base64_encode($result)); public function get_ip() { return $_SERVER[ REMOTE_ADDR ?总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。
相关推荐:
PHP数组转换为苹果plist XML或文本格式的功能
php使用curl连接网站及获取信息的方法
php读取、正则匹配邮件内容的方法
以上就是PHP 验证登陆类的用法的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。