我有清理问题。在AppController中,我使用的是Sanitization实用程序,但它不起作用。当我想调用我的更新时由于输入文本中的'斜杠,它失败了。我正在使用CakePHP 2.3.6。
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'])
);
有什么想法吗?
答案 0 :(得分:0)
尝试使用Sanitize :: escape()而不是Sanitize :: clean()。因为它是用the documentation写的,
Sanitize :: escape()
使字符串SQL安全。
您也可以将数据清理直接移至updateAll()方法调用。通过执行此操作,您将知道updateAll()方法将获取已清理的数据,无论脚本的其他部分中的此数据发生了什么。