一個(gè)登錄的類
Jun 21, 2016 am 09:14 AM/*
* 名稱: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; //用戶級(jí)別
var $authtable="account"; //驗(yàn)證用數(shù)據(jù)表
var $usecookie=true; //使用cookie保存sessionid
var $cookiepath='/'; //cookie路徑
var $cookietime=108000; //cookie有效時(shí)間
var $err_mysql="mysql error"; //mysql出錯(cuò)提示
var $err_username="username invalid"; //用戶名無(wú)效提示
var $err_user="user invalid"; //用戶無(wú)效提示(被封禁)
var $err_password="password error"; //密碼錯(cuò)誤提示
var $err; //出錯(cuò)提示
var $errorreport=false; //顯示錯(cuò)誤
function Login($dbserv,$dbport,$dbuser,$dbpass,$dbname) //構(gòu)造函數(shù),連接數(shù)據(jù)庫(kù)
{
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) //用戶認(rèn)證
{
$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 //沒(méi)有找到此用戶
{
$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) //報(bào)錯(cuò)
{
if($this->error_report)
echo "ERROR: $str";
}
}
?>
mysql中表的結(jié)構(gòu)
代碼:
CREATE TABLE `account` (
`id` bigint(20) NOT NULL auto_increment,
`username` varchar(255) NOT NULL
使用一例
PHP代碼:
include "../myclasses/Login.php";
$dbserv="localhost";
$dbport="3306";
$dbuser="root";
$dbpass="123456";
$dbname="test";

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

許多用戶在選擇智慧型手錶的時(shí)候都會(huì)選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區(qū)別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質(zhì)是玻璃鏡板+不鏽鋼機(jī)身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質(zhì)是藍(lán)寶石玻璃鏡+鈦金屬機(jī)身/陶瓷機(jī)身+陶瓷後殼二、健康GT4:採(cǎi)用最新的華為Truseen5.5+演算法,結(jié)果會(huì)更加的精準(zhǔn)。 GT3pro:多了ECG心電圖和血管及安

問(wèn)題發(fā)現(xiàn)springboot專案生產(chǎn)session-out逾時(shí)問(wèn)題,描述下問(wèn)題:在測(cè)試環(huán)境透過(guò)改動(dòng)application.yaml配置session-out,經(jīng)過(guò)設(shè)定不同時(shí)間驗(yàn)證session-out配置生效,於是就直接設(shè)定了過(guò)期時(shí)間為8小時(shí)發(fā)布到了生產(chǎn)環(huán)境。然而中午接到客戶反應(yīng)項(xiàng)目過(guò)期時(shí)間設(shè)定較短,半小時(shí)不操作就會(huì)話過(guò)期需要重複登陸。解決處理開(kāi)發(fā)環(huán)境:springboot專案內(nèi)建Tomcat,所以專案中application.yaml配置session-out是生效的。生產(chǎn)環(huán)境:生產(chǎn)環(huán)境發(fā)布是

session失效通常是由於 session 的生存時(shí)間過(guò)期或伺服器關(guān)閉導(dǎo)致的。其解決方法:1、延長(zhǎng)session的生存時(shí)間;2、使用持久化儲(chǔ)存;3、使用cookie;4、非同步更新session;5、使用會(huì)話管理中介軟體。

php session刷新後沒(méi)有了的解決方法:1、透過(guò)「session_start();」開(kāi)啟session;2、把所有的公共配置寫(xiě)在一個(gè)php檔案內(nèi);3、變數(shù)名稱不能和陣列下標(biāo)相同;4、在phpinfo裡面查看session資料的儲(chǔ)存路徑,並查看該檔案目錄下的sessio是否儲(chǔ)存成功即可。

為什麼截圖工具在Windows11上不起作用了解問(wèn)題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無(wú)法正常工作的主要原因:對(duì)焦助手已開(kāi)啟:這可以防止截圖工具開(kāi)啟。應(yīng)用程式損壞:如果截圖工具在啟動(dòng)時(shí)崩潰,則可能已損壞。過(guò)時(shí)的圖形驅(qū)動(dòng)程式:不相容的驅(qū)動(dòng)程式可能會(huì)幹?jǐn)_截圖工具。來(lái)自其他應(yīng)用程式的干擾:其他正在運(yùn)行的應(yīng)用程式可能與截圖工具衝突。憑證已過(guò)期:升級(jí)過(guò)程中的錯(cuò)誤可能會(huì)導(dǎo)致此issu簡(jiǎn)單的解決方案這些適合大多數(shù)用戶,不需要任何特殊的技術(shù)知識(shí)。 1.更新視窗與Microsoft應(yīng)用程式商店應(yīng)用程

問(wèn)題:今天專案中遇到了一個(gè)設(shè)定時(shí)間逾時(shí)的問(wèn)題,按SpringBoot2的application.properties變更一直不生效。解決方案:server.*屬性用於控制SpringBoot所使用的嵌入式容器。 SpringBoot將使用ServletWebServerFactory實(shí)例之一來(lái)建立servlet容器的執(zhí)行個(gè)體。這些類別使用server.*屬性來(lái)配置受控的servlet容器(tomcat,jetty等)。當(dāng)應(yīng)用程式作為war檔部署到Tomcat實(shí)例時(shí),server.*屬性不適用。它們不適用,

PHPSession跨域問(wèn)題的解決方法在前後端分離的開(kāi)發(fā)中,跨域請(qǐng)求已成為常態(tài)。在處理跨域問(wèn)題時(shí),我們通常會(huì)涉及session的使用和管理。然而,由於瀏覽器的同源策略限制,跨域情況下預(yù)設(shè)無(wú)法共享session。為了解決這個(gè)問(wèn)題,我們需要採(cǎi)用一些技巧和方法來(lái)實(shí)現(xiàn)session的跨域共享。一、使用cookie跨域共享session最常

session php預(yù)設(shè)失效時(shí)間是1440秒,也就是24分鐘,表示客戶端超過(guò)24分鐘沒(méi)有刷新,當(dāng)前session就會(huì)失效;如果使用者關(guān)閉了瀏覽器,會(huì)話就會(huì)結(jié)束,Session就不存在了。
