2

我对codeigniter很陌生,所以如果这是一个n00bish之类的问题,请原谅......

我有一个名为 dashboard.php 的控制器:

class Dashboard extends CI_Controller 
{
function __construct()
    {
    parent::__construct();
    }

function index()
    {
    if($this->session->userdata('logged_in'))
        {
        $session_data = $this->session->userdata('logged_in');
        $data['username'] = $session_data['username'];

        $this->load->view('site_header');
        $this->load->view('dashboard'); 
        $this->load->view('site_footer');
        }
    else
        {
        //If no session, redirect to login page
        echo 'hello there';
        //redirect('main', 'refresh');
        }
    }

function logout()
    {
    $this->session->unset_userdata('logged_in');
    session_destroy();
    redirect('home', 'refresh');
    }

}

 ?>

当我通过 localhost/sitename/dashboard 访问该页面时,该页面加载正常。

但是,我在尝试从我的另一个控制器重定向到此控制器时遇到问题。调用重定向的控制器是 verifyLogin.php (在同一目录级别)

class VerifyLogin extends CI_Controller 
{

function __construct()
    {
    parent::__construct();
    $this->load->model('user','',TRUE);
    }

function index()
    {
    //This method will have the credentials validation
    $this->load->library('form_validation');

    $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
    $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_check_database');

    if($this->form_validation->run() == FALSE)
        {
        //Field validation failed.  User redirected welcome page
        redirect('');
        }
   else
        {
        //Go to private area
        redirect('dashboard', 'index');
        }
    }

 function check_database($password)
    {
    //Field validation succeeded.  Validate against database
    $username = $this->input->post('username');

    //query the database
    $result = $this->user->login($username, $password);

    if($result)
        {
        $sess_array = array();
        foreach($result as $row)
            {

            $sess_array = array(
                'id' => $row->ID,
                'username' => $row->username,
                'stay_logged' => true
                );

            $this->session->set_userdata('logged_in', $sess_array);
            }
        return TRUE;
        }
   else
        {
        $this->form_validation->set_message('check_database', 'Invalid username or password');
        return false;
        }
    }
}

?>

当重定向()被调用时,我得到一个错误 - 无法加载请求的文件:dashboard.php

在此错误之后,我无法再访问 localhost/sitename/dashboard(我只是得到同样的错误)。

一些建议现在会很棒,也可以作为一种针对未来问题进行调试的方法。

干杯!

4

4 回答 4

2

使用此模式重定向

redirect("controllername","function name");

或者

redirect(base_url().'index.php/controller/function');
于 2013-07-20T08:25:26.270 回答
1

试图加载一个不存在的视图。将dashboard.php 加载到您的视图文件夹。我希望它有效;))

于 2013-07-21T11:02:41.327 回答
0

通过查看您的问题,我认为这应该可以帮助您使用它:

redirect(site_url().'dashboard', 'index');
于 2013-07-20T07:43:33.580 回答
0

在验证登录控制器中尝试这个

redirect('Dashboard', 'refresh');

让我知道结果

于 2013-07-20T07:44:14.127 回答