ページ 11

タグ表示について

投稿記事Posted: 2010年9月13日(月) 20:02
by assist
「PHPコード作成」で作成されたecho文をそのまま配置すると、たとえば、タグを入力している場合有効になります。javascriptで操作できてしまいます。
wysiwyg の場合は一部仕方ないと思われますが、テキストボックスの場合は、エスケープ処理したく、仮にhtmlspecialchars関数を挟むとします。
ただ、こちらの場合は、改行部分で<br />がエスケープされ、そのまま表示されるようです。こちらを回避するにはどうする方法が適切でしょうか。
つまり、エスケープ処理した後、改行コード→<br />にして出力する方法となります。

教えていただけますと助かります。
よろしくお願い致します。

Re: タグ表示について

投稿記事Posted: 2010年9月14日(火) 22:33
by cmsfactory4
assistさん、

ご質問、どうもありがとうございます。

下記内容は、ビューア(コンテンツ表示ページ)の事を示しているのでしょうか。
「PHPコード作成」で作成されたecho文をそのまま配置すると、たとえば、タグを入力している場合有効になります。javascriptで操作できてしまいます。

もし宜しければ、作成中のコードをメールにて添付送信をお願い致します。

また、nl2br() はどうでしょうか。

例と致しましては、
コード: 全て選択
$content = 'hello<br><a href="http://google.com/">world';
$content = preg_replace('#<br\s*/?>#i', "\n", $content);
echo nl2br(htmlspecialchars($content));
となります。

Re: タグ表示について

投稿記事Posted: 2010年9月15日(水) 15:21
by cmsfactory4
また、以下をご参考下さい。

テキストボックスの「上級オプション」のフィールド属性にて、自動書式を無効に(改行タグを挿入しない)設定できます。

上記設定を行った上で

▼調整する場合は以下
コード: 全て選択
<?php echo nl2br(htmlspecialchars($Record['content'])) ?>

で、<br/>を表示せず、JavaScriptコードが表示されます。
現時点での最もシンプルな対応方法だと思います。