未找到单击注销URL时的Codeigniter php注销问题
嗨,我是ci的新手,刚刚开始登录和注销。当我尝试注销它时 显示找不到url/loginController/logout 有什么问题?是因为这次会议还是我错过了什么 这是我的控制器未找到单击注销URL时的Codeigniter php注销问题,php,codeigniter,Php,Codeigniter,嗨,我是ci的新手,刚刚开始登录和注销。当我尝试注销它时 显示找不到url/loginController/logout 有什么问题?是因为这次会议还是我错过了什么 这是我的控制器 <?php class loginController extends CI_Controller{ /**controller*/ public function index(){ $this->login(); } public function login(){ $
<?php
class loginController extends CI_Controller{ /**controller*/
public function index(){
$this->login();
}
public function login(){
$this->load->view('login');
}
public function home(){
if ($this->session->userdata('logged')){
$this->load->view('main');
} else {
redirect('loginController/denied');
}
}
public function denied(){
$this->load->view('denied_page');
}
public function login_validation() /**set rules*/
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('username',
'Username', 'required|min_length[3]|max_length[12]');
$this->form_validation->set_rules('password',
'Password', 'required|sha1|callback_password_check');
if ($this->form_validation->run()){ /** form valdation*/
$data = array(
'username' => $this->input ->post('username'),
'logged' => 1
);
$this->session->set_userdata($data);
redirect('main');
} else {
$this->load->view('login');
}
}
public function logout(){ //login
$this->session->sess_destroy();
redirect('login');
}
public function password_check(){
$username = $this->input->post('username');
$password = $this->input->post('password');
$this->load->model('users');
if($this->users->log_in($username, $password)){
return True;
}else{
$this->form_validation->set_message('password_check',
'Incorrect username or password.');
return False;
}
}
}
?>
加载$this->load->helper'url';在索引函数上,更改$this->load->helperarray'form'、'url';到$this->load->helperarray'form';在您的验证函数上。
重定向时使用基本url
在函数注销时,更改第二行重定向“login”;重定向基本url“/”。获取类$this
我希望它的工作,并帮助你,只是记得阅读和注销后的登录页面将通过您的索引功能访问
如果这不起作用,只需尝试将基本url更改为站点url,但您应该知道它们之间的区别。更改代码
public function logout(){ //login
$this->session->sess_destroy();
redirect('login');
}
到
重定向'login'很好,事实上,如果路由允许,应该怎么做!。我不明白为什么是2,尤其是为什么是3。如果没有使用的路径,就无法判断代码的错误可能你是对的,但我不知道如何在幕后重定向以及如何处理参数。那么,为什么不阅读文档和代码,而不是猜测答案呢?谢谢你这么说,在这里,我们可以看到上面的正确答案,但它对我仍然不起作用,当我单击“注销”时,它会将我重定向到/localhost/files/index.phpcontroller/logout,而index.php和controller之间没有/。出现了多项选择错误。您确定某个地方没有冲突的路线吗?你可以发布路线吗?这是我的路线$route['default_controller']=main$路由['404_覆盖']=;
public function logout(){
$this->session->sess_destroy();
redirect('loginController/login');
}