注销后单击“后退”按钮时,请避免进入主页

时间:2013-03-14 08:32:51

标签: php codeigniter codeigniter-2

我正在使用Codeigniter最新版本。我正在使用php进行facebook连接。 我按照phpacademy的视频教程进行了facebook登录。 一切正常,但在我点击退出后,我调用了一个函数注销来执行此操作:

$this->session->unset_userdata('is_logged_in');
session_destroy();
redirect('main/fb_login','refresh');

并激活登录功能并返回登录视图。但我的问题是,点击我的浏览器上的“后退”按钮,我的主页上有“注销”按钮,它根本没有刷新。有没有解决这个问题?

3 个答案:

答案 0 :(得分:2)

希望您使用的是您的视图模板,这将是轻松的,但请确保这是您不希望通过后退按钮访问的每个页面的头部。

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE, NO-STORE, must-revalidate">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT=0>

只是为了解释发生了什么。该页面正在从您的浏览器缓存加载,这意味着浏览器认为您的用户仍然登录。上述行使浏览器在每次加载时重新验证页面,并且不会从它自己的缓存中加载它。

答案 1 :(得分:0)

在主页功能的开头添加以下代码行:

 if(!$this->session->userdata('username')) header('location: main/fb_login');

编辑:尝试以下代码。

    public function home() 
    { 
        if(!$this->session->userdata('username')) header('location: main/fb_login');
        $this->load->view('home');
    }

答案 2 :(得分:-1)

您必须使用if condition as:

来检查用户是否已登录
  function homepage(){     
     if($this->session->userdata('is_logged_in')){
        //code for homepage
        $this->load->view('homepage');//there should be file in you view folder homepage.php
     }else{
        redirect('main/fb_login','refresh');
     }
  }

这将阻止进入主页。

并确保您已加载会话库:

  $autoload['libraries'] = array('database', 'session','form_validation');

如果上述陈述中的每件事都没有问题,那么请尝试写

 session_start(); 

之后的构造函数中的

 parent::__construct();
希望它会有所帮助!