У меня проблема с дезинфекцией. В 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-> User-> data [etc]', когда вы дезинфицировали массив '$ this-> request-> data' (где вы даже получаете' $ this-> User-> data'?)? 2) Нет необходимости вставлять 'App :: uses' внутри beforefilter, объявлять его сверху, утилиты lazyloaded. – Nunser
Я настоятельно рекомендую не применять санитарию при сохранении. Правило: «оставить вход в одиночку, выход выхода». Поэтому просто удаляйте свой вывод с помощью 'h()' как задокументированный (также см. Новую заметку @ http://book.cakephp.org/2.0/en/core-utility-libraries/sanitize.html#Sanitize::html) и с тобой все будет в порядке. – mark
Пожалуйста, проверьте мой ответ. Если это полезно, установите ответ как принятый или проголосуйте за него. В противном случае просто напишите, что отсутствует в ответе, или с какими проблемами вы сейчас сталкиваетесь, и я постараюсь помочь. –