2010-09-13 81 views
0

我目前正在爲我的網站添加預驗證。因此,只有您的會話符合該條件時纔會顯示需要登錄或其他條件的網頁。我已經掌握了大部分系統的工作,但我有一個主要障礙。當驗證失敗時,我無法知道如何停止運行CodeIgniter運行控制器的其餘部分(從而無論如何顯示頁面)。如何退出codeigniter程序的執行?

這裏是我的配置:

  • 我所有的頁面在內容控制器
  • 我的安全系統是一個名爲security.php
  • 在_head私有函數(這是由每一個叫做模型頁),我加載security.php並將其稱爲主函數:run()
  • $ this-> security-> run()獲取頁面的特定驗證條件,並檢查它們。

    • 如果用戶通過,然後運行()不執行任何操作,並在頁面繼續執行

    • 這就是我需要幫助。如果用戶沒有通過,那麼我需要顯示一個錯誤頁面,並停止控制器調用任何其他視圖。

有誰知道如何做到這一點?

感謝,

Lemiant

回答

1

你可以做兩件事情之一。 A將會重定向到另一個帶有不同URI的頁面。 B將使用if/else語句來選擇您在同一個uri下顯示的視圖。

您需要做的一件事就是您所談論的安全方法如果成功與否,則返回TRUE或FALSE。

例子:

答:

if(!$this->security->run()) 
{ 
    redirect('my/error/page'); 
} 

B:

if($this->security->run()) 
{ 
    // Security Passes, proceed as normal 
} 
else 
{ 
    // Security Fails, show error page 
} 

希望這有助於

+0

謝謝。這似乎是唯一的選擇。 – lemiant 2010-09-14 00:56:12

+0

可以爲錯誤頁面加載視圖而不是重定向(),以便不會使服務器請求數量加倍。 – 2010-09-14 03:25:28

+0

@米切爾麥肯納 - 是的,我知道那是我給了選項B.我給了選項A,以防萬一他想要url像/錯誤/未經授權或類似的東西 – 2010-09-14 18:05:19

0

笨的如何停止執行:die();exit();

但是,我不認爲這真的是你想要做的。你想要做的是加載一個不同的視圖來顯示錯誤頁面,如果驗證失敗。

相關問題