• ベストアンサー

フォームに書き込まれたHTMLタグを出力したい

 フォームに書き込んだHTMLタグを、出力後、ちゃんとHTMLタグとして生成させる方法を知りたいのですが。(言葉足らずですいません、例えば、掲示板の入力フォームで、テキストに書かれた例えば<font color=red>というHTMLタグを使い、フォーム送信後、文字が赤くなっている、ということを実現させたいだけなのですが)  当方、Perlどころかプログラミングそのものを理解していない者ですが、訳あってソースをいじるお手伝いをすることになって困っております。以前、さらっと一行、コードを書くだけで実現できると思ったのですが。ご教授頂ければ幸いです。

noname#165180
noname#165180
  • Perl
  • 回答数5
  • ありがとう数10

質問者が選んだベストアンサー

  • ベストアンサー
  • cyanberry
  • ベストアンサー率50% (117/230)
回答No.5

先ほどの行を以下のようにif文で囲ってみてください。 if ($FORM{mode} !~ /kanri.*/) { $value=~s/>/&gt;/g; $value=~s/</&lt;/g; }

noname#165180
質問者

お礼

>>cyanberry様  ありがとうございます。  正常に動作してます。  何度も、何度もわたしの舌足らずな説明についてきてくださって、ありがとうございました☆.。.:*・゜☆.。.:*・゜☆

その他の回答 (4)

  • cyanberry
  • ベストアンサー率50% (117/230)
回答No.4

試していないのでどうなるかわかりませんが、214、215行目の以下の行を削除してみてください。 $value=~s/>/&gt;/g; $value=~s/</&lt;/g;

noname#165180
質問者

お礼

>>cyanberry様  早速のご返信、ありがとうございます。  214/215行目を削除するとHTMLタグが使用できるようになりました、ただ、ユーザーが使うメールフォームでもタグが有効になってしまうので、これだと問題がありますよね。。。 ライブラリで以下のファイルを見落としていましたのでアップロードしてみました、 http://cgi.www5b.biglobe.ne.jp/~xpress/test-2/img-box/img20081203184047.txt ざっと見るとこのライブラリでも管理画面の処理を行っているようですが、参考になりますでしょうか?(文字コードがUTF-8ですのでブラウザによっては文字化けするので、エンコードを合わせてください)

  • cyanberry
  • ベストアンサー率50% (117/230)
回答No.3

補足をいただいて、より分からなくなってしまったのですが、catt69が結局やりたいことというのは、以下のどれでしょう。 (1)送信されたメール本文中の文字を赤くしたい (2)メールフォームのtextarea内の文字を赤くしたい (3)(1)(2)以外のHTMLで表示されている部分の文字を赤くしたい ソースを拝見しましたが、「メールフォームを生成・管理するスクリプト」というよりは、ただのメール送信のためにMIMEエンコードするためのユーティリティにしか見えないのですが・・・。

noname#165180
質問者

お礼

>>cyanberry様  たいへん、たいへん失礼致しました。スクリプト本体は以下のURLにアップロードしております。 [スクリプト本体] http://cgi.www5b.biglobe.ne.jp/~xpress/test-2/img-box/img20080806211322.txt フォームメールのテンプレートを内容を作成・修正するために、管理画面があります。イメージは以下の画像ファイルのようになります。 [管理画面イメージ(JPEG画像)] http://cgi.www5b.biglobe.ne.jp/~xpress/test-2/img-box/img20081203174141.jpg  具体的に言いますと、上記を参照すると[説明文]というフォーム項目があります、そこの部分でHTMLタグを使いたい、ということになります。現状は、タグを入力しても”<font color=red>”というように、テキストとして処理されてしまいます。  以上、何卒宜しくお願い致します。 

  • se-nabe
  • ベストアンサー率34% (31/91)
回答No.2

たぶん今出来ていないのは、 「セキュリティーの観点であえてそうしている」 からです。 HTMLのフォームにjavascriptなどを打ち込んで、 セッションジャック(クロスサイトスクリプティング) なんかされたりしますので、むしろ出来なくて正解です。 私はPHPしかできないので、それの回答になりますが、 form から送られた値を、取得したときに print htmlspecialchaes($_POST['hoge']); この用に、表示している場所にタグを変換している関数があると思います。コレを取り除けば、<p style="color:red;">ほげ</p> コレで色が変わるでしょう。しかし、個人情報を取り扱っているサイトなら コレはするべきではありません。

noname#165180
質問者

お礼

補足とお礼の機能の違いが分からず失礼しました、重複になりますが同内容をこちらに。。。。 説明不足で混乱させてすいません、あくまでスクリプトの管理画面のフォームでHTMLタグを利用したいので、セキュリティの心配は必要ないのです。  スクリプトは、メールフォームを生成・管理するスクリプトです。 [スクリプト本体のソース] ​http://cgi.www5b.biglobe.ne.jp/~xpress/test-2/img-box/img2008080621...​  管理メニューで、メールフォームの内容を生成するときに、フォームの中でHTMLタグを使って装飾したいのですが(ややこしい?)

