2013-03-14 76 views
-1

我正在使用Codeigniter最新版本。我正在做一個使用PHP的Facebook連接。 我跟着phpacademy的視頻教程,做了一個Facebook登錄。 一切工作正常,但我點擊登出後,我調用一個函數註銷其做到這一點:避免在點擊後進入主頁退出後的後退按鈕

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

,並激活登錄功能,並返回登錄查看。但我的問題是,點擊瀏覽器上的「返回」按鈕後,我的主頁上顯示「註銷」按鈕,並且根本沒有刷新。有沒有解決這個問題的方法?

+0

那可能來自瀏覽器緩存,呵呵? – Mahdi 2013-03-14 08:38:24

+0

@Mahdi我似乎不明白,但是當其他網站工作的很好。我的代碼中應該有些問題。 – Mirage 2013-03-14 08:40:04

+0

哦,我的壞,我錯了... – Mahdi 2013-03-14 08:43:14

回答

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

我加了這個,還是一樣的。任何其他建議? – Mirage 2013-03-14 09:42:13

+1

我添加了這個'header(「Cache-Control:no-store,no-cache,must-revalidate」);'和我的網頁頂部的代碼一起。非常感謝您的幫助。 – Mirage 2013-03-14 09:53:33

+0

很高興工作! – 2013-03-14 09:56:01

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(); 

希望能對您有所幫助!

+0

是的,我加了這個。但仍然當我做'http:// localhost:81/tag/main/logout' ,然後點擊返回按鈕,我得到我的登錄頁面。同樣的問題。 – Mirage 2013-03-14 08:44:00

+0

它在我的autoload.php中啓用 – Mirage 2013-03-14 08:45:49

+2

由於頁面正在從瀏覽器緩存中調用並且未加載,因此無法工作。 – 2013-03-14 09:15:28

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'); 
    } 
+0

這是我家的功能,'公共功能的家用() \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

+0

更新了答案 – 2013-03-14 09:16:57

+0

頁面正在從瀏覽器緩存中加載,沒有多少代碼會將其修復到PHP內部,因爲頁面在技術上並未再次加載,只是顯示已存在的內容。 – 2013-03-14 09:17:58

相關問題