2012-02-11 95 views
0

($row->status == "Pass")应该等于true,但对于某些情况则不是。我猜我有代码错误。有人知道我做错了什么吗?CodeIgniter if ... else语句未正确执行

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 2012-02-11 03:01:03

+0

我打电话的那一行有'Pass'。但是我有其他的行,如“待定”和“批准”等其他值。我要去掉那些'状态'值不同于'通过'的行,看看它做了什么。 – 2012-02-11 03:13:03

+0

嗯,它的工作,那是什么意思?出了什么问题? – 2012-02-11 03:14:20

回答

3

从评论中复制所以这不会继续显示了在人应答Henes :)


这是区分大小写的 - 是绝对“通行证”,在这两个地方?问题几乎肯定会是一个简单的问题,所以重新检查一下你的基本知识。