php使用者註冊重複 php有效防止同一使用者多次登入

2021-10-16 14:10:49 字數 1433 閱讀 8956

【問題描述】:同一使用者在同一時間多次登入如果不能檢測出來,是危險的。因為,你無法知道是否有其他使用者在登入你的賬戶。如何禁止同一使用者多次登入呢?

【解決方案】

(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...