我想在cakephp中清理数据,但我遇到了问题。我有一个带日期字段的表单。当我试图对所有数据进行整理时,日期会丢失它的mysql格式并作为垃圾数据存储在数据库中(1970-01-01)但是如果我删除了清理它就可以正常工作
我尝试了以下
function beforeSave()
{
$this->data = Sanitize::clean($this->data);
return true;
}
我也尝试了这个,但这有效,但它失败了目的
function beforeSave()
{
$date = $this->data['Cabinet']['date_of_inspection'];
$this->data = Sanitize::clean($this->data);
$this->data['Cabinet']['date_of_inspection'] = $date;
return true;
}
出路是什么
答案 0 :(得分:7)
CakePHP已经保护你免受攻击 如果您使用CakePHP的ORM,则使用SQL注入 方法(例如find()和save()) 和正确的数组符号(即。 array('field'=> $ value))而不是 原始SQL。用于对XSS进行消毒 它通常更好地保存原始HTML 在数据库中没有修改和 在当时消毒 输出/ display.output /显示。
答案 1 :(得分:1)
$this->data = Sanitize::clean($this->data, array('encode' => false)
解决了这个问题。我同意Jamal Aziz / Cakephp的说法