您现在的位置是:首页 > PHP类库

李清波 2017-05-04 PHP类库 4977 复制当前网址

PHP简单登录类 最原始的PHP操作mysql登录代码


PHP代码:

<?
include "../myclasses/Login.php";
$dbserv="localhost";
$dbport="3306";
$dbuser="root";
$dbpass="123456";
$dbname="test";
$login=new Login($dbserv,$dbport,$dbuser,$dbpass,$dbname);
$login->error_report=true;
$login->cookietime=3600*24*30;
if($login->isLoggedin())
{
echo $login->username." has aready logged in";
}
elseif($login->userAuth("danielking","1234"))
{
echo "login successfully";
$login->setSession();
}
echo "<p>...</p>";
/*
if($login->userLogout())
echo "logged out";
else
echo "logout failed";
*/
?>

类:

<?php
/*
* 名称:CnkknD PHP Login Class
* 描述:PHP用于登录的类,基于MySQL
* 作者:Daniel King,cnkknd@163.com
* 日期:2003/8/25
*/

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() {
		//如果cookie中保存有sid
		if(isset($_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;
		}
	}

	 //置session
	function setSession() {
		$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";
	}
}
?>


文章来源:https://liqingbo.com/blog-1369.html

评论