2016-08-23 10 views
3

私はデータベースに5人の管理者がいます。だから、私は最後のユーザーに日時の詳細を記録させたい。ダッシュボードにログインしてからme.meansの前で働いた人以前のUSERログインとログアウトの日時を見たいphpでログインした後の管理日時に最後にログインする方法

自分の(現在のユーザー)ログイン日時を取得できます。しかし、以前のユーザー(管理者)のログインとログアウトの日付/時刻の詳細を取得するにはどうすればよいか分かりません。

login.phpコードを送信しています。現在のユーザーの時刻/日付コードを書きました。コードを見て、以前のユーザーのログインとログアウトの日時を取得する方法を教えてください。おかげさまで だから、ダッシュボード(index.phpを)私は、変数をエコーと私は可能な現在のユーザーのログイン日時を確認することができなかったページにログイン/時間detail.Whichは私のログイン詳細である私の後

<?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"); 
} 
?> 

私は以前のユーザーのログインとログアウトの詳細を取得する方法を教えてください。 おかげ

<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なっ管理ログイン日時

notification.php

detail.But I前回の訪問者のログインの詳細を取得できません。私はここにログイン後、私のログイン日時の詳細だけを見ることができます。 だから助けてください。

+0

session_startを使用する代わりに、なぜcodeigniterセッションライブラリを参照しないでください。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、日付と時刻を挿入して、以前のログインになり、最後のIDとしてそれを取り戻すことができます。

+0

いいえいいえ。これは私が意味するものではありません。データベースの現在のユーザーログイン日時を更新できます。私の質問は、データベースの管理者が10人いることです。たとえば、ログインしてからログインした後に、最後の訪問者または管理者のログインとログアウト時刻を確認するにはどうすればいいですか? –

+0

たとえば、ログインしている場合は、ID、名前などの詳細情報をデータベースに挿入してください。 max(id)のようなテーブルから最大のIDを取得すると、他の人がログインとログアウト時間を表示できます。 – Virb

+0

私はまだ理解していません。PHP関数MAX(時間)で最大日時まで詳細を取得できますか?もっと説明してください。私はまた、私のnotification.phpファイルコードを更新しました。ログイン日時を取得しています。完全なコードを見て、私に提案してください。 –

0

データベースに1つのアクティビティテーブルを作成します。例を表示するにはリンクをクリックしてください - > User Activity Table Structure

ユーザがログインするたびに、ログイン時間とユーザIDを他の必要な詳細とともにアクティビティテーブルに入力してください。ログイン時に、その特定のセッションのログイン状態を無効に変更できます。 任意のユーザーがログインすると、データベースからの最後のログイン時刻と現在の時刻をPHP date()の関数から取得できます。これらの2つの日付の時間差を取得すると、前回のユーザーによる最後のログイン時間と期間が取得されます。 それだけです。

これがうまくいくと思います。

+0

Nilesh Chauhan - あなたの提案に従ってください。今、私はログイン日時とログアウト日時を得ることができます。しかし、問題は私はちょうど私の最後のログインとログアウトの詳細を得ることができます。ですから、どのように私は最後のユーザーログインとログアウトの日付/時刻を彼のユーザー名と共に取得できますか? 私は方法を理解していません(これら2つの日付の時間差を取得して、前回のユーザーによる最後のログイン時間と期間を取得します)。 –

+0

@Gurjitsingh - ユーザーマスターテーブルを使用して** INNER JOIN **を適用あなたのデータベースに作成され、あなたはログイン/ログアウト時間と共にユーザー名を取得します。 –

関連する問題