很多站长朋友们都不太清楚php禁止多人登录,今天小编就来给大家整理php禁止多人登录,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP如何判断用户是否登陆,防止同账号多登陆, 2、 Thinkphp5防止某个IP多次登录的方法 3、 PHP如何用sesion来禁止同用户名同时在不同地方登陆? 4、 PHP如何禁止多个用户在各自的电脑上用同一个用户名同时登录系统? 5、 PHP 如何禁止多个账号在同一台机器上登录 6、 如何用php实现一个账号不能多个用户同时登陆? PHP如何判断用户是否登陆,防止同账号多登陆,大概逻辑是这样的,如果要达到一个账号登陆了,要把另一个客户端上的统一账号踢掉,那么你需要用记录用户头token,和设备唯一识别号到数据库。
当用户登陆的时候,检测和用户uid相关的token表,如果已经有token了,并且本次的设备唯一识别号和已经登陆的识别号不一样,那么清空原有token,也就是将原来登陆的账号踢下线。记录新的设备识别号的token即可。
php大致代码如下:
$currentDeviceUUID=getDeviceUUID();
$uid = getUserId();
$token = generateToken();
select * from tokenTable where uid="$uid";
update set token='' where uid="$uid";
insert into tokenTable (uid, token, deviceUUID) values("$uid", "$token", $currentDeviceUUID);
Thinkphp5防止某个IP多次登录的方法//昨天写的思路不对,重新写....
/**
*检查IP是否重复登录多次
*/
public function check_ip(){
//获取ip
$login_ip=$_SERVER["REMOTE_ADDR"];
$login_time=date("Y-m-d",time());
if(Cache::get('cache_login_data')==false){
//如果ip换成为false,那么创建一个缓存,并赋值第一个
$login_data[0]=['login_ip'=>$login_ip,'login_time'=>$login_time];
Cache::set('cache_login_data',$login_data);
}else{
//如果有cache,那么将这条数据加入到缓存中最后一条去
$cache_login_data=Cache::get('cache_login_data');
$count=0;
foreach($cache_login_dataas$k=>$v){
//如果当前缓存中的值含有当前ip和时间,那么计算当前时间内登录次数
if($v['login_time']==$login_time$v['login_ip']==$login_ip){
$count++;
if($count>10){
//当前ip登录超过10次
$this->error("你登录超过了10次,请不要再来登了...","Login/index");
}else{
//当前时间内有该IP登陆过,但是没有超过10次
$cache_login_data[count($cache_login_data)+1]=['login_ip'=>$login_ip,'login_time'=>$login_time];
Cache::set('cache_login_data',$cache_login_data);
}
}else{
//当前时间内,该IP没有登陆过
$cache_login_data[count($cache_login_data)+1]=['login_ip'=>$login_ip,'login_time'=>$login_time];
Cache::set('cache_login_data',$cache_login_data);
}
}
}
}
PHP如何用sesion来禁止同用户名同时在不同地方登陆?登录的时候生成一个随机字符串放到SESSION和数据库里,然后在每次浏览页面的时候检查SESSION和数据库里的值是否相同,如果另一个人在不同的地方登录了同一个用户,那么数据库里的值会发生改变,先前那个人的登录就会失效
PHP如何禁止多个用户在各自的电脑上用同一个用户名同时登录系统?1.如何检测该用户20分钟内点没点击过页面?
依靠别的用户点击页面来触发比较,不过这很不准确。
2.用户是非安全退出,如何清空logintime字段值?
无法清空。
3.PHP如何禁止多个用户在各自的电脑上用同一个用户名同时登录系统?
用时间和IP来判断,若是同一局域网的话就难了。
PHP 如何禁止多个账号在同一台机器上登录利用网卡的mac地址做为唯一值
登录检查时记录 登录账号和mac
检查此mac是否存在于当前已登录的mac中,是的就提示并返回,不是就登录
如何用php实现一个账号不能多个用户同时登陆?我现在的用法是:\x0d\x0a1、每个人登录的时候会生成一个随机码(随机码保存在数据库中);\x0d\x0a2、客户端cookies不保存用户名,只保存随机码;\x0d\x0a3、账号在任何的地方登录时便会执行第一二部,之前的登录就会失效;\x0d\x0a4、就这样就实现了你的功能;\x0d\x0a\x0d\x0a扩展:\x0d\x0a5、可以设置网页最后更新的时间,并且超过一定的时间后就过期;\x0d\x0a6、随机码要长一点才不会重复,我现在用的64进制32位,这样几乎不可能重复;\x0d\x0a7、另外客户端不保存用户名和密码只存存随机码相对来说安全性也要高些;
关于php禁止多人登录的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php禁止多人登录 phpstudy403禁止访问的详细内容...