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)是否過(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)文章
ThinkPHP靜態(tài)緩存簡(jiǎn)單配置和使用方法詳解
這篇文章主要介紹了ThinkPHP靜態(tài)緩存簡(jiǎn)單配置和使用方法,結(jié)合實(shí)例形式詳細(xì)分析了ThinkPHP靜態(tài)緩存簡(jiǎn)單配置方法,常用參數(shù)含義與相關(guān)使用技巧,需要的朋友可以參考下2016-03-03yii框架redis結(jié)合php實(shí)現(xiàn)秒殺效果(實(shí)例代碼)
這篇文章主要介紹了yii框架redis結(jié)合php實(shí)現(xiàn)秒殺效果,非常不錯(cuò),代碼簡(jiǎn)單易懂,需要的朋友可以參考下2017-10-10用HTML/JS/PHP方式實(shí)現(xiàn)頁(yè)面延時(shí)跳轉(zhuǎn)的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇用HTML/JS/PHP方式實(shí)現(xiàn)頁(yè)面延時(shí)跳轉(zhuǎn)的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07PHP筆記之:基于面向?qū)ο笤O(shè)計(jì)的詳解
本篇文章對(duì)面向?qū)ο笤O(shè)計(jì)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05ThinkPHP框架實(shí)現(xiàn)session跨域問(wèn)題的解決方法
這篇文章主要介紹了ThinkPHP框架實(shí)現(xiàn)session跨域問(wèn)題的解決方法,需要的朋友可以參考下2014-07-07PHP網(wǎng)頁(yè)游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(七)
這篇文章主要介紹了PHP網(wǎng)頁(yè)游戲Xnova(ogame)源碼解讀基礎(chǔ)數(shù)值部分,需要的朋友可以參考下2014-06-06深入探討:Nginx 502 Bad Gateway錯(cuò)誤的解決方法
本篇文章是對(duì)Nginx 502 Bad Gateway錯(cuò)誤的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06詳解Laravel5.6通過(guò)路由進(jìn)行API版本控制的簡(jiǎn)單方法
這篇文章主要介紹了詳解Laravel5.6通過(guò)路由進(jìn)行API版本控制的簡(jiǎn)單方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01PHP上傳圖片到數(shù)據(jù)庫(kù)并顯示的實(shí)例代碼
這篇文章主要介紹了PHP上傳圖片到數(shù)據(jù)庫(kù)并顯示的實(shí)例代碼,有興趣的朋友們參考下。2019-12-12