日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php实现单个用户禁止重复登录,防止同一用户同时登陆

發布時間:2024/4/13 php 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php实现单个用户禁止重复登录,防止同一用户同时登陆 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<?php session_start(); //ini_set('session.auto_start', 0); //關閉session自動啟動 //ini_set('session.cookie_lifetime', 0);//設置session在瀏覽器關閉時失效 //ini_set('session.gc_maxlifetime', 3600); //session在瀏覽器未關閉時的持續存活時間 //防止同一用戶的重復登錄 $server = '127.0.0.1'; $username = 'root'; $password = ''; $conn = mysql_connect($server, $username, $password); $e = mysql_select_db('test',$conn); mysql_query("SET NAMES UTF8");//訪問url,http://www.test.com/single_login.php?name=zx&pwd=zxheader("Content-type:text/html;charset=utf-8");$username =$_GET['name'];$password =$_GET['pwd'];//$ipdress = $_SERVER['REMOTE_ADDR']; // //$login_time = time();//登陸時間更新 // //$session_id = session_id(); // //$_SESSION['name']=$_GET['name'];//var_dump($session_id);//$sql = "INSERT INTO tongji VALUES ('NULL','$data_id','$time','$ipdress','$session_id')";//$result =mysql_query($sql);$sql = "select * from slogin where username = '$username' and password = '$password'"; //var_dump($sql); $result =mysql_query($sql); $s = mysql_fetch_array($result);//權限驗證的時候一定要判斷數據庫寫入session_id是不是和$_session里面的session_id是不是一致,如果不一致就退出,這個防止同一個賬戶被多個人同時登陸的實現方法就是基于這個session_id //一定要設置session的存活時間,和session關掉頁面就session消除 //如果有其他人登陸的時候,會寫入新的session_id,這樣舊的用戶就會被權限驗證不通過,但是不能做到實時效果,這樣就擠掉了舊用戶,這里有個缺陷,就是每次驗證權限的時候就需要查詢數據庫,如果可以吧這個數據放在redis就比較好 //其實其他的驗證方法,也類似使用這種方法,有個驗證的憑證,只不過這種方法需要查詢數據庫,但是放在redis之后就比較好 //或者統一管理session的時候,比如放在數據庫就更好了,記住吧session_id也存入數據庫,或者放在memcash,redis就比較方便,比如在redis進行管理的時候,就可以直接更新掉存在session_id if($s){ // var_dump($s); // echo '<br>'; // echo session_id();if($s['session_id'] === session_id()){//unset($s['session_id']);} else {$ipdress = $_SERVER['REMOTE_ADDR'];$login_time = time();$session_id = session_id();//重新賦予一個session_id$sql = "update slogin set ip = '$ipdress',login_time= '$login_time',session_id = '$session_id'"; $result1 =mysql_query($sql);// $ss = mysql_fetch_array($result);if($result1){echo 'OK';} else {echo 'F';}}}else {echo 'FFFFFFFFFFFFFFFFFFFFFFF';}

?數據庫結構

1 id int(11) AUTO_INCREMENT
2 username varchar(20) utf8_general_ci
3 password varchar(20) utf8_general_ci
4 ip varchar(20) utf8_general_ci
5 session_id varchar(100) utf8_general_ci
6 login_time int(20)
7 regist_time int(20)

轉載于:https://www.cnblogs.com/zx-admin/p/4444426.html

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的php实现单个用户禁止重复登录,防止同一用户同时登陆的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。