嗨,我刚开始使用ci登录&注销。当我尝试注销它时显示未找到url/loginControlroller/logout问题出在哪里?是因为会议还是我错过了什么?
这是我的控制器
<?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;
}
}
}
?>
更改代码
public function logout(){ //login
$this->session->sess_destroy();
redirect('login');
}
至
public function logout(){
$this->session->sess_destroy();
redirect('loginController/login');
}
- 在索引函数上加载
$this->load->helper('url');
,并在验证函数上将$this->load->helper(array('form', 'url'));
更改为$this->load->helper(array('form'));
-
重定向时使用
base_url()
-
在功能注销时,将第二行
redirect('login');
更改为redirect(base_url('/'.get_class($this)));
我希望它能起作用并帮助你,只需记住阅读这篇文章,注销后登录页面将通过index()函数访问。
如果这不起作用,只需尝试将baseurl()更改为siteurl(),但您应该知道其中的区别。