亚洲成色在线无码_中文字幕专区高清在线观看_国产精品视频一区二区三区四_国内自拍视频一区二区三区_伊人伊成久久人综合网小说

首頁(yè) > 職業(yè)資格  > 

php實(shí)現(xiàn)用戶登陸簡(jiǎn)單實(shí)例

2022-12-18   來源:萬能知識(shí)網(wǎng)

php實(shí)現(xiàn)用戶登陸簡(jiǎn)單實(shí)例

最近學(xué)習(xí)中要使用PHP+MySql實(shí)現(xiàn)簡(jiǎn)單登錄注冊(cè),看了很多簡(jiǎn)單案例后發(fā)現(xiàn),并沒有人通過PDO實(shí)現(xiàn)簡(jiǎn)單登錄注冊(cè),要么就是Mysql和MySqli實(shí)現(xiàn),就算實(shí)現(xiàn)了意義也不大,js就可以做的事情,沒必要放到PHP中去,我卻偏偏不相信,保留著一股倔勁,簡(jiǎn)單的實(shí)現(xiàn)了登錄注冊(cè),下面是小編為大家整理的php實(shí)現(xiàn)用戶登陸簡(jiǎn)單實(shí)例,歡迎閱讀與收藏。

php實(shí)現(xiàn)用戶登陸簡(jiǎn)單實(shí)例


(資料圖片)

前言:

最近要完成的最后一個(gè)部分,就是對(duì)用戶提交的數(shù)據(jù)進(jìn)行管理,至于管理,那肯定就是管理員的事了,那一定涉及登陸,驗(yàn)證賬號(hào)權(quán)限,賬號(hào)是否過期等等問題。

所需知識(shí)

session,確實(shí)是很重要的東西。并且我遇到session不能跨頁(yè),修改PHP.ini的session.use_trans_sid = 0值為1。

具體實(shí)現(xiàn)

我的后臺(tái)設(shè)計(jì)的比較簡(jiǎn)單,只需輸入一個(gè)密碼即可,這個(gè)密碼當(dāng)然是保存在服務(wù)器可以更改的啦。所以只需要給session添加兩個(gè)變量,flag、time。

首先,用flag來確定管理員是否成功登陸,用time確定登陸是否超時(shí)。提交密碼后,如果正確會(huì)給flag賦值為1,time賦值為當(dāng)前時(shí)間。每次進(jìn)入新的"頁(yè)面或進(jìn)行操作時(shí)會(huì)對(duì)這兩個(gè)變量進(jìn)行判斷,首先判斷flag值是否為1,不唯一直接提示未登陸,銷毀session,如果為1,再判斷當(dāng)前時(shí)間-$_SESSION(‘time")是否小于600(10分鐘),若大于,提示登陸超時(shí),銷毀session;若小于,允許操作,并更新time變量值為當(dāng)前值。

部分代碼

check_pw.php

?php  session_start();

$_SESSION["flag"] = 0;

$myfile = fopen("passwd","r") or die("Unable to open file!");

$passwd = fgets($myfile);

if(empty($_POST["pass"])){

echo "不能為空,重新輸入";

$page = "login.html";

}else{

$pass = $_POST["pass"];

$passwd = test_input($passwd);

$pass = test_input($pass);

if($pass == $passwd){

echo "口令正確,允許訪問";

$page = "list_all.php";

$_SESSION["flag"] = 1;

$_SESSION["time"] = time(); //當(dāng)前秒數(shù)

}else{

echo "口令錯(cuò)誤,重新輸入";

$page = "login.html";

}

}

function test_input($date){

$date = trim($date);

$date = stripcslashes($date);

$date = htmlspecialchars($date);

return $date;

}

點(diǎn)此跳轉(zhuǎn)

list_all.php(部分)

?

?php  session_start();

if($_SESSION["flag"] == 1){

if(time() - $_SESSION["time"] > 600){

echo "登陸超時(shí)";

echo "點(diǎn)此登陸";

session_destroy();

exit();

}else{

$_SESSION["time"] = time();

}

}else{

echo "未登陸,無權(quán)訪問!";

echo "點(diǎn)此登陸";

session_destroy();

exit();

}

HTML代碼(login.html):

用戶登錄

7天內(nèi)自動(dòng)登錄

login.PHP:(登陸處理頁(yè))

header("Content-type:text/html; charset=utf-8");

// 開啟Session

session_start();

// 處理用戶登錄信息

if (isset($_POST["login"])) {

# 接收用戶的登錄信息

$username = trim($_POST["username"]);

$password = trim($_POST["password"]);

// 判斷提交的登錄信息

if (($username == "") || ($password == "")) {

// 若為空,視為未填寫,提示錯(cuò)誤,并3秒后返回登錄界面

header("refresh:3; url=login.html");

echo "用戶名或密碼不能為空,系統(tǒng)將在3秒后跳轉(zhuǎn)到登錄界面,請(qǐng)重新填寫登錄信息!";

exit;

} elseif (($username != "username") || ($password != "password")) {

# 用戶名或密碼錯(cuò)誤,同空的處理方式

header("refresh:3; url=login.html");

echo "用戶名或密碼錯(cuò)誤,系統(tǒng)將在3秒后跳轉(zhuǎn)到登錄界面,請(qǐng)重新填寫登錄信息!";

exit;

} elseif (($username = "username") && ($password = "password")) {

# 用戶名和密碼都正確,將用戶信息存到Session中

$_SESSION["username"] = $username;

$_SESSION["islogin"] = 1;

// 若勾選7天內(nèi)自動(dòng)登錄,則將其保存到Cookie并設(shè)置保留7天

if ($_POST["remember"] == "yes") {

setcookie("username", $username, time()+7*24*60*60);

setcookie("code", md5($username.md5($password)), time()+7*24*60*60);

} else {

// 沒有勾選則刪除Cookie

setcookie("username", "", time()-999);

setcookie("code", "", time()-999);

}

// 處理完附加項(xiàng)后跳轉(zhuǎn)到登錄成功的首頁(yè)

header("location:index.PHP");

}

}

?>

index.PHP(默認(rèn)主頁(yè)):

header("Content-type:text/html; charset=utf-8");

// 開啟Session

session_start();

// 首先判斷Cookie是否有記住了用戶信息

if (isset($_COOKIE["username"])) {

# 若記住了用戶信息,則直接傳給Session

$_SESSION["username"] = $_COOKIE["username"];

$_SESSION["islogin"] = 1;

}

if (isset($_SESSION["islogin"])) {

// 若已經(jīng)登錄

echo "你好! ".$_SESSION["username"]." ,歡迎來到個(gè)人中心!

";

echo "注銷";

} else {

// 若沒有登錄

echo "您還沒有登錄,請(qǐng)登錄";

}

?>

logout.PHP注銷頁(yè)

header("Content-type:text/html; charset=utf-8");

// 注銷后的操作

session_start();

// 清除Session

$username = $_SESSION["username"]; //用于后面的提示信息

$_SESSION = array();

session_destroy();

// 清除Cookie

setcookie("username", "", time()-99);

setcookie("code", "", time()-99);

// 提示信息

echo "歡迎下次光臨, ".$username."

";

echo "重新登錄";

?>

詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。

標(biāo)簽

用戶登陸

推薦詞條