如何显示用户使用MySQL登录的上次登录日期和时间?

Nat*_*han 2 php mysql

我在登录页面上有这个:

   $current_time = date("g:i A");
   $current_date = date("l, F jS, Y");
   mysql_query("UPDATE employees 
   SET last_login = '$current_time', last_login_date = '$current_date' WHERE username='$username' AND password='$password'");
Run Code Online (Sandbox Code Playgroud)

然后在用户登录的页面上(受保护的页面)我有这个:

 [...]

 <?php 
 $last_login_date = $info['last_login_date']; // get last_login_date from mysql table
 $last_login_time = $info['last_login_time']; // get last_login_time from mysql table
 ?>

 [...]

 You last signed in on <?php echo $last_login_date; ?> at <?php echo $last_login_time; ?>.
Run Code Online (Sandbox Code Playgroud)

但这不能正常工作,因为它显示了他们刚刚登录的时间.如何让它显示他们上次登录的时间?

我甚至也尝试过添加一个prev_login_time和prev_login_date表格,但我不知道如何正确更新,因为它会在每次登录时更新,以显示他们刚刚登录的时间.(所以它会显示当前他们的时间)

谢谢.


编辑:[对于EdoDodo]

这是设置最后一个IP地址会话变量的登录if语句:

if($_POST['submit']) {
$sql = "SELECT * FROM employees WHERE username='$username' and password='$password'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
$info = mysql_fetch_array($result);

     if($count == 1) {

     $_SESSION['loggedin'] = 1;
     $_SESSION['user'] = $username;
     $_SESSION['last_login_time'] = $info['last_login'];
     $_SESSION['last_login_date'] = $info['last_login_date'];
     $_SESSION['last_ip'] = $info['last_login_ip'];

         $return = $_SESSION['returnurl'];
         if(!$return) {
         $return = "/employee/";
         }
         date_default_timezone_set('America/New_York');
         $current_time = date("g:i A");                                                                                                                                                                                       
         $current_date = date("l, F jS, Y");
         $ip = $_SERVER['REMOTE_ADDR'];
         mysql_query("UPDATE employees 
         SET last_login = '$current_time', last_login_date = '$current_date', last_login_ip = '$ip' WHERE username='$username' AND password='$password'");
         header("Location: $return");
         exit();
     } 
Run Code Online (Sandbox Code Playgroud)

上次登录日期和时间正常,这就是为什么我不知道它为什么不使用IP的原因.我在受保护的页面上正确访问它:

$last_login_date = $_SESSION['last_login_date'];
    if($last_login_date = date("l, F jS, Y")) {
    $last_login_date = "Today";
    }
    $last_login_time = $_SESSION['last_login_time'];
    if($_SESSION['last_ip'] != $_SERVER['REMOTE_ADDR']) {
    $last_login_ip = "this IP address (".$_SERVER['REMOTE_ADDR'].")";
    }
    else {
    $last_login_ip = "IP address ".$_SESSION['last_ip'];
    }                                                                                                                
    echo "Last account login: ".$last_login_date." at " . $last_login_time . " from " . $last_login_ip . ".";
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?也许我没有设置会话变量或正确检索它?但看起来我好像.我希望你能提供帮助.提前致谢.

Edo*_*odo 5

在更新数据库并使用新数据覆盖时间之前,您需要从数据库中的表中获取登录时间到$info数组中.然后,您将在阵列中拥有之前的登录时间(并且,如果您希望在许多不同的页面加载中执行它,则可以将其放在会话变量中).$info