iPhone/iPadのホーム画面コンテスト開催中!賞品は iTunes カード!

CakePHP & PHP 2007/07/10 10:09

CakePHP 1.1.15.5144以降はHtmlHelper#tagValueに注意

確認画面等で入力値を表示するのにHtmlHelper#tagValueを使っています。

これは内部でHTMLタグをエスケープしてくれるので重宝していたのですが、1.1.15.5144から、このメソッドにエスケープするか否かを表すフラグが追加されました。

[cake/libs/view/helpers/html.php]

PHP:
  1. <?php
  2.  
  3.    function tagValue($fieldName, $escape = false) {
  4.  
  5. ?>

困った事にデフォルトではfalseになっているので、従来の[$html->tagValue('Foo/bar');]のような使い方をしているとHTMLタグがそのまま出力されてしまいます。1.1.15.5144以降(昨日リリースされた1.1.16.5421も含む)でHTMLタグをエスケープするには以下のように第2引数にtrueを指定しなければなりません。

PHP:
  1. // tagValueでHTMLタグをエスケープ
  2. <?php echo $html->tagValue('Foo/bar', true);
  3. // もしくはh()で囲む
  4. <?php echo h($html->tagValue('Foo/bar')) ?>;

1.1.14.4797以前から1.1.15.5144以降へバージョンアップする際はくれぐれもご用心を。

ちなみに1.2.0.5147ではtagValueがdeprecatedになっており、代わりにvalueメソッドを使うようになるようです。



■Related Posts

One Response to “CakePHP 1.1.15.5144以降はHtmlHelper#tagValueに注意”

  1. on 01 4月 2008 at 10:52 1.CakePHP HtmlHelper::tagValue のHTMLエスケープ処理 | Sun Limited Mt. said …

    [...] ただ、 CakePHP 1.1.15.5144以降はHtmlHelper#tagValueに注意 | Shin x blog に書かれているように、CakePHP のバージョン1.1.15.5144 からエスケープするかのフラグが追加されたようです。 [...]

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply