2013-02-01 43 views
0

我想申請addslashes()通過如何使用Codeigniter自動添加?

獲得的所有帖子元素$ this-> input-> post('my_var');

我該怎麼做?有沒有像WordPress的過濾器爲這個功能?

+0

問題是爲什麼? – itachi

+0

,因爲我已經試圖找到解決方案,因爲斜線不會自動添加。許多人建議使用Active Records方法。但我已經執行了選擇查詢使用this-> db-> query()在整個項目遍佈各地。而且將需要幾周時間才能將所有內容更改爲活動記錄。所以我可以通過這個解決方案。 – aslamdoctor

+0

Addslash無法防止SQL注入。它比mysql_real_escape_string更糟糕。你需要使用佔位符。 – itachi

回答

0

我想你想要一些全球性的東西。我的想法是編輯codeigniter中的全局post函數,以在所有內容上使用addslashes。你可以發現功能:

/yourfolder/system/core/Input.php

您可以通過設置它的全球逃脫它。

function post($index = NULL, $xss_clean = FALSE) 
    { 
     // Check if a field has been provided 
     if ($index === NULL AND ! empty($_POST)) 
     { 
      $post = array(); 

      // Loop through the full _POST array and return it 
      foreach (array_keys($_POST) as $key) 
      { 
       $post[$key] = addslashes($this->_fetch_from_array($_POST, $key, $xss_clean)); 
      } 
      return $post; 
     } 

     return addslashes($this->_fetch_from_array($_POST, $index, $xss_clean)); 
    } 

儘管我並沒有真正發現它是修改全局函數的好方法,但這應該可以解決您的問題。

編輯:我看到輸入 - >後已經這樣做,你不需要額外添加該功能。

相關問題