PHP实现网站唯一登录

1,
设置一个唯一值, session_id()就可以
当用户登录的时候, 将这个值记录到缓存 或者数据库中
每次刷新页面 判断session_id == 缓存中的值
若不等, 清空登录状态值

if(session_id()  != $sessionid ){
	unset($_SESSION);
}

2,
如果同账号多用户频繁使用, 会造成用户频频掉线的不好体验
所以若有人在线, 可以提示下一用户账号使用中, 是否继续登录

这时候需要多设置两个值

isline 用来记录当前用户是否在线状态
lastlogin_time  和上一次登录时间

当用户登录时候, 将isline设为1, 并记录登录时间, 退出登录时将isline改为0
这样下一用户登录时, 先判断isline的值, 在执行是否可以 直接登录, 或是
alert('提示在线中, 继续登录');

为避免用户不正常退出, 直接关闭浏览器, 或者浏览器崩溃等, 所以需要用到lastlogin_time
若用户登录时, 查询缓存中
isline为在线状态, 可查看lastlogin_time的值, 如果距现在时间比较长, 可以判断为非正常退出, 当前用户可以登录
若isline在线, lastlogin_time 时间较短, 不是正常session失效时间, 可判断用户在线中, 提示账户在线中

if($isline){
	if( (time()-$alstlogijn_time)>3600*24 ){
	//距离上次登录已超过24小时, 当前用户可以直接登录
	}else{
	//上一个用户在线中, 
	//当前用户提示alert('提示在线中, 继续登录');
	}
}

当前如果当前用户session_id 与缓存中记录一致的话, 可以无需判断isline lastlogin_time等值, 可以直接登录

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值