noname#165180
質問者

補足

説明不足で混乱させてすいません、あくまでスクリプトの管理画面のフォームでHTMLタグを利用したいので、セキュリティの心配は必要ないのです。  スクリプトは、メールフォームを生成・管理するスクリプトです。 [スクリプト本体のソース] http://cgi.www5b.biglobe.ne.jp/~xpress/test-2/img-box/img20080806211322.txt  管理メニューで、メールフォームの内容を生成するときに、フォームの中でHTMLタグを使って装飾したいのですが(ややこしい?)

  • cyanberry
  • ベストアンサー率50% (117/230)
回答No.1

情報が少ないのであくまで予想ですが、Perlで作られたBBSのようなシステムの話でしょうか? フォーム送信後の文字が赤くならないというのは、タグがそのまま表示されてしまうということでしょうか? つまり、「<font color=red>」が「&lt;font color=red&gt;」に変換されてしまうということでしょうか?(HTMLソースを見てみてください) 普通にそのまま入力されたデータを表示するようにしているだけであれば、タグとして成立するはずですが、そうならないということは、そういう変換をプログラムのどこかでやっているということです。 周りのプログラムがわかる人に聞いてみればよいのでは?と思うのですが、それができないからここで聞いてるんですよね。 根本的に、プログラミングを理解していない人がソースをいじる手伝いをしちゃいけないと思います。まずは、HTMLの勉強から始めてみてはどうでしょうか。

noname#165180
質問者

お礼

>>cyanberry様  あちゃ、補足とお礼のところ間違えて投稿してしまいました、重複になりますが同内容をこちらに。。。。 情報不足ですいません、スクリプトは、メールフォームを生成・管理するスクリプトです。  一応、HTMLは理解しております^^。このプログラムを利用するのはボランティア団体なので、他に分かる人がおらず、仕方なくわたしがやっております。 [スクリプト本体のソース](一部、UTF-8に対応させるためオリジナルを編集しています) http://cgi.www5b.biglobe.ne.jp/~xpress/test-2/img-box/img20080909005600.txt 管理メニューで、メールフォームの内容を生成するときに、(ややこしいですが)フォームの中でHTMLタグを使って装飾したいのですが。

noname#165180
質問者

補足

 情報不足ですいません、スクリプトは、メールフォームを生成・管理するスクリプトです。  一応、HTMLは理解しております^^。このプログラムを利用するのはボランティア団体なので、他に分かる人がおらず、仕方なくわたしがやっております。 [スクリプト本体のソース](一部、UTF-8に対応させるためオリジナルを編集しています) http://cgi.www5b.biglobe.ne.jp/~xpress/test-2/img-box/img20080909005600.txt 管理メニューで、メールフォームの内容を生成するときに、(ややこしいですが)フォームの中でHTMLタグを使って装飾したいのですが。

