decoy
youtu****@gmail*****
2008年 9月 20日 (土) 00:28:56 JST
decoyです。 以下の2点を書き換えてみました。 1. $_POSTの部分 Scaffoldingにセキュリティーを求めるのは間違いということはわかりますが POSTしたデータの全てのキーをフィールド名として値を挿入、更新となると 例えばDoCoMoサイトなんかを構築していてiモードID取得の為に フォーム部分に常に <input type="hidden" name="guid" value="ON" /> が表示されるようにしていると Scaffoldingを利用してDBへデータを挿入、更新する際にguidなんてフィールド名はねぇよ、と怒られることがあります。 そこで$_POSTを array_intersect_key($_POST, array_flip($this->CI->db->list_fields($this->current_table))) にしてみました。 こうすることでフォームに不要なものがくっついていようがフィールドにないものは除去されるのでいいかなぁと思うんですが如何でしょうか。 2. $this->CI->uri->segment(4)の部分 主キーは必ずセグメントの4番目、ということで$this->CI->uri->segment(4)としているように思いますが 主キーが/を含む文字列だった場合、エラーになったり、正常に動作しなかったりしたので 自作関数を作成してセグメントの4番目ではなく、セグメントの4番目以降を主キーとして認識するよう書き換えました。 上記のようにすることでエラーはなくなり、主キーに/を含んでいても正常に挿入、更新されるようになりましたが こうすることによる何か不都合ってありますでしょうか。 上記に対して何かあればご指摘頂ければと思います。 以上、宜しくお願い致します。 // decoy