2014-09-13 86 views
1

我有一個Codeigniter中的post變量的問題,現在我修復了它,但我不確定這是否正常,換句話說, d真的很想知道爲什麼我只在託管服務器上發出問題,而不是在本地服務器上。

問題: 我想更安全的腳本,所以我代替$ _ POST/$ _ GET與$這個 - >輸入 - >後和$這個 - >輸入 - >得到的,就像這個例子:

if(!empty($this->input->get('endDate'))){ 
    $data['datepicker'] = $this->input->get('thisDate'); 
} 

這是所有工作正常我的本地主機,但我認爲這是錯誤的方式,因爲當我部署到託管服務器,我有我使用的validation engine ajax解析錯誤,我無法登錄系統,得到所有的時間ajax解析錯誤,並以某種方式計算出,每當我檢查如果空$ this-> input-> post('var)或相同與get,是錯誤的。

我從笨檢查輸入級和想通了,認爲這 - $>輸入 - >後是返回true/false,所以我在這樣的格式改變了腳本:

if(!($this->input->get('endDate'))){ 
    $data['datepicker'] = $this->input->get('thisDate'); 
} 

這工作得很好。 我還在想 - 爲什麼代碼在本地主機上工作,但它沒有在服務器上,或者檢查POST/GET變量是否爲空的最好方法是什麼。看來我真的錯過了一些東西。

謝謝。

回答

1

不管POST/GET是否存在,考慮檢查empty($this->post->get('var'))將始終返回false,因此可能僅出於此原因。 - 所以我不知道爲什麼你有在不同的環境下的錯誤,但第一個說法是錯誤的,它酷似寫if(true)

而且,我會檢查的虛假用於輸入的強烈主張,你永遠不知道什麼時候你可能需要一個零作爲輸入,如果你習慣了這種做法,你可能會得到一個意外的錯誤。

+0

將離開神祕莫測的它如何在我的地方出來,謝謝你確認第一部分是錯誤的。爲了檢查是否爲空,我只在真正安全時才使用它。 – 2014-09-13 09:15:02