関連するQ&A

  • HTMLタグの入れ方

    こんばんは。HTMLタグの入れ方?について質問があります。例えば、文字のサイズや色のサイズを変更するときには<font size="1">や<font color="red">などを指定することで出来ると思います。このタグなんですが、<font size=1>や<font color=red>のようにダブルクォーテーションを使わなくても大丈夫なのでしょうか?当方、携帯サイトを運営しているので、少しでもタグを減らしたいと考えてこの質問をしました。よろしくお願いします。

  • HTMLのタグ属性で指定された特定文字列を置換する

    HTMLで、開始 < と終了 > に囲まれた特定の文字列を別の文字に書き替えたいのですが、思う通りに動かなくて困っており、質問させていただきます。 例えば以下の2行のHTMLがあったとします。  <font color="red">赤は英語でredです。</font>  <span style="color:red;">赤は英語でredです。</span> このHTMLで、タグの属性として使われている「color="red"」と「style="color:red;"」の部分だけ「red」を「black」に変更したいのです。 (文字列として使われている「英語でredです」の部分はそのまま) 秀丸やさくらエディタで正規表現を使って検索すると、 <.+?red.+?> で検索できましたがJavaでは検索ができません・・・。 コード: String strHtml = "<html><body><font color=\"red\">赤は英語でredです。</font><span style=\"color:red;\">赤は英語でredです。</span></body></html>"; Pattern pattern = Pattern.compile( "<.+?red.+?>", Pattern.DOTALL ); // 正規表現で検索 Matcher matcher = pattern.matcher( strHtml ); while( matcher.find() ){ System.out.println( "res=" + matcher.group( 0 ) ); } 出力結果: res=<html><body><font color="red"> res=</font><span style="color:red;"> res=<html><body><font color="red">赤は英語でredです。</font><span style="color:red;">赤は英語でredです。</span></body></html> エディタと同じように<font color="red">と<span style="color:red;">が取りたいのですが・・・、考え方もしくは正規表現が間違っているのでしょうか? お分かりの方がいましたら御助力いただけたら助かります。 よろしくお願いします。

    • ベストアンサー
    • Java
  • HTMLタグに詳しい人に質問なんですが

    テーブルタグ内の文字を装飾するには<font color="">タグや<b>タグなどで <tr><td><font color="red"><b>文字</b></font></td></tr> のようにする以外にできる方法はないでしょうか?

  • textareaでHTMLタグを使いたい

    textarea内に入力したHTMLタグ(<font color=#000000>等)を 使いたいのです。 =を使ってるので$nameと$valueで分ける際に どうしても=以降が無くなってしまいます。 タグの=を残すにはどうしたらいいでしょうか。 すみませんが御教授お願いします。

    • ベストアンサー
    • Perl
  • 外部テキストに書いたHTMLタグがそのまま表示されてしまう。

    現在、Flash作成フリーソフト「Suzuka」で、Flashを作成中なのですが、 どうしても分からない箇所がありますので、アドバイスをよろしくお願いします。 以下のことでつまずいてます。 ダイナミックテキストに外部テキストを読み込ませることは出来るのですが、 外部テキスト内に書いているHTMLタグが、そのまま表示されてしまい、困っています。 外部テキストの内容はこんな感じです。 total=4& &txt0=<font color="#ff0000">文字の色を赤に変えたいです</font>& &txt1=あいうえお& &txt2=かきくけこ& &txt3=さしすせそ テキストのプロパティで「HTML」にチェックをいれてプレビューまたは、パブリッシュ後にブラウザで確認しても、 どうしてもタグが解釈されずに、そのまま<font color="#ff0000">文字の色を赤に変えたいです</font>で表示されてしまいます。 Suzukaのヘルプには、<font>タグがサポートされていると書いてあるのですが…。 Flashに詳しい方、アドバイスをよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Perlの部分的なHTML出力

    調べてみたんですがちょっと探し当てられなかったので教えてください。 HTMLファイルの中である一部分だけPerlによる出力でページを表示させたいのですが、それは可能でしょうか? 自分なりに調べて試してみたのは、HTMLで<IMG>タグをつかってPerlを呼び出し、Perlにprint文で出力を書けばいいのかな? とやってみましたが、できません。 全てPerlで出力するしか方法はないのでしょうか? ご解答お願いします

  • WYSIWYG対応のフォームを作成したい

    掲示板(BBS)の制作を考えております。 その際、既存のブログシステムのようにテキストフォーム上でカラーやフォントサイズを変更出来るようにしたいのですが、 簡単に導入出来る様なモジュールはありますでしょうか? 「タグの非表示」と「HTMLタグを表示」を切り替えられるものであれば尚良いのですが…。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • タグをまとめれる?

    HTMLタグについてなのですが、 『ココ』(文字は赤で太字)をクリックすると他のページにリンクするように書き込むと <a href="***"><font color="RED"><b>ココ</a></font></b> このようになりました。 </a></font></b>と、続くのですが、これで良いものなのでしょうか? すっきりまとめる事は可能なのでしょうか?

    • ベストアンサー
    • HTML
  • 同じようなタグと文字のパターンを簡略化する方法

    <table> <tr><td><font color="blue">あ</font><font color="red">い</font><font color="green">う</font></tr> <tr><td><font color="blue">あ</font><font color="red">い</font><font color="green">う</font></tr> <tr><td><font color="blue">い</font><font color="red">う</font><font color="green">あ</font></tr> <tr><td><font color="blue">あ</font><font color="red">い</font><font color="green">う</font></tr> </table> このような感じに同じパターンのHTMLタグと文字の羅列があるのですが、 タグが長くなりすぎて後から調整し直そうとするととても大変です。 <font color="blue">あ</font><font color="red">い</font><font color="green">う</font> 上記の部分を何処か別の場所から呼び出したりして簡略化することは出来ないでしょうか?

  • HTMLのタグの属性に、普通使わないものを使うことはできますか?

    HTMLのタグの属性に、普通使わないものを使うことはできますか? HTMLにはあるタグでは使う属性も他のタグでは使わないタグがたくさんあります 例えば、fontタグでは属性としてcolorなどを使えますが、divに使っても何もおきません これを利用してHTMLファイルをjavascriptでパースする時の条件判別に利用しようと考えたのですが、こういった使い方はしてもよいものなのでしょうか? 質問が分かりにくいかもしれませんが、分かる方よろしくおねがいします。

    • ベストアンサー
    • HTML

専門家に質問してみよう