アクセント:そのようなサニタイズ:: HTML私はデータベースに自分のデータを保存するためにこれを使用していたCakePHP2.0
$this->request->data['Post']['body'] = utf8_decode($this->request->data['Post']['body']);
を、私は私のDBにアクセントを持つもののようないくつかの「特別な」文字を救うことができます: áéíúú問題なし。
はその後、私は、HTMLとSQLインジェクションから自分のアプリケーションを保護しようとしましたが、私はこのようなサニタイズを使用:
$this->request->data['Post']['body'] = Sanitize::html($this->request->data['Post']['body']);
だから今、私のテキストは、このようなデータベースに格納されます。
á = á
é = é
í = í ...etc
そして私はそれを望んでいない。また、DB上の私のフィールドは最大の文字を持っており、これは役に立ちません。
私はまた、encode = true、encode = falseまたはencode = 'utf8'でsanitizeでオプションparamを使用しようとしましたが、何も変更されないようです。
どうすればよいですか?おかげさまで
UPDATE 1
は、私も自分のコントローラの機能をにhtmlentities使用しようとしましたが、それは代わりに、áの私のデータベースでこれを挿入します。
Ã
[OK]をクリックしてh($ myText)をHTMLインジェクションから保護するビューを使用する必要がありますか? – Alvaro
私の体はHTML形式(aaa)のURLを作成し、それを破壊するので、私は私のビューでそれを扱うことができます。 コントローラでhtmlentitiesを使用しようとしましたが、これはデータベースに保存されます:Ã – Alvaro
の代わりに、HTMLを保存したくない場合は 'Sanitize :: stripTags()'だけで済むでしょう。 'h()'はあなたを助けません。 'Sanitize :: html()'のように文字をエンティティに変換するだけです。 – jeremyharris