CakePHP:更新时的数据清理

时间:2013-07-07 12:23:17

标签: cakephp cakephp-2.3

我有清理问题。在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'])
);

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试使用Sanitize :: escape()而不是Sanitize :: clean()。因为它是用the documentation写的,

  

Sanitize :: escape()

     

使字符串SQL安全。

您也可以将数据清理直接移至updateAll()方法调用。通过执行此操作,您将知道updateAll()方法将获取已清理的数据,无论脚本的其他部分中的此数据发生了什么。