您現在的位置是:首頁 > PHP類庫

PHP簡單登錄類 最原始的PHP操作mysql登錄代碼

李清波2017-05-04PHP類庫


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,[email protected]
* 日期: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";
	}
}
?>


上一篇:沒有了

下一篇:云信PHP短信發送接口類詳解說明

隨便看看

評論