【問題描述】:同一使用者在同一時間多次登入如果不能檢測出來,是危險的。因為,你無法知道是否有其他使用者在登入你的賬戶。如何禁止同一使用者多次登入呢?
【解決方案】
(1) 每次登入,身份認證成功後,重新產生乙個session_id。
session_regenerate_id();
session_register ("username") ;
(2) 在使用者資料庫中開乙個sessionid欄位,重新產生session_id後,都更新該欄位。
$sessionid = session_id();
$db = new pdo('sqlite:softtoken.db');
$sql = "update userinfo set sessionid ='$sessionid' where username='$username' and passwd='$passwd';";
$query = $db->prepare($sql);
$query->execute();
(3) 建立乙個session儲存使用者名稱
$_session["username"] = $username;
(4) 利用url重寫,傳遞session_id
$url = "main.php?sid=".session_id();
unset($db);
echo "登入成功,正在跳轉!" ;
header ("location:$url");
(5) 在需要跳轉的頁面,起始處加入main.php
header('content-type:text/html; charset=utf-8');
$sessionid = $_get['sid'];
session_id($sessionid);
session_start ();
$username = $_session["username"];
$db = new pdo('sqlite:softtoken.db');
$sql = "select * from userinfo where username='$username' and sessionid='$sessionid';";
$query = $db->prepare($sql);
$query->execute();
$user = $query->fetch(pdo::fetch_obj);
if ($user->username == ""){
session_destroy();
echo "
echo "window.location.href = 'index.html';" ;
echo "" ;
exit () ;
以上就是php有效防止同一賬號同一時間多次登入的解決方案,希望對大家解決同一賬號同一時間多次登入問題有所幫助。
php使用者註冊重複 php如何禁止重複註冊使用者名稱
php禁止重複註冊使用者名稱的方法 首先在建立資料庫表的時候,對使用者暱稱設定字段唯一性 2 用前端傳入的暱稱作為查詢條件查詢資料庫,看是否能查詢出結果,如果可以的話就說明有重複了。php禁止重複註冊使用者名稱的方法 1.在建立資料庫表的時候,對使用者暱稱nickname 下文均以此名代表使用者暱稱...
php使用者註冊重複 PHP網頁表單攻略之表單註冊
表單註冊是php網頁常見的,一般是由乙個註冊html網頁和接受註冊php網頁,以及連線資料庫網頁。例如 這是乙個註冊html網頁,如下 qianggewangzzhan body w w if preg match preg,email else echo 方法 將資料插入資料庫中 function...
php 會員 註冊,PHP製作使用者註冊系統 PHP
你的 郵箱 密碼 的md5值是 注意我們用了htmlspecialchars,避免使用者填入奇怪的東西。然後是資料庫操作,我們使用mysqli,mysql已經廢棄了,現在推薦用 mysqli,當然你也可以用 pdo。首先我們指明資料庫的一些資訊 db server localhost db user...