避免在点击后进入主页退出后的后退按钮
我正在使用Codeigniter最新版本。我正在做一个使用PHP的Facebook连接。 我跟着phpacademy的视频教程,做了一个Facebook登录。 一切工作正常,但我点击登出后,我调用一个函数注销其做到这一点:避免在点击后进入主页退出后的后退按钮
$this->session->unset_userdata('is_logged_in');
session_destroy();
redirect('main/fb_login','refresh');
,并激活登录功能,并返回登录查看。但我的问题是,点击浏览器上的“返回”按钮后,我的主页上显示“注销”按钮,并且根本没有刷新。有没有解决这个问题的方法?
希望你使用模板供您的意见,这将是无痛的,但要确保这是你不想通过后退按钮访问的每个页面的头部。
<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>
只是为了解释发生了什么。该页面正在从浏览器缓存中加载,这意味着浏览器认为您的用户仍然登录。上述各行使浏览器在每次加载时都重新验证页面,并且不会从它自己的缓存中加载它。
你必须检查通过,如果条件作为用户是否登录或不:
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');
}
}
这将防止从去主页。
,并确保已加载Session库:
$autoload['libraries'] = array('database', 'session','form_validation');
,如果每一件事情是在上述表述得很好,那么这个语句后在构造函数中写
session_start();
尝试
parent::__construct();
希望能对您有所帮助!
添加以下在您的主页功能的启动代码行:
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');
}
这是我家的功能,'公共功能的家用() \t { \t如果($这个 - >会话级>用户数据( 'is_logged_in')){ \t \t \t \t $这个 - >负载>视图( '家'); \t} \t别的 \t { \t \t重定向( '主/ fb_login', '刷新'); \t} \t}' 我在哪里添加这个? – Mirage 2013-03-14 08:53:37
更新了答案 – 2013-03-14 09:16:57
页面正在从浏览器缓存中加载,没有多少代码会将其修复到PHP内部,因为页面在技术上并未再次加载,只是显示已存在的内容。 – 2013-03-14 09:17:58
那可能来自浏览器缓存,呵呵? – Mahdi 2013-03-14 08:38:24
@Mahdi我似乎不明白,但是当其他网站工作的很好。我的代码中应该有些问题。 – Mirage 2013-03-14 08:40:04
哦,我的坏,我错了... – Mahdi 2013-03-14 08:43:14