Rumah >pembangunan bahagian belakang >tutorial php >分享一个php 用户登录类

分享一个php 用户登录类

WBOY
WBOYasal
2016-07-25 08:56:471391semak imbas
在php编程中,用户登录经常会用到,这里分享一个不错的php用户登录类,有需要的朋友参考下。

php用户登录类,代码:

<?php
/*
 * PHP用户登录
 * by bbs.it-home.org
 */
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 $errorreport=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->use_cookie)    //如果使用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”;
    }
}
?>


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:一个php与mysql连接类 Artikel seterusnya:php 写文件操作的步骤分享