我目前正在使用codeigniter創建的現有網站。 每當用戶輸入一個頁面,他都會被重定向到frontpage.php,檢查用戶是否已登錄,如果沒有,他會被重定向到登錄頁面。 現在,我有一個頁面,這個frontpage.php不應該被執行,並且任何用戶都可以輸入它。忽略codeigniter中的frontpage.php
任何幫助,非常感謝。
我目前正在使用codeigniter創建的現有網站。 每當用戶輸入一個頁面,他都會被重定向到frontpage.php,檢查用戶是否已登錄,如果沒有,他會被重定向到登錄頁面。 現在,我有一個頁面,這個frontpage.php不應該被執行,並且任何用戶都可以輸入它。忽略codeigniter中的frontpage.php
任何幫助,非常感謝。
重新路由一切到您的網頁控制器,並以此作爲你的默認
$route['default_controller'] = 'pages';
$route['(.*)'] = 'pages/index/$1';
-
class Pages extends CI_Controller
{
protected $currentUser = null;
public function __construct()
{
parent::__construct();
$this->currentUser = Auth::getCurrentUserObject(); //check user is logged in
}
public function index($uri='home')
{
$sizeOfSegments = sizeof($this->uri->rsegments);
if ($sizeOfSegments >= 3)
{
$uri = $this->uri->rsegments[3];
}
else
{
$uri = 'home';
}
$pageFound = Page::find($uri); //query the database
if (!$pageFound)
{
return show_404($uri); // find out where there were headed
}
unset($sizeOfSegments, $uri);
if(is_null($this->currentUser) OR !$this->currentUserHasPermissionToViewThisPage OR !$pageIsNotPublic)
{
return redirect('login');
}
$this->load->view();
}
}
做出新的控制器
class Newpage extends CI_Controller {
public function index(){
$this->load->view('newpage');
}
}
現在轉到
yourhost.com/index.php/newpage
我想你需要刪除控制器,它的工作原理就是這樣!
......認真嗎? 0 – Sander 2013-04-22 12:41:54
是的,我非常認真,在我的學校他們教我代碼點火器的工作原理!我有好點 – 2013-04-22 12:42:37
也有類似的問題,並通過使用一些在線教程解決它這樣
1:在'frontpage.php'之前創建一個單獨的登錄頁面(例如login.php)。
2:將登錄名,密碼和會話變量傳遞到首頁。
3:重新編碼您'frontpage.php'以檢查'login.php'傳遞的會話變量。
如果你通過正常的方式進入頁面,它將使用正常的登錄。 如果你通過新的'login.php'頁面進入頁面,它將被重新編碼的'frontpage.php'拾取並繞過正常的方式。
希望這有助於
Grtz
什麼是確切的問題?更清楚,你有沒有嘗試過嗎? – Daanvn 2013-04-22 12:15:42
我試圖修改沒有檢查frontpage.php shud被加載的新頁面,但任何代碼僅在去到frontpage.php後執行...有沒有什麼辦法檢查用戶試圖去的首頁? – Sander 2013-04-22 12:21:24