0

我正在使用 CodeIgniter,并且我的路由设置如下:

$route["(:num)"] ="login/login_by_id/$1";

这基本上意味着当 URL 看起来像这样时:

http://mydomain.com/12345

这将有效地将值 12345 传递给控制器​​的login_by_id方法。login当我直接输入 URL 时,一切正常。我遇到问题的地方是当我尝试加载视图时。这些是调用视图的行:

$data['content'] = 'login_view';
$data['title']   = 'Login';
$data['error_msg'] = 'Invalid password.  Please try again.';
$this->load->view('login_template', $data); 

我的问题是,而不是将用户返回到这里:

http://mydomain.com/12345

浏览器将用户定向到此 URL:

http://mydomain.com/login/login_by_id

如何更改代码以使我的用户返回到他们之前所在的相同 URL?我不想在 URL 地址中显示控制器/方法。

谢谢。

4

1 回答 1

0

在控制器中的函数(点击提交按钮后调用的函数)中。

public function post_login()

  {

      $error_in_validation=set_form_validation($this->config->item('login_form'));

        if($error_in_validation){
            show_form_validation_error('controller_name/login');
        }
        else
        {
            $email=$this->input->post('email');
            $passwd=$this->input->post('passwd');
            $ret=$this->admin_model->user_login($email, $passwd);

            if($ret == NULL){

                $model=array();
                $model['error_msg']=$this->config->item('login_form_error_code_1');;
                $this->load->view('login',$model);              
            }
            else{
                redirect("home");
            }

        }

    }
于 2012-11-26T06:50:10.437 回答