一個賬號只能一個用戶登錄,原登錄用戶得到提示後被踢出

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、點擊確定後先登錄的用戶退出登錄狀態
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章