Codeigniter处理用户登录验证后url跳转的代码,涉及到My_Controller.php以及登录验证模块User.php。
文件:My_Controller.php
 
文件:User.php
 
<?php
class User extends MY_Controller 
{
    function login()
    {
        if ($this->tank_auth->is_logged_in()) {   // logged in
            redirect('/');
        } else {
            //other codes here......
            /*判断是否有redirect信息*/
            $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
            if ($this->form_validation->run()) {                                // validation ok
                if ($this->tank_auth->login(
                        $this->form_validation->set_value('login'),
                        $this->form_validation->set_value('password'),
                        $this->form_validation->set_value('remember'),
                        $data['login_by_username'],
                        $data['login_by_email'])) {                                // success
                    redirect($data['redirect']);
                } else {
                    //error handling
                }
            }
            $this->load->view("login_form")
        }
    }
/*
Note: 在login_form中需要注意,提交表单的form地址:
<?php echo form_open(site_url("/auth/login?redirect=".$redirect)); ?>
*/
}?>
在login_form中需要注意,提交表单的form地址: