Php CodeIgniter阻止在URL中显示控制器/方法
我正在使用CodeIgniter,我的路线设置如下:Php CodeIgniter阻止在URL中显示控制器/方法,php,codeigniter,url-rewriting,Php,Codeigniter,Url Rewriting,我正在使用CodeIgniter,我的路线设置如下: $route["(:num)"] ="login/login_by_id/$1"; 这基本上意味着当URL如下所示时: http://mydomain.com/12345 这将有效地将值12345传递到login控制器的login\u id方法中。当我直接输入URL时,一切正常。我遇到的问题是当我尝试加载视图时。以下是调用视图的行: $data['content'] = 'login_view'; $data['title'] = '
$route["(:num)"] ="login/login_by_id/$1";
这基本上意味着当URL如下所示时:
http://mydomain.com/12345
这将有效地将值12345传递到login
控制器的login\u id
方法中。当我直接输入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地址中显示控制器/方法
谢谢。在控制器的函数中(您在点击提交按钮后调用的函数)
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");
}
}
}
当用户输入错误的密码时,您希望将其重定向回登录表单。我是对的。是的,这正是我想做的。检查我的答案,完全基于codeIgniter form类。是的,谢谢,但你的答案包括对admin_模型和set_form_验证的引用,我没有。common是我的模型名codeIgniter的新手吗。您只需要添加您的模型名称。您可以删除集合表单验证行。这是通过使用CodeIgniter中的表单验证类进行表单验证。