首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP停止用户从多个浏览器/PC登录

PHP停止用户从多个浏览器/PC登录
EN

Stack Overflow用户
提问于 2012-11-23 00:19:11
回答 2查看 213关注 0票数 0

我在我的users表中有一个' online‘列,它每隔90分钟更新一次他们上次在线的时间,它显示如下:

2012-11-22 19:15:18

如果该用户在过去90分钟内一直在线,我该如何阻止该用户登录?

人们目前正在滥用我的系统,通过获得x10的合法数量的网站货币。

编辑:

HTML登录表单:

代码语言:javascript
复制
<form method="post" action="">
            <input class="l_form" onfocus="if(this.value == '<?=$lang['b_14']?>') { this.value = ''; }" onblur="if(this.value=='') { this.value = this.defaultValue }" value="<?=$lang['b_14']?>" name="login" type="text">
            <input class="l_form" onfocus="if(this.value == '<?=$lang['b_15']?>') { this.value = ''; }" onblur="if(this.value=='') { this.value = this.defaultValue }" value="<?=$lang['b_15']?>" name="pass" type="password">                                  
            <?=$errMsg?>
            <div class="buttons">
                <input class="gbut" name="connect" value="<?=$lang['b_13']?>" type="submit"><br /><br />
                <span style="float:right;display:inline"><a href="recover.php" style="font-size:12px"><?=$lang['b_16']?></a></span>
            </div>                                        
        </form>

is online有一个功能:

代码语言:javascript
复制
/* User Session */
$is_online = (isset($_SESSION['EX_login']) ? true : false);
if(isset($_SESSION['EX_login'])){
$sql                = $db->Query("SELECT *,UNIX_TIMESTAMP(`online`) AS `online` FROM `users`     WHERE (`login`='".$_SESSION['EX_login']."' OR `email`='".$_SESSION['EX_login']."')");
$data               = $db->FetchArray($sql);
if($data['id'] == ''){
    session_destroy();
}elseif($data['online']+90 < time()){
    $db->Query("UPDATE `users` SET `online`=NOW() WHERE `id`='".$data['id']."'");
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-23 00:32:16

您可以尝试执行以下操作:

代码语言:javascript
复制
$currentTime = time();
$limit = $currentTime - 60 * 90;
if ($data['online'] < $limit) {
    echo "You have to wait..";
  exit;
}
票数 0
EN

Stack Overflow用户

发布于 2012-11-23 00:33:58

当用户尝试登录时,MYSQL不能做到这一点吗

代码语言:javascript
复制
SELECT * FROM users WHERE online <= NOW() - INTERVAL 90 MINUTE;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13516639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档