一个账号只能一个用户登录,原登录用户得到提示后被踢出

1、登录时,更新用户表中session_id字段字符串
登录控制器:

public function login(){
	//登录成功后
	M('member')->where(['id' => $member['id']])->save(['current_login_time'=>time(),'session_id'=>session_id()]);
}

2、在用户操作时,获取数据库已存的session_id,判断是否与当前值一致,若不一致则提示用户有用户登录账号
公用控制器:

protected function _initialize(){
	//一个账号只能一个用户登录,旧登录用户被踢出
	$session_id = M('member')->where(['id'=>$member_id])->getField('session_id');
	$is_login = 0;
	if($session_id!=session_id()){
		$is_login = 1;
	}
	$this->assign('is_login',$is_login);
}

3、在页面公用HTML文件中写入提示js

<script type="text/javascript">
$(function(){
	var is_login = '{$is_login}';
	if(is_login=='1'){
		layer.alert('有其他用户登录账号',{closeBtn:0},function(){
			$.post("{:U('Login/logout')}", {}, function (logout_res) {
				if (logout_res.status == 1) {
					layer.msg(logout_res.msg, {}, function (index) {
						layer.close(index);
						window.location.href = logout_res.url;
					});
				} else {
					layer.msg(logout_res.msg);
					return false;
				}
			})
		});
	}
})
</script>

4、点击确定后先登录的用户退出登录状态
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值