• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP 验证登陆类的用法

php 搞代码 4年前 (2022-01-22) 28次浏览 已收录 0个评论

本文给大家介绍的是用php实现的用户登录与验证的一段代码,没有把登录和数据库查询分开,有需要的朋友,可以参考学习下

简单的登录类,没有把登录和数据库查询分开

代码如下:

/* *   例子 * *  $Auth=new Auth(); *  $Auth->login("[email protected]","123"); *  $Auth->logout(); *  echo $r->init();      ***/

验证登陆类

代码如下:

<?php/* * * @ID:      验证登陆类 * * @class:   Auth.class.php * * @auther:  欣儿 * * @time:    2015/03/12 * * @web:     http://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->ok;    }    //验证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<256;$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)==s<em>¥本文来%源[email protected]搞@^&代*@码)网5</em><strong>搞gaodaima代码</strong>ubstr(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'];    }}?>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 验证登陆类的用法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址