2016-08-23 20 views
3

我有5管理员在数据库中。所以现在我想让最后一个用户登录日期和时间的细节。在我登录仪表板之后,谁工作过me.means,我想查看以前的USER登录和注销时间和日期。如何获得最后登录管理时间和日期登录后我在php

我能得到我的(当前用户)登录的日期和时间。但我不知道如何获得以前的用户(Admin)登录和注销日期/时间详细信息。

我发送我的login.php代码。我写了当前用户时间/日期代码。请参阅代码并给我建议如何获得以前的用户登录和注销日期/时间。 谢谢。

<?php include "db.php"; ?> 
<?php session_start(); ?> 
<?php 
if(isset($_POST['login'])){ 
$username = $_POST['username']; 
$password = $_POST['password']; 

$username = mysqli_real_escape_string($connection,$username); 
$password = mysqli_real_escape_string($connection,$password); 
$password = md5($password); 
$login_query = "SELECT * FROM users WHERE user_username = '$username'" ; 
$result_query = mysqli_query($connection,$login_query); 
$count = mysqli_num_rows($result_query); 
if(!$count){ 
die("QUERY FAILED". mysqli_error($connection)); 
} 
while($row= mysqli_fetch_array($result_query)){ 
$log_user_id = $row['user_id']; 
$log_user_username = $row['user_username']; 
$log_user_password = $row['user_password']; 
$log_user_firstname = $row['user_firstname']; 
$log_user_lastname = $row['user_lastname']; 
$log_user_role = $row['user_role']; 
$log_user_time = $row['time']; 
$log_user_ip = $row['ip']; 
} 
if($username !== $log_user_username && $password !== $log_user_password){ 
header ("location: ../index.php"); 
}elseif($username == $log_user_username && $password == $log_user_password){ 
if($count == 1) { 
$_SESSION['username']=$log_user_username; 
$_SESSION['firstname']=$log_user_firstname; 
$_SESSION['lastname']=$log_user_lastname; 
$_SESSION['user_role']=$log_user_role; 
$_SESSION['last_login'] = $log_user_time; 
$_SESSION['last_login_ip'] = $log_user_ip; 

date_default_timezone_set("Asia/Kolkata"); 
$current_date = date("F d, Y, h:i:s A"); 
$ip = $_SERVER['REMOTE_ADDR']; 
$query = "UPDATE users SET time= NOW() ,ip='$ip' WHERE user_username='$username'"; 
mysqli_query($connection,$query); 

$last_login_date = $_SESSION['last_login']; 
$last_login_date2 = date('F d, Y, h:i:s A'); 
$diffs = abs(strtotime($last_login_date2) - strtotime($last_login_date)); 
$year = floor($diffs/(365*60*60*24)); 
$month = floor(($diffs - $year * 365*60*60*24)/(30*60*60*24)); 
$day = floor(($diffs - $year * 365*60*60*24 - $month*30*60*60*24)/ (60*60*24)); 
$hour = floor(($diffs - $year * 365*60*60*24 - $month*30*60*60*24 - $day*60*60*24)/ (60*60)); 
$minute = floor(($diffs - $year * 365*60*60*24 - $month*30*60*60*24 - $day*60*60*24 - $hour*60*60)/ 60); 
$second = floor(($diffs - $year * 365*60*60*24 - $month*30*60*60*24 - $day*60*60*24 - $hour*60*60 - $minute*60)); 
if($year == 0 AND $month == 0 AND $day == 0 AND $hour == 0 AND $minute == 0 AND $second < 30) { 
$time1 = 'Just now'; 
} elseif($year == 0 AND $month == 0 AND $day == 0 AND $hour == 0 AND $minute == 0) { 
$time1 = 'few seconds ago'; 
} elseif($year == 0 AND $month == 0 AND $day == 0 AND $hour == 0 AND $minute == 1) { 
$time1 = '1 minute ago'; 
} elseif($year == 0 AND $month == 0 AND $day == 0 AND $hour == 0) { 
$time1 = $minute . ' minutes ago'; 
} elseif($year == 0 AND $month == 0 AND $day == 0 AND $hour == 1) { 
$time1 = '1 hour ago'; 
} elseif($year == 0 AND $month == 0 AND $day == 0) { 
$time1 = $hour . ' hours ago'; 
} elseif($year == 0 AND $month == 0 AND $day == 1) { 
$time1 = 'Yesterday'; 
} elseif($year == 0 AND $month == 0) { 
$time1 = $day . ' days ago'; 
} elseif($year == 0 AND $month == 1) { 
$time1 = '1 month ago'; 
} elseif($year == 0) { 
$time1 = $month . ' months ago'; 
} elseif($year == 1) { 
$time1 = '1 year ago'; 
} else { 
$time1 = $year . ' years ago'; 
} 
} 
if($_SESSION['last_login_ip'] != $_SERVER['REMOTE_ADDR']) { 
$last_login_ip = "from this IP address (".$_SERVER['REMOTE_ADDR'].")"; 
} 
else { 
$last_login_ip = "IP address ".$_SESSION['last_login_ip']; 
} 
} 
header ("location: ../admin"); 
}else{ 
header ("location: ../index.php"); 
} 
?> 

