我正在使用Codeigniter最新版本。我正在使用php进行facebook连接。 我按照phpacademy的视频教程进行了facebook登录。 一切正常,但在我点击退出后,我调用了一个函数注销来执行此操作:
$this->session->unset_userdata('is_logged_in');
session_destroy();
redirect('main/fb_login','refresh');
并激活登录功能并返回登录视图。但我的问题是,点击我的浏览器上的“后退”按钮,我的主页上有“注销”按钮,它根本没有刷新。有没有解决这个问题?
答案 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();
希望它会有所帮助!