2017-09-22 10 views
0

ユーザーの最終ログイン時刻と現在時刻の差をインデックスページに表示しようとしています。codeigniterのユーザーの最終ログイン時刻と現在時刻との差異を表示する方法は?

これは私のコントローラである......

<?php 

class front_controller extends CI_Controller { 

    public function __construct() { 
     parent::__construct(); 
     $this->check_login(); 
    } 

    public function check_login() { 
     if ($this->session->userdata('id') == "") { 
      redirect(base_url()); 
     } 
    } 

} 
?> 

これは......

<?php 
public function login() { 
    $this->db->where('username', $this->input->post('username')); 
    $this->db->where('password', md5($this->input->post('password'))); 
    $result = $this->db->get('auth_user'); 
    if ($result->num_rows() > 0) { 
     $result = $result->row(); 
     $data = array(
      'id' => $result->id, 
      'username' => $result->username, 
     ); 
     $this->session->set_userdata($data); 
     $this->db->where('id', $result->id); 
     $this->db->update('auth_user', array('last_login' => date('Y-m-d H:i:s'))); 
     return true; 
    } else { 
     return false; 
    } 
} 
?> 

私のモデルであり、これは私のインデックスファイルである.....

<div id="user_info" style="padding: 15px 20px 0px 20px;"> 
    <script> 
     $(function() { 
      $("#clock").clock(); 
     }); 
    </script> 
    <p> 
    <div id="clock" style="letter-spacing: 2px;"></div> 
    Welcome, <strong><?php echo $this->session->userdata('username'); ?></strong> Last Login: 2 minutes<br/> 
    <a href="logout"><b>Logout</b></a> 
</p> 
</div> 

答えて

0

店ログインビューで使用するためのセッションでlast_login時間

public function login(){ 
$this->db->where('username',$this->input->post('username')); 
$this->db->where('password',md5($this->input->post('password'))); 
$result = $this->db->get('auth_user'); 
if($result->num_rows() > 0){ 
    $result = $result->row(); 
    $data = array(
     'id'  => $result->id, 
     'username' => $result->username, 
     'last_login'=>date('Y-m-d H:i:s') 
    ); 
    $this->session->set_userdata($data); 
    $this->db->where('id',$result->id); 
    $this->db->update('auth_user', array('last_login'=> date('Y-m-d H:i:s'))); 
    return true; 
}else{ 
    return false; 
} 
} 

ビューファイルでは、時間を計算するための日付ヘルパーのtimespan機能を使用できます。

<?php 
    $this->load->helper('date'); 
?> 
<div id="user_info" style="padding: 15px 20px 0px 20px;"> 
<script> 
$(function(){$("#clock").clock();}); 
</script> 
<p> 
<div id="clock" style="letter-spacing: 2px;"></div> 
Welcome, <strong> 
<?php echo $this->session->userdata('username');?> </strong> 
Last Login: 
<?php 
echo timespan(strtotime($this>session>userdata('last_login')),strtotime(date('Y-m-d H:i:s')),4) 
?><br/> 
    <a href="logout"><b>Logout</b></a> 
       </p> 
      </div> 
0

(ログイン時間を更新する前に)ログインするときに最後のログイン時間をセッションに保存します。そして、最後にログインした時に モデルを表示するには、そのセッションを使用します。

インデックス(ビュー)ファイルで
public function login(){ 
    $this->db->where('username',$this->input->post('username')); 
    $this->db->where('password',md5($this->input->post('password'))); 
    $result = $this->db->get('auth_user'); 
    if($result->num_rows() > 0){ 
     $result = $result->row(); 
     $data = array(
      'id'  => $result->id, 
      'username' => $result->username, 
      'last_login'=> $result->last_login, // store in session 
     ); 
     $this->session->set_userdata($data); 
     $this->db->where('id',$result->id); 
     $this->db->update('auth_user', array('last_login'=> date('Y-m-d H:i:s'))); 
     return true; 
    }else{ 
     return false; 
    } 
} 

<div id="user_info" style="padding: 15px 20px 0px 20px;"> 
        <script> 
         $(function(){$("#clock").clock();}); 
        </script> 
        <p> 
         <div id="clock" style="letter-spacing: 2px;"></div> 
         Welcome, <strong><?php echo $this->session->userdata('username');?></strong> Last Login: <?php echo $this->session->userdata('last_login');?<br/> 
         <a href="logout"><b>Logout</b></a> 
        </p> 
       </div> 
関連する問題