2013-11-20 43 views
1

我是codeigniter框架的新手。我正在嘗試構建一個身份驗證系統。codeigniter認證:重定向到主頁

認證工作正常。我的問題是,成功記錄後,當我點擊瀏覽器中的後退按鈕時,它將被重定向到登錄頁面。我想將它重定向到主頁本身。 我要重新加載主頁而不是索引頁(索引頁的登錄頁面,登錄成功進入主頁後)

我該怎麼辦呢提前

+0

有些人不喜歡它,但我使用tank_auth進行身份驗證 - 比修改自己的身份更容易,因爲它會自動執行鹽和散列等操作。還有其他庫。我已將其修改爲包含fb和twitter登錄。 – ssaltman

回答

0

感謝登錄後成功,你可以使用

if ($this->login()) 
{ 
    //redirect them to the index page 
    redirect('/', 'refresh'); 
} 
+0

我想重新加載主頁而不是索引頁(索引頁是登錄頁面,在成功登錄到主頁後) – user2413621

+1

redirect('[你想要的任何頁面]') – ssaltman

2

使用重定向在你的控制器:

function index() 
{ 
    if ($this->session->userdata['logged_in']) // or whatever you use 
    { 
     redirect ('/controller/home'); 
    } 
    else 
    { 
     // show login - post login form to /controller/do_login 
    } 
} 
function do_login() 
{ 
    // check login form and set user session 
    redirect('/controller/home'); // or index - does the same... 
} 
function home() 
{ 
    // show home page 
} 

這個簡單的例子展示瞭如何在輸出登錄屏幕之前檢查用戶是否登錄,然後在控制器中使用重定向。

在一些瀏覽器/網絡服務器組合中,我發現必須設置頁面的標題才能真正從服務器重新加載。否則,結果可能是,即使登錄,按回顯示登錄屏幕;沒有查詢到服務器。您可以設置這htaccess,但可能在CI的語法,在你的頭輸出HTML之前:

$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); 
$this->output->set_header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); 

設置你的頁面始終重新加載回壓。