codeigniter重定向到不同的控制器

Fly*_*Cat 20 controller codeigniter

当用户被授权时,我试图将用户定向到我的主页面.我在login_check控制器中进行用户检查并添加$this->load->view('main');页面可以加载,但主页面中的站点地址仍然显示

HTTP:// myprojectname/login_check

但我想要它表明

http:// myprojectname/main.

我是否必须创建一个新的"主"控制器并加载视图?这对我来说听起来多余.这是我的代码.

我的一部分 login_check.php

private function _user_check()
{
    $this->load->model('user_query');  //load my model
    $result=$this->user_query->query($this->input->post('username'),$this->input->post('password'))             

    if($result)  //the user is in DB
    {
        $data['view']='main'; 
        $this->load->view('include/template', $data);
        //the address bar shows http://myproject/login_check in main page       

    }else{  //the user is not in DB

        $data['view']='login';
        $this->load->view('include/template', $data);
    }

}
Run Code Online (Sandbox Code Playgroud)

Jak*_*kub 60

首先,你在检查用户是否经过身份验证方面做得很差(只是将用户名/传递给模型不是最好的,应该在发送到模型之前处理/检查它).

您可以通过包含帮助程序"URL"轻松地重定向,只需使用:

redirect('/controller/method');
Run Code Online (Sandbox Code Playgroud)

或者在现实世界中的例子:

redirect('/main');
Run Code Online (Sandbox Code Playgroud)

参考链接

  • 当您在发送到模型之前说"进程/检查"时,您的平均form_validation?如果是这样,我已经在我的代码的其他部分做了.我需要做mysql_real_escape_string吗?我认为Codeigniter已经应用它,因为我使用$ this-> input-> post.Thans. (2认同)
  • 不,你没关系,如果你使用**Active Queries**,CI会处理所有这些,但是如果你自己编写SQL查询,你需要使用`$ this-> db-> escape()`来逃避你的说法'用户名'或'密码'以防万一(永远不会伤害到额外的准备) (2认同)
  • @ClainDsilva,可能是因为你没有从你的CONFIG中删除它...它在那里明确定义,删除它没有附加它. (2认同)
  • @ClainDsilva他们留下它的明显原因是因为除非你启用了apache`mod_rewrite`,否则你不能只删除`index.php` (2认同)