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-> User-> data'를 어디에서 얻을 수 있습니까?'$ this-> request-> data' 배열을 살 때 왜'$ this-> User-> data [etc]'를 사용합니까?)? 2) before 필터 안에'App :: uses'를 넣을 필요가 없습니다. 상단에 선언하면 유틸리티가 lazyloaded됩니다. – Nunser
저장시 위생을하지 않는 것이 좋습니다. 규칙은 다음과 같습니다. "입력을 그대로두고 출력을 이스케이프 처리합니다." 따라서 문서화 된대로'h()'를 사용하여 결과물을 벗어나면됩니다 (새로운 참고 사항 @ http://book.cakephp.org/2.0/ko/core-utility-libraries/sanitize.html#Sanitize::html 참고). 너 괜찮을거야. – mark
제 대답을 확인하십시오. 유용 할 경우 답변을 수락 된 것으로 설정하거나 투표에 답하십시오. 그렇지 않으면 답안에 빠진 내용이나 지금 다루고있는 문제는 무엇인지 작성하십시오. 그러면 도와 드리겠습니다. –