我是 codeigniter 的新手,所以这可能只是一个基本错误,但我仍然无法在任何其他讨论中找到任何答案......使用 codeigniter 3.1.7
如果我使用垃圾或正确的值登录,它应该将我重定向到配置文件页面或同一页面,但相反,它给我这个......
我的控件登录功能代码是
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');
}
}
我已经尝试了所有列出的解决方案
我的 .htaccess 文件包含用户指南网站要求我保留的内容,尽管我不知道那里写的是什么代码...如果我需要在这里更改某些内容,请务必在您之前解释一下它是什么给我一堆代码...:p
我的基本路径是:
$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/