2011-03-06 32 views
2

我試圖用CodeIgniter編寫應用程序時碰到了一個小問題,基本上我想在網站最頂部的每個頁面上都有一個登錄表單,但是我發現它很難通過驗證功能找出邏輯。CodeIgniter - 每頁上的登錄表格

從我的理解,驗證規則(set_rules)必須從控制器設置,現在如果我想在每個頁面上登錄表單,這是否意味着我必須在每個控制器上設置規則我寫?這似乎有點奇怪。我可以在視圖內設置驗證規則嗎?

我在此刻什麼是登錄框,這是我從我的觀點稱與

<?php $this->load->view('includes/members_login'); ?> 

命令一個視圖。

對此的任何幫助或指導將是偉大的....即時通訊相當卡住。

乾杯,

回答

-1

如果你真的每個頁面上的登錄表單,您可以創建自己的My_Controller並做表單驗證在構造函數中。或者,如你所說,你也可以在視圖中做到這一點。 CI不強制遵守MVC。如果將代碼放入視圖中會使開發速度更快,維護更容易,則沒有理由不這樣做。

+2

構造函數中的表單驗證? ......嗯?不遵守質量,有目標的標準,因爲沒有人「強制」它是一個壞主意。 – jondavidjohn 2011-03-06 23:17:48

0

我想到的一個想法是爲您的所有頁面創建基本佈局,這將加載可以說5,6個其他文件併爲每個頁面構建視圖。 這些部分中的一部分將在每個頁面上調用,如標題,導航......因此您可以在這些部分使用登錄表單,並且它會在每個請求中加載。

1

不,您只需設置控制器功能中的規則,即收到/處理登錄表單。我通常會保留一個專用的「Auth」控制器來執行相關操作,如登錄/註銷/重設密碼等等。

對於佈局,您可以將其包含在一致的標題中,但只需將表格指向您的controller/function處理登錄。

雖然對登錄表單,我不知道爲什麼你想要「驗證」他們。用戶/通行證匹配或不匹配。

0

我認爲你應該嘗試一些像通過JavaScript的AJAX來驗證任何用戶登錄。基本上,登錄按鈕將通過onclick事件處理,該事件將獲得按鈕的詳細信息並將其傳遞給您的「Auth」(或登錄或可能UserAuth - 由您決定)控制器,它將進行驗證。