Kawahara Dental Clinic

データ挿入時にダブルクウォートがおかしくなっている?

  • データベース挿入前にシングルクウォートを置換すればよい
    • いちいち挿入ごとに置換するのは手間がかかる
    • モデルごとにbeforeSaveを定義するのも手間がかかる
    • そこでmodelの親クラスのbeforeSaveを書き換える
  • /cake/app_model.phpを以下のように拡張

class AppModel extends Model{
   function beforeSave(){
       $this->data = $this->stripDoubleQoute($this->data);

   }

   function stripDoubleQoute($data){

       foreach($data as $key => $content){

           if( is_array($content) )
               $data[$key] = $this->stripDoubleQoute($content);
           else
               $data[$key] = str_replace("before","after",$data[$key]);
       }

       return $data;

   }

}

なおらないのでbeforeSaveの実行されるタイミングを見てみる

  • たぶんサニタイズ前に行われている

DB挿入前にすでにデータがおかしくなっている?

  • incident_controller.phpのsaveの前にデータを出力するとデータ挿入前にすでにおかしくなっているみたい?

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-10-05 (日) 19:33:29 (5682d)