2017-12-31 53 views
1

사용자가 로그인 할 때 온라인 사용자 상태를 변경하는 방법을 알고 싶습니다. 나는 이것을 찾고 있었지만 내 질문에는 답이 없다. 나는이 codeigniter를 배우는 것에 익숙하다. 너희들이 내 문제를 도울 수 있기를 바란다.Codeigniter의 온라인 사용자 상태

컨트롤러 :

public function signdevice() { 
    $device = $this->input->post('device'); 
    $pass = $this->input->post('password'); 
    $data = array(
     'device' => $device, 
     'password' => $pass, 
     'status' => $status 
    ); 
    $status = 1; 
    $res = $this->db->get_where('devices', $data); 
    if ($res->num_rows() > 0) { 
     $this->session->set_userdata(
      array(
       'signin' => TRUE, 
       'device' => $device, 
       'status' => $status 
      ) 
     ); 
     $data = array('device' => $device, 'password' => $pass, 'status' => 1); 
     $this->db->where('device', '$device'); 
     $this->db->update('devices', $data); 
     redirect(base_url('pelanggan')); 
    } else { 
     $this->session->set_flashdata('result_login', 'Wrong Username or Password.'); 
     redirect(base_url()); 
    } 
} 

모델 :

function login($user,$pass) 
{ 
    $this->db->where('device', $user); 
    $this->db->where('password', $pass); 
    $query = $this->db->get('devices'); 
    if($query->num_rows()==1) { 
     return $query->row_array(); 
    } else { 
     $this->session->set_flashdata('error', 'Username atau password salah!'); 
     redirect('login'); 
    } 
} 

function update($id,$stat) 
{ 
    $data['status'] = $stat; 
    $stat = 1; 
    $this->db->where('kd_device', $id); 
    $this->db->update('devices', $stat); 
    return TRUE; 
} 
+0

, 당신이이 일을해야합니까? 그렇다면 실제 코드에 어떤 문제가 있습니까? 당신은 그것이 작동하지 않는다고 생각하게 만듭니다. – TimBrownlaw

답변

2

당신은 & 잘못된 코드 누락의 여러 라인을 가지고있다.

컨트롤러 :

public function signdevice() { 
    $device = $this->input->post('device'); 
    $pass = $this->input->post('password'); 
    $data = array(
     'device' => $device, 
     'password' => $pass, 
     'status' => 0 // changed value to 0 
    ); 
    $status = 1; 
    $res = $this->db->get_where('devices', $data); 
    if ($res->num_rows() > 0) { 
     $this->session->set_userdata(
      array(
       'signin' => TRUE, 
       'device' => $device, 
       'status' => $status 
      ) 
     ); 
     $data = array('device' => $device, 'password' => $pass, 'status' => 1); 
     $this->db->where('device', $device); // removed quotes 
     $this->db->update('devices', $data); 
     redirect(base_url('pelanggan')); 
    } else { 
     $this->session->set_flashdata('result_login', 'Wrong Username or Password.'); 
     redirect(base_url()); 
    } 
} 

모델 :

외에 특별히 $ 상태 = 0을 초기화하는하지의
... 
function update($id,$stat) 
{ 
    $stat = 1; // swapped this line with below 
    $data['status'] = $stat; // swapped this line with above 
    $this->db->where('kd_device', $id); 
    $this->db->update('devices', $data); // maybe what you want to save is $data? 
    return TRUE; 
} 
+0

재미있는 점은 update()가있는 모델은 사용되지 않습니다. – TimBrownlaw

+0

당신 말이 맞아요, 또한 그 통지 :) –

+0

고마워요, 그것 일했습니다 : D 조 –