2012-02-11 3 views
0

($row->status == "Pass") должен быть равен true, но для некоторых это не так. Я предполагаю, что у меня ошибка кода. Кто-нибудь знает, что я делаю неправильно?CodeIgniter if ... else statement не правильно выполняет

public function logsig() { 
     header('Content-type:application/json'); 
     $postedUser = $this->input->post('username'); 
     $password = $this->input->post('password'); 
     $hashedPass = $this->encrypt->sha1($password); 
     $query = $this->db->query("SELECT * FROM users WHERE username = '{$postedUser}' AND password = '{$hashedPass}'"); 
      if ($query->num_rows() > 0) { 
       $row = $query->row(); 
       if ($row->status == "Pass") { 
        $this->session->set_userdata('logged', "1"); 
        $this->session->set_userdata("username", "{$postedUser}"); 
        echo json_encode(array('session_state' => true)); 
       } elseif ($row->status == "Fail" || $row->status == "Pending") { 
        echo json_encode(array('session_state' => false)); 
       } 
      } 
     } 
+1

Каково значение '$ row-> status'? – Joe

+0

Строка, которую я вызываю, имеет «проход». Но у меня есть другие строки с другими значениями, такими как «ожидающий» и «одобренный». Я собираюсь избавиться от таблицы строк, которые имеют значения статуса, отличные от «Pass», и посмотреть, что он делает. –

+0

Хм, это сработало, так что это значит? Что случилось? –

ответ

3

скопирована из комментария так что это не мешает появляться в без ответа Henes :)


Это чувствительны к регистру - это, безусловно, «Pass» в обоих местах? Проблема почти наверняка будет простой getcha, поэтому перепроверьте свои основы.