我是codeigniter框架的新手。我正在嘗試構建一個身份驗證系統。codeigniter認證:重定向到主頁
認證工作正常。我的問題是,成功記錄後,當我點擊瀏覽器中的後退按鈕時,它將被重定向到登錄頁面。我想將它重定向到主頁本身。 我要重新加載主頁而不是索引頁(索引頁的登錄頁面,登錄成功進入主頁後)
我該怎麼辦呢提前
我是codeigniter框架的新手。我正在嘗試構建一個身份驗證系統。codeigniter認證:重定向到主頁
認證工作正常。我的問題是,成功記錄後,當我點擊瀏覽器中的後退按鈕時,它將被重定向到登錄頁面。我想將它重定向到主頁本身。 我要重新加載主頁而不是索引頁(索引頁的登錄頁面,登錄成功進入主頁後)
我該怎麼辦呢提前
感謝登錄後成功,你可以使用
if ($this->login())
{
//redirect them to the index page
redirect('/', 'refresh');
}
我想重新加載主頁而不是索引頁(索引頁是登錄頁面,在成功登錄到主頁後) – user2413621
redirect('[你想要的任何頁面]') – ssaltman
使用重定向在你的控制器:
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");
設置你的頁面始終重新加載回壓。
有些人不喜歡它,但我使用tank_auth進行身份驗證 - 比修改自己的身份更容易,因爲它會自動執行鹽和散列等操作。還有其他庫。我已將其修改爲包含fb和twitter登錄。 – ssaltman