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、點擊確定後先登錄的用戶退出登錄狀態