みなさんお疲れ様です。
タイトル通りの質問で、sanitizeする前は適切にデータベースに送信できているのに、
sanitizeするとnon-utf8 stringエラーが出てしまいます。
DetailsController.php
php
1 if($this->request->is('post')){ 2 3 if(isset($this->request->data['report_status'])){ 4 $reportId = $this->request->data['report_id']; 5 $report = $this->Report->find('all', array('conditions' => array("id" => $reportId)));//そのreportsの中にあるさっきのidがあるドキュメントの情報を取得 6 $report_obj = $report[0]["Report"]; 7 $report_obj["status"] = $this->request->data['report_status']; 8 $report_obj["modified"] = array('modified' => date('Y-m-d H:i:s')); 9 $data = $report_obj; 10 11 $data = Sanitize::clean($data, array('remove_html' => true)); //ここ!!!! 12 13 if($this->Report->save($data)){ 14 //save成功 15 } else { 16 //save失敗エラー画面 17 $this->Session->setFlash('処理状態の更新に失敗しました'); 18 } 19 20 $this->redirect($_SERVER['HTTP_REFERER']); 21 22 }
Details/index.ctp
php
1 <div id="status"> 2 <?php 3 echo "●処理状態 : "; 4 if ($reportstatus == 0){ 5 echo "未処理"; 6 } else if($reportstatus == 1){ 7 echo "処理済み"; 8 } else { 9 echo "不明な処理"; 10 } 11 ?> 12 </div> 13 14 <form action="/details/update" accept-charset="utf-8" method="post"> 15 <input type="radio" name="report_status" value="0"><?php echo "未処理" ?> 16 <input type="radio" name="report_status" value="1"><?php echo "処理済み" ?> 17 <input type="hidden" name="report_id" value=<?php echo $reportId ?>> 18 <input id="reportstatus_submit" type="submit" value="変更"> 19 </form>
データベースに送信するのはこのvalue="1"などです。
この場合どう対処したらよいのでしょうか。
よろしければ具体的な解決のためのコードも書いていただけると非常に助かります。
このcakephpの例外処理・バリデーション・sanitizeなどで合計で2週間くらい詰まってます。
なんとか宜しくお願いいたしますm(_ _)m
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/24 04:55