0

FormHelper は SQL インジェクションから自動的に保護するだけでなく、HtmlHelper のようにデフォルトで特殊文字をエスケープするという印象を受けました。ただし、次の場合:

<?php echo $this->Form->input('field', array('escape' => true)); ?>

そして、たとえばフィールドに & と ' を入力し、保存を押します。これらの特殊文字は、エスケープせずにデータベースに保存されます。これは、エスケープ オプションを true に設定しなくても発生します。だから私の質問は続きます。

FormHelper のオプションを使用して保存する前に、CakePHP がフォーム フィールドをエスケープできないように設計されているというのは本当ですか? それとも私は何か間違ったことをしていますか?

4

1 に答える 1

1

htmlspecialchars() のショートカットである h() 関数を使用して、コア ヘルパーを通過しないすべての種類の出力をエスケープする必要があります。Html::link() のようなコア ヘルパーは、そのエスケープを自動的に行います。

PHP で出力をエスケープする方法も参照してください。

于 2012-10-31T23:48:47.960 に答える