运行PHP甚至用户注销

时间:2018-12-15 04:14:30

标签: php numbers

我有一个PHP文件,用户可以登录和注销。我目前正在运行。我想在用户登录时显示一个数字。

例如,用户A登录并重定向到userpage.php,我想显示一个1,2,3之类的数字并且仍然计数。我已经创建了这个。

但是问题是当用户注销并再次尝试登录时,号码不继续吗?它再次变成1,2,3。

即使用户注销,是否仍有可能继续计数?

谢谢

3 个答案:

答案 0 :(得分:0)

要获得此结果,您不能尝试记录登录时间和注销时间,并取时间之间的差值,并显示自首次登录以来经过的秒数。

第1步:记录首次登录时间并将其保存在数据库中。

第2步:记录注销时间并将其保存在数据库中。

第3步:如果您希望第一次登录和最后一次注销所花费的时间过长,请以秒为单位计算时间差。 如果您希望上次登录的时间已到,请计算上次登录与当前时间之间的时差。

第4步:在HTML用户页面上显示经过的时间。

答案 1 :(得分:0)

更新:由于您希望数字在后台增加而不考虑登录/注销,请使用cron jobs参见this了解更多信息


您必须为每个用户登录使用计数器,该计数器必须是永久性的,因此,请将此计数器保存在数据库中,无论您使用哪种应用程序。

流量会像这样:

  

检查登录名>成功登录>从数据库获取当前登录计数器   对于该特定用户>递增1>将其保存回数据库

php的一般实现就像(考虑用户名始终是唯一的)

注意:以下代码未经测试

    .
    .
    .
    $stmt = $con->prepare("SELECT user_id, username, password, login_count FROM users WHERE username=? AND password=? LIMIT 1");
    $stmt->bind_param('ss', $username, $password);
    $stmt->execute();
    $stmt->bind_result($user_id, $username, $password, $loginCount);
    $stmt->store_result();
    if($stmt->num_rows == 1)  //To check if the row exists
    {
        if($stmt->fetch()) //fetching the contents of the row
        {
               $_SESSION['Logged'] = 1;
               $_SESSION['user_id'] = $user_id;
               $_SESSION['username'] = $username;
               $loginCount = $loginCount+1; //increment login counter by 1 
                                            //this should be default as 0 when a new user register

               //Now save it back to DB using update query

               $Updatesql = "UPDATE Table SET loginCount=? WHERE username=?";
               $Updatestmt = $con->prepare($Updatesql);
               $Updatestmt->bind_param('ds', $loginCount,$username);
               $Updatestmt->execute();

               if ($Updatestmt->error) {
               //Update failed
                echo "FAILURE!!! " . $Updatestmt->error;
               }
               else echo "Updated {$Updatestmt->affected_rows} rows"; //Update succeeded
               $Updatestmt->close();

               exit();
       }

}
else {
    echo "INVALID USERNAME/PASSWORD Combination!";
}
$stmt->close();

答案 2 :(得分:-1)

最初在用户数据库中设置一个计数字段。 登录并重定向到userpage.php文件后,显示count字段中count的计数,注销后,将最大数量保存到count字段中