php - 重定向时,codeigniter Controller 名称在地址中出现两次

标签 php codeigniter redirect

我是 codeigniter 的新手,所以这可能只是一个基本错误,但我仍然无法在任何其他讨论中找到任何答案......使用 codeigniter 3.1.7 here is the login page

如果我使用垃圾或正确的值登录,它应该将我重定向到配置文件页面或同一页面,但相反,它给我这个......

you can see that the Controller name is given twice here

我的控件登录功能代码是

function admin_login_view()
 {
    $this->load->view('admin_login');
 }

 function admin_login()
 {          
    $a = $this->input->post('id');
    $b = $this->input->post('pass');

    $flag = "admin";                    
    $attempt = $this->Model->login($a,$b,$flag);
    if($attempt=="admin")
    {
        $_SESSION["user"]=$a;
        return redirect('Control/view_administration');
    }
    elseif ($attempt=="id")
    {
        $msg= "The Admin-id doesn't exists.";
        $this->session->set_flashdata('admin_id',$msg);
        return redirect('Control/admin_login_view');
    }       
    elseif($attempt=="pass")
    {
        $msg="The password is wrong.";
        $this->session->set_flashdata('admin_pass',$msg);
        return redirect('Control/admin_login_view');
    }                       
    else
    {
        $msg="Login failed.";
        $this->session->set_flashdata('admin_fail',$msg);
        return redirect('Control/admin_login_view');
    }                                           
 }

我已经尝试了所有列出的解决方案

  1. 是的,我的 Controller 和模型文件/类名称相同,并且首字母大写 names of my controller and model

  2. 我的 .htaccess 文件包含用户指南网站要求我保留的内容,尽管我不知道那里写的是什么代码...如果我需要在这里更改某些内容,请务必在您之前解释一下它是什么给我一堆代码...:p .htaccess

  3. 我的基本路径是:

    $config['base_url'] = 'http://localhost/CodeIgniter-3.1.7/';

索引设置为:

 `$config['index_page'] = 'index.php';`

我的路线文件包含:

$route['default_controller'] = 'Control';
$route['404_override'] = '';
 $route['translate_uri_dashes'] = FALSE;`

我到处搜索但没有解决方案以任何方式帮助我......我可能在这里犯了一个菜鸟错误但请帮助

最佳答案

您必须对代码进行多项更改:

1) 因为你在 URL 中有 index.php,所以你也必须在你的 base_url

中添加它
$config['base_url'] = 'http://localhost/CodeIgniter-3.1.7/index.php/';

2) 使用 base_url() 并在其中传递您的 url 以获得正确的 URL 重定向。同时在 redirect

之前删除不必要的 return 关键字
function admin_login_view()
 {
    $this->load->view('admin_login');
 }

 function admin_login()
 {          
    $a = $this->input->post('id');
    $b = $this->input->post('pass');

    $flag = "admin";                    
    $attempt = $this->Model->login($a,$b,$flag);
    if($attempt=="admin")
    {
        $_SESSION["user"]=$a;
        redirect(base_url('Control/view_administration'));
    }
    elseif ($attempt=="id")
    {
        $msg= "The Admin-id doesn't exists.";
        $this->session->set_flashdata('admin_id',$msg);
        redirect(base_url('Control/admin_login_view'));
    }       
    elseif($attempt=="pass")
    {
        $msg="The password is wrong.";
        $this->session->set_flashdata('admin_pass',$msg);
        redirect(base_url('Control/admin_login_view'));
    }                       
    else
    {
        $msg="Login failed.";
        $this->session->set_flashdata('admin_fail',$msg);
        redirect(base_url('Control/admin_login_view'));
    }                                           
 }

关于php - 重定向时,codeigniter Controller 名称在地址中出现两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49914286/

相关文章:

php - 代码点火器/PHP : Image db storage?

javascript - WordPress 作品集 - 两级排序?

php - 使用 CodeIgniter 验证后使用 POST 数据

jquery - 在日期选择器中禁用过去的日期

.htaccess - htaccess 将文件夹重定向到另一个文件夹

javascript - 为什么服务器时间在 javascript 中变得卡住

apache - htaccess 强制执行 "www"但允许子域访问

javascript - 如何为另一个域设置 cookie

使用 Plesk 管理的重定向站点上的 HTML <title> 无法正确显示

php - 专辑编码错误,简单的PHP