所以经过我的仪表盘(的index.php)的页面,我没有附和变量,我可以看到当前用户登录登录日期/时间detail.Which是我的登录细节。

请给我建议,我怎样才能获得以前的用户登录和注销的细节。 感谢

notification.php

<span class="pull-right text-muted small"><em></em></span></a> 


           <?php 


date_default_timezone_set("Asia/Kolkata"); 
$last_login_date = date("F d, Y, h:i:s A");        

$last_login_date = $_SESSION['last_login']; 
$last_login_date2 = date('F d, Y, h:i:s A'); 
$diffs = abs(strtotime($last_login_date2) - strtotime($last_login_date)); 
$year = floor($diffs/(365*60*60*24)); 
$month = floor(($diffs - $year * 365*60*60*24)/(30*60*60*24)); 
$day = floor(($diffs - $year * 365*60*60*24 - $month*30*60*60*24)/ (60*60*24)); 
$hour = floor(($diffs - $year * 365*60*60*24 - $month*30*60*60*24 - $day*60*60*24)/ (60*60)); 
$minute = floor(($diffs - $year * 365*60*60*24 - $month*30*60*60*24 - $day*60*60*24 - $hour*60*60)/ 60); 
$second = floor(($diffs - $year * 365*60*60*24 - $month*30*60*60*24 - $day*60*60*24 - $hour*60*60 - $minute*60)); 

if($year == 0 AND $month == 0 AND $day == 0 AND $hour == 0 AND $minute == 0 AND $second < 30) { 
$time1 = 'Just now'; 
} elseif($year == 0 AND $month == 0 AND $day == 0 AND $hour == 0 AND $minute == 0) { 
$time1 = 'few seconds ago'; 
} elseif($year == 0 AND $month == 0 AND $day == 0 AND $hour == 0 AND $minute == 1) { 
$time1 = '1 minute ago'; 
} elseif($year == 0 AND $month == 0 AND $day == 0 AND $hour == 0) { 
$time1 = $minute . ' minutes ago'; 
} elseif($year == 0 AND $month == 0 AND $day == 0 AND $hour == 1) { 
$time1 = '1 hour ago'; 
} elseif($year == 0 AND $month == 0 AND $day == 0) { 
$time1 = $hour . ' hours ago'; 
} elseif($year == 0 AND $month == 0 AND $day == 1) { 
$time1 = 'Yesterday'; 
} elseif($year == 0 AND $month == 0) { 
$time1 = $day . ' days ago'; 
} elseif($year == 0 AND $month == 1) { 
$time1 = '1 month ago'; 
} elseif($year == 0) { 
$time1 = $month . ' months ago'; 
} elseif($year == 1) { 
$time1 = '1 year ago'; 
} else { 
$time1 = $year . ' years ago'; 

} 

