1
我有一個消毒問題。在AppController中,我使用了Sanitization實用程序,但它不起作用。當我想打電話給我的更新時,由於'斜槓在我的輸入文本中失敗。我正在使用CakePHP 2.3.6。CakePHP:更新時的數據清理
function beforeFilter(){
if(!empty($this->data)){
App::uses('Sanitize', 'Utility');
$this->request->data = Sanitize::clean($this->data, array('remove_html'=>true,'encode'=>false,'unicode'=>false,'backslash'=>true, 'escape'=>false));
}
}
控制器代碼:
$this->ClientProfile->updateAll(
array('ClientProfile.location'=>"'".$this->User->data['ClientProfile']['location']."'"),
array('ClientProfile.user_id'=>$userdata['id'])
);
任何想法?
與您的代碼非常混淆。當你清理'$ this-> request-> data'數組時(爲什麼你會使用'$ this-> User-> data [etc]'(你甚至會在哪裏得到一個'$ this-> User-> data'? )? 2)不需要在beforefilter中放入'App :: uses',將其聲明在最前面,這些實用程序將被延遲加載。 – Nunser
我強烈建議不要在保存時應用任何衛生設施。規則是:「單獨輸入輸出,轉義輸出」。因此,只需使用'h()'作爲文檔逃避輸出(另請參閱新註釋@ http://book.cakephp.org/2.0/en/core-utility-libraries/sanitize.html#Sanitize::html)和你會好起來的。 – mark
請檢查我的答案。如果有用,請將答案設置爲已接受或投票。否則,請寫下答案中缺少的內容,或者您現在處理的問題是什麼,我會盡力提供幫助。 –