php判斷目前使用者已在別處登入的方法,目前使用者在別處
本文執行個體講述了php判斷目前使用者已在別處登入的方法。分享給大家供大家參考。具體分析如下:
主要思路如下:
1.登入時,將使用者的SessionID記錄下來
2.驗證登入時,將記錄的該使用者SessionID與當前SessionID匹配
3.如果不相同,說明在別處登入
完整執行個體代碼點擊此處本站下載。
首先,進入http://localhost/login_single/index.php可查看登入狀態。
index.php頁面代碼如下:
複製代碼 代碼如下:
<?php
//開啟Session
session_start();
header("Content-type: text/html; charset=utf-8");
//取Session中的使用者資訊
$username=$_SESSION['username'];
//判斷是否有效
if(!isset($username)){
echo "您未登入!登入";
exit();
}
//登入時儲存的該使用者SessionID
$sessin_id=file_get_contents('session_id/'.$username);
//如果當前的SessionID與之前記錄的SessionID不匹配
//說明已在別處登入
if(session_id() != $sessin_id){
//登出目前使用者
unset($_SESSION['username']);
echo "您已在別處登入!從新登入";
exit();
}else{
echo "歡迎您:".$username;
echo " 登出";
}
echo "
--這是登入之後才能看到的內容--
";
對於未登入的使用者則提示跳轉到 http://localhost/login_single/login.html登入頁面,login.html頁面代碼如下:
複製代碼 代碼如下:
登入
提示:測試使用者名稱:admin 密碼:123
登入成功後由login.php頁面進行相應的session判斷。
login.php頁面代碼如下:
複製代碼 代碼如下:
<?php
//開啟Session
session_start();
//設定編碼
header("Content-type: text/html; charset=utf-8");
//接收表單提交的內容
$username=$_POST['username'];
$password=$_POST['password'];
//類比驗證使用者登入
if($username=="admin" && $password=="123"){
//登入成功,將使用者名稱儲存到Session中
$_SESSION['username']=$username;
//建立目錄
if(!file_exists('session_id')){
mkdir('session_id');
}
//儲存的檔案名稱
$filename='session_id/'.$username;
//當前登入使用者的SessionId
$session_id=session_id();
//當SessionID儲存到對應的檔案中
//實際應用,可以儲存到資料庫、memcache等
file_put_contents($filename,$session_id);
//跳到首頁
header ('Location: index.php');
}else{
echo ('');
exit();
}
希望本文所述對大家的php程式設計有所協助。
http://www.bkjia.com/PHPjc/938847.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/938847.htmlTechArticlephp判斷目前使用者已在別處登入的方法,目前使用者在別處 本文執行個體講述了php判斷目前使用者已在別處登入的方法。分享給大家供大家參考。具體...