PHP用于登录的类

转载 2006年05月17日 12:20:00

<?
/*
 *  名称:CnkknD PHP Login Class
 *  描述:PHP用于登录的类,基于MySQL
 *  作者:Daniel King
 */

class Login
{
    var $username;    //用户名
    var $userpass;    //密码
    var $userid;    //用户id
    var $userlevel;    //用户级别

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

    var $usecookie=true;    //使用cookie保存sessionid
    var $cookiepath='/';    //cookie路径
    var $cookietime=108000;    //cookie有效时间

    var $err_mysql="mysql error";            //mysql出错提示
    var $err_username="username invalid";    //用户名无效提示
    var $err_user="user invalid";            //用户无效提示(被封禁)
    var $err_password="password error";        //密码错误提示

    var $err;    //出错提示

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

    function Login($dbserv,$dbport,$dbuser,$dbpass,$dbname)    //构造函数,连接数据库
    {
        if(@mysql_pconnect($dbserv.":".$dbport,$dbuser,$dbpass))
        {
            mysql_select_db($dbname);
        }
        else
        {
            $this->errReport($this->err_mysql);
            $this->err=$this->err_mysql;  
        }
    }

    function isLoggedin()    //判断是否登录
    {
        if(isset($_COOKIE['sid']))    //如果cookie中保存有sid
        {
            session_id($_COOKIE['sid']);    
            session_start();
            $this->username=$_SESSION['username'];
            $this->userid=$_SESSION['userid'];
            $this->userlevel=$_SESSION['userlevel'];
            return true;
        }
        else    //如果cookie中未保存sid,则直接检查session
        {
            session_start();
            if(isset($_SESSION['username']))
                return true;
        }
        return false;                    
    }

    function userAuth($username,$userpass)    //用户认证
    {
        $this->username=$username;
        $this->userpass=$userpass;
        $query="select * from `".$this->authtable."` where `username`='$username';";
        $result=mysql_query($query);
        if(mysql_num_rows($result)!=0)    //找到此用户
        {
            $row=mysql_fetch_array($result);
            if($row['bannd']==1)    //此用户被封禁
            {
                $this->errReport($this->err_user);
                $this->err=$this->err_user;
                return false;
            }
            elseif(md5($userpass)==$row['userpass'])    //密码匹配
            {
                $this->userid=$row['id'];
                $this->userlevel=$row['userlevel'];
                return true;
            }
            else    //密码不匹配
            {
                $this->errReport($this->err_password);
                $this->err=$this->err_password;
                return false;
            }
        }
        else    //没有找到此用户
        {
            $this->errReport($this->err_username);
            $this->err=$this->err_username;
            return false;
        }
    }

    function setSession()    //置session
    {
        $sid=uniqid('sid');    //生成sid,一个独一无二的字符串
        session_id($sid);
        session_start();
        $_SESSION['username']=$this->username;    //给session变量赋值
        $_SESSION['userid']=$this->userid;    //..
        $_SESSION['userlevel']=$this->userlevel;    //..
        if($this->usecookie)    //如果使用cookie保存sid;
        {
            if(!setcookie('sid',$sid,time()+$this->cookietime,$this->cookiepath))
                $this->errReport("set cookie failed");
        }
        else
            setcookie('sid','',time()-3600);    //清除cookie中的sid
    }

    function userLogout()    //用户注销
    {
        session_start();
        unset($_SESSION['username']);    //清除session中的username
        if(setcookie('sid','',time()-3600))
            //清除cookie中的sid
            return true;
        else 
            return false;
    }

    function errReport($str)    //报错
    {
        if($this->error_report)
            echo "ERROR: $str";
    }
}
?>

基于 Token 的身份验证

最近了解下基于 Token 的身份验证,跟大伙分享下。很多大型网站也都在用,比如 Facebook,Twitter,Google+,Github 等等,比起传统的身份验证方法,Token 扩展性更强,...
  • qq_28098067
  • qq_28098067
  • 2016年07月26日 15:41
  • 3027

PHP结合Ajax实现登录验证的Demo

设计一个用户注册页面,当用户输入注册名的时候,检测用户名是否已存在,如果存在,给予提示 我们先打index.php function Ajax(){ var xmlHt...
  • u014427391
  • u014427391
  • 2016年03月15日 23:33
  • 2972

PHP用curl模拟登陆并采集后台数据

PHP用curl模拟登陆并采集后台数据步骤: 1、请求登陆,获取返回的保存身份信息的cookie,并存入指定cookie文件。见类login()方法 2、请求需身份验证的页面,带上cookie文件。见...
  • soonfly
  • soonfly
  • 2016年07月28日 21:00
  • 1469

php微信网页授权登录类

  • 2018年01月06日 10:30
  • 3KB
  • 下载

PHP会员登录类

  • 2014年08月18日 00:39
  • 7KB
  • 下载

PHP压缩类:用于在线压缩文件、文档、目录等,附有使用方法,不想了解类原理的可直接按使用方法调用该类

001 002 //PHP压缩类代码开始 003 class PHPZip{ ...
  • oZhengTuoJiaSuo
  • oZhengTuoJiaSuo
  • 2016年11月28日 10:35
  • 244

PHP面向对象之数据库类实现登录

面向对象的思想在PHP5中得到更为广泛的应用,这里我们仅实现一个简单的db_class的数据库操作类来实现登录验证: db_class.php类的实现代码: ...
  • houqingdong2012
  • houqingdong2012
  • 2012年12月22日 21:19
  • 4727

基于MySQL,PHP登录类(转)

  • u011233702
  • u011233702
  • 2014年06月23日 15:18
  • 231

qq 登录api php类

/** *  QQ操作类 * $Author: shunzi $ * $Id: cls_qq.php 17171 2011-05-30 06:14:00Z shunzi $ *...
  • shunzi110
  • shunzi110
  • 2012年02月22日 09:50
  • 2468

PHP多功能大马一只,仅供学习,请勿用于违法,否则后果自负

  • 2017年06月08日 14:56
  • 4KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP用于登录的类
举报原因:
原因补充:

(最多只允许输入30个字)