当用户按下注销按钮时,如何禁用?这是我的代码
MongoDB
但每次我点击回来,它都会给我一个“确认表单重新提交”页面,然后当我重新加载它时,将显示注销功能之前的页面
答案 0 :(得分:1)
我会将以下内容添加到控制器中,我不希望用户在未登录的情况下访问:
在类名称扩展CI_Controller {
之后public function __construct(){
parent::__construct();
if ( ! $this->session->userdata('logged_in'))
{
$allowed = array(
// All allowed function names for not logged in users ( i keep it empty usually)
);
if ( ! in_array($this->router->fetch_method(), $allowed))
{
redirect(site_url('login/index'));
}
}
}
所以基本上这样做是在控制器中访问任何功能之前,它会检查用户是否已登录,如果他/她不是,他/她将被重定向到登录页面。 (用户数据'logged_in'部分是我在登录后设置为userdata的部分。)
答案 1 :(得分:0)
重定向已使用base_url(),因此您可以使其像
redirect('yourdefaultcontroller', 'refresh');
并检查会话库,它让您的生活更轻松
答案 2 :(得分:0)
添加此项以防止缓存上一页:
$this->output->set_header('Last-Modified:'.gmdate('D, d M Y H:i:s').'GMT');
$this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate');
$this->output->set_header('Cache-Control: post-check=0, pre-check=0',false);
$this->output->set_header('Pragma: no-cache');
答案 3 :(得分:0)
在控制器中
__construct
方法添加这些
function __construct()
{
parent::__construct();
ob_start(); # add this
$this->load->library('Session'); # add this
}
在您的方法中
function logout(){
$this->load->driver('cache'); # add
$this->session->sess_destroy(); # Change
$this->cache->clean(); # add
redirect('home'); # Your default controller name
ob_clean(); # add
}
在
redirect
中,您必须设置默认控制器名称。