php實(shí)現(xiàn)用戶(hù)登陸簡(jiǎn)單實(shí)例
php實(shí)現(xiàn)用戶(hù)登陸簡(jiǎn)單實(shí)例
前言:
最近要完成的最后一個(gè)部分,就是對(duì)用戶(hù)提交的數(shù)據(jù)進(jìn)行管理,至于管理,那肯定就是管理員的事了,那一定涉及登陸,驗(yàn)證賬號(hào)權(quán)限,賬號(hào)是否過(guò)期等等問(wèn)題。
所需知識(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來(lái)確定管理員是否成功登陸,用time確定登陸是否超時(shí)。提交密碼后,如果正確會(huì)給flag賦值為1,time賦值為當(dāng)前時(shí)間。每次進(jìn)入新的頁(yè)面或進(jìn)行操作時(shí)會(huì)對(duì)這兩個(gè)變量進(jìn)行判斷,首先判斷flag值是否為1,不唯一直接提示未登陸,銷(xiāo)毀session,如果為1,再判斷當(dāng)前時(shí)間-$_SESSION(‘time')是否小于600(10分鐘),若大于,提示登陸超時(shí),銷(xiāo)毀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 "口令正確,允許訪問(wèn)";
$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;
}
?>
<a href="<?php echo $page;?>" rel="external nofollow" >點(diǎn)此跳轉(zhuǎn)</a>
list_all.php(部分)
<?php
session_start();
if($_SESSION['flag'] == 1){
if(time() - $_SESSION['time'] > 600){
echo "登陸超時(shí)";
echo '<a href="login.html" rel="external nofollow" rel="external nofollow" >點(diǎn)此登陸</a>';
session_destroy();
exit();
}else{
$_SESSION['time'] = time();
}
}else{
echo "未登陸,無(wú)權(quán)訪問(wèn)!";
echo '<a href="login.html" rel="external nofollow" rel="external nofollow" >點(diǎn)此登陸</a>';
session_destroy();
exit();
}
?>
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
php使用workman框架實(shí)現(xiàn)socket服務(wù)以及連接客戶(hù)端
這篇文章主要介紹了php使用workman框架實(shí)現(xiàn)socket服務(wù)以及連接客戶(hù)端,本文列舉了詳細(xì)的過(guò)程和代碼展示,能夠幫助你學(xué)習(xí),需要的朋友可以參考下2021-06-06
laravel開(kāi)發(fā)環(huán)境homestead搭建過(guò)程詳解
Laravel Homestead 是一個(gè)官方預(yù)封裝的 Vagrant box ,它為你提供了一個(gè)完美的開(kāi)發(fā)環(huán)境,你不需要在本地機(jī)器安裝 PHP、web 服務(wù)器和其他的服務(wù)器軟件,這篇文章主要介紹了laravel開(kāi)發(fā)環(huán)境homestead搭建,需要的朋友可以參考下2020-07-07
基于php偽靜態(tài)的實(shí)現(xiàn)詳細(xì)介紹
本篇文章介紹了,基于php偽靜態(tài)的實(shí)現(xiàn)詳細(xì)分析。需要的朋友參考下2013-04-04
使用PHP處理數(shù)據(jù)庫(kù)數(shù)據(jù)如何將數(shù)據(jù)返回客戶(hù)端并顯示當(dāng)前狀態(tài)
這篇文章給大家介紹使用php處理大量數(shù)據(jù),每處理一個(gè)數(shù)據(jù)返回客戶(hù)端顯示當(dāng)前狀態(tài)的方法,對(duì)PHP處理數(shù)據(jù)庫(kù)數(shù)據(jù)返回客戶(hù)端并顯示當(dāng)前狀態(tài)的相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-02-02
php使用 readfile() 函數(shù)設(shè)置文件大小大小的方法
本文通過(guò)實(shí)例代碼給大家講解了php使用 readfile() 函數(shù)設(shè)置文件大小大小的方法,需要的的朋友參考下吧2017-08-08
PHP實(shí)現(xiàn)Google plus的好友拖拽分組效果
本篇文章使用PHP和jQuery實(shí)現(xiàn)了同樣的好友拖拽添加分組的應(yīng)用。以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也我的示例會(huì)對(duì)你的社交網(wǎng)站項(xiàng)目有所幫助。2016-10-10

