【问题标题】:Change client data in database without refreshing page在不刷新页面的情况下更改数据库中的客户端数据
【发布时间】:2015-12-18 08:58:34
【问题描述】:

我有一个用户系统,我使用 cookie 使它们在 1 小时不活动后自动注销,但只有当客户端刷新页面时,它才会更新数据库行。到目前为止,这是我的代码:

if(isset($_SESSION['username'])) {
    $activeUser = $_SESSION['username'];
    if(isset($_COOKIE['active'])) {
        setcookie('active', $activeUser, time() +3600);
    } else {
        $makeOffline = $DB->query("UPDATE users SET user_loggedin = '0' WHERE user_id = '".$dbid."'");
        header("location: ".$site_url."/logout.php");
    }
}

我现在要问的是,是否有任何方法可以在 1 小时不活动后将 user_loggedin 设置为 0,而无需客户端刷新页面?

【问题讨论】:

  • 如果您还没有将此代码放在单独的 PHP 中,然后使用 ajax 调用调用它,在您网站的页脚或页眉中设置一个计时器并调用您创建的用于检查的 ajax 函数例如每 5 分钟 cookie。

标签: php mysql database session cookies


【解决方案1】:

更好的方法是:

  1. 将活动时间存入数据库。

  2. 一旦该用户刷新或执行某项操作,就更新该活动时间。

所以你可以根据记录+1小时得到这个用户是否仍然在线。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    相关资源
    最近更新 更多