如何在codeigniter中重定向到我的指定页面

时间:2015-11-19 07:28:32

标签: php html mysql codeigniter

我使用 codeigniter 框架创建了一个登录页面 在我创建的models文件夹中 login_model.php

class Login_model extends CI_Model 
{ //CI version 3.0
function validate_login()
{
    $this->db->where('username', $this->input->post('username'));//this is form username
    $this->db->where('password', md5($this->input->post('password')));//this is form password
    $query = $this->db->get('membership'); //database autoloaded

    if($query->num_rows == 1)
    {
        return true;
    }
  }
  } 

我认为这之后一切都很好 在我创建的controllers文件夹中 login_control.php

class Login_control extends CI_Controller 
{
function index() 
{
    $data['main_content'] = 'login_view'; 
    $this->load->view('includes/template', $data);
}

function validate_credential() {
    $this->load->model('login_model');
    $query = $this->login_model->validate_login();
    //redirect('logged_site/members_area');

    if($query)//if user credential validate!. run following events
    {
        $newdata = array(
                'username'  => $this->input->post('username'),
                'logged_in' => TRUE
        );

        $this->session->set_userdata($newdata);

        redirect('logged_site/members_area');
    } 
    else 
    {
        $this->index();
    }
  }
 } 

此处如果我直接重定向到members_area页面,则其工作方式如下

redirect('logged_site/members_area');

在上面的评论后,我使用if/else条件来验证查询但在此条件编码后没有重定向到指定页面并且没有任何错误只是停留在$this->index(); else页面中一部分。
我帮我错了吗?

2 个答案:

答案 0 :(得分:1)

您的模型validate_login()

出错

变化:

 if($query->num_rows == 1)

要:

if($query->num_rows() == 1)

答案 1 :(得分:0)

喜欢这个

在控制器中

if($query == true) # check true
{
    $newdata = array(
            'username'  => $this->input->post('username'),
            'logged_in' => TRUE
    );

    $this->session->set_userdata($newdata);

    redirect('logged_site/members_area');
} 
else 
{
    $this->index();
}

在模型中

class Login_model extends CI_Model 
{
    function validate_login()
    {
        $this->db->where('username', $this->input->post('username'));//this is form username
        $this->db->where('password', md5($this->input->post('password')));//this is form password
        $query = $this->db->get('membership'); //database autoloaded
        $result = $query->result_array();

        $count = count($result) # add
        if($count == 1) #changed
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}