2012-06-04 70 views
5

表單驗證庫似乎只適用於POST。我需要使用查詢字符串,並希望使用CI來驗證傳遞的值。有沒有辦法做到這一點?CodeIgniter驗證:可以驗證GET查詢字符串嗎?

+0

您可以讓CodeIgniter認爲它來自POST,即使它不是。 '$ _POST = $ _GET',也許? –

+1

大聲笑,整個班級硬編碼使用'$ _POST'。所以除非你完全覆蓋它,否則。 – Esailija

+0

[如何在使用Get參數時驗證Codeigniter中的表單字段?](http://stackoverflow.com/questions/10524992/how-do-i-validate-a-form-field-in-codeigniter -when-using-get-parameters) –

回答

10

The current Codeigniter 3.0 development branch提供了一個插入自己的變量而不是$ _POST的選項。所以你可以開始使用3.0。

或者,CI2.1中的唯一方法是在運行驗證之前執行$ _POST = $ _ GET。

+0

您能否提供「插入您自己的變量而不是$ _POST」選項?因爲我正在遷移到CI 3.0,並且除了一個之外,我所有的form_validation都運行良好。我收到GET值,我想驗證它們...我不知道該怎麼做,謝謝! – Maxime

+1

我剛剛發現問題是什麼...... !!!在CI 3.0中,他們添加了一些檢查。去系統/ librairies/Form_validation.php。搜索「set_rules」函數並刪除該行:if($ this-> CI-> input-> method()!=='post'&& empty($ this-> validation_data)){ \t \t \t return $ this ; \t \t} – Maxime

+0

我用盡$ _ POST = $ GET但validation->運行()仍然返回FALSE – Zorgarath

1

您可以覆蓋在MY_Form_Validation中運行的Form_validation函數並對其進行修改。