if($_SESSION['last_login_ip'] != $_SERVER['REMOTE_ADDR']) { 
    $last_login_ip = "From this IP address (".$_SERVER['REMOTE_ADDR'].")"; 
    } 
    else { 
    $last_login_ip = "IP address ".$_SESSION['last_login_ip']; 
    } 




?> 


            <a href="#" class="list-group-item"> 
            <i class="fa fa-user"></i> User Name 
            <span class="pull-right text-muted small"><em><?php echo $_SESSION['username']; ?></em> 
            </span> 
           </a> 

           <a href="#" class="list-group-item"> 
            <i class="fa fa-sign-in"></i> Last Login Time 
            <span class="pull-right text-muted small"><em><?php echo $time1; ?></em> 
            </span> 
           </a> 
           <a href="#" class="list-group-item"> 
            <i class="fa fa-sign-out"></i> Last Logout Time 
            <span class="pull-right text-muted small"><em>27 minutes ago</em> 
            </span> 
           </a> 
           <a href="#" class="list-group-item"> 
            <i class="fa fa-tasks fa-fw"></i> User Ip 
            <span class="pull-right text-muted small"><em><?php echo $last_login_ip; ?></em> 
            </span> 
           </a> 

这里IAM让管理员登录的日期和时间detail.But我无法获得先前的观众登录细节。在这里登录后,我只能看到我的登录时间/日期详细信息。 所以请帮助。

+0

在使用的session_start为什么不考虑笨会话库http://www.codeigniter.com/user_guide/libraries/sessions.html – user4419336

回答

3

我可以给你的基本逻辑这一点。在这里你可以设置会作为标志的会话变量。

// start session 
session_start(); 

// if not yet logged in update database 
if(!isset($_SESSION['logged'])) 
{ 
    // update your database here 
    $query = "UPDATE table 
      SET LastLogin=now() 
      WHERE ID='$ID'"; 
    $result = mysql_query($query); // etc... 

    // if the table was updated 
    if($result === true) 
    { 
     // then create a session var 
     $_SESSION['logged'] = 1; 
    } 
} 

OR

您可以将在登录时的用户名,日期和时间,并把它早在最后一个ID,这将是你以前的登录。

+0

不,不代替。这不是我的意思。我可以更新数据库中的当前用户登录时间和日期。我的问题是我有10管理员在数据库中确定..所以例如我登录,然后登录后,我怎么能看到最后的访客或管理员登录和注销时间。 –

+0

见,例如,如果您已经登录,然后插入数据库中的您的详细喜欢你的ID,姓名等 通过从像Max(ID)的表中获取最大的id,其他人就可以显示登录和退出时间。 – Virb

+0

我还是不明白。你的意思是我可以通过PHP函数MAX(time)得到最大日期/时间的详细信息吗?请解释更多。我也更新了我的notification.php文件代码。我在哪里获得我的登录时间/日期。请参阅完整的代码并提出建议。 –

0

在数据库中创建一个活动表。点击链接查看示例 - > User Activity Table Structure

每当有任何用户登录时,只需在活动表中输入登录时间和用户ID以及其他所需详细信息即可。在登录时,您可以将登录状态更改为取消激活该特定会话。 下一次,当你在任何用户登录可以从PHP从数据库中获得和当前时间的最后登录时间日期()功能。只需获得这两个日期之间的时差,您将获得上一个用户的最后登录时间和持续时间。 就是这样。

希望这会起作用。

+0

Nilesh Chauhan - 根据您的建议,我们已经完成。现在我可以获取登录日期时间和登出日期/时间。但问题是我可以得到我最后的登录和注销详细信息。所以问题是我如何获得最后一次用户登录和注销日期/时间以及他的用户名? 我不明白方法(只是得到这两个日期之间的时间差,你会得到上一个用户的最后登录时间和持续时间。) –

+0

@Gurjitsingh - 如果你有用户主表,应用** INNER JOIN **在您的数据库中创建,您将获得用户名和登录/注销时间。 –

相关问题