■--メールフォーム送信内容のタグ無効化について >>>林檎人 -[URL] -- 2004/01/23-00:45..No.[9800] |
|||
・問題が発生しているURL:http://web1.nazca.co.jp/hp/macde/index.html ・お使いのOS:MacOS ・お使いのOSのバージョン:9.2.2 ・お使いのブラウザ:Internet Explorer・Mozilla ・お使いのブラウザのバージョン:5.1.7・1.3.1 ・CPUの種類:G3/600MHz ・メモリの種類と容量:内蔵メモリ768MB ビデオメモリ16MB バックサイドL2キャッシュ256kb ・HDDの容量:40GB ・HDDの空き容量:31GB ・該当の弊社サービス:ナスカ無料レンタルHPスペース ・お使いのプロバイダ:JCOM@NetHome ・お使いの回線速度:30Mbps ナスカ無料レンタルHPスペースでサイトを作成しています。 レンタルデコードサービスを利用して、各ページにメールフォームを設置しています。 そのデコードサービスには送信前に入力内容の確認画面を表示する便利な機能があるのですが htmlタグを書き込んだ際にタグが有効になってしまい、そのことで不具合が発生します。 例えば<iframe>という文字列を送信しようとするとMozilla1.3.1では送信ボタンが消滅して 送信不能になってしまうのです。 その問題を回避するために、<を&lt;(※実際は半角で記述)に、>を&gt;(※実際は半角で記述)といった具合に文字実体参照に置き換える という方法を思いつきました。&lt;(※実際は半角で記述)iframe&gt;(※実際は半角で記述)という文字列を送信するとタグ表記が反映されず なおかつ<iframe>という文字列が送信されることを確認しました。 この置換を文字列が送信された際に自動的に行えないかと考えました。 JavaScript 置換といったキーワードから検索された 最適JavaScript:置換処理:http://www.jupiter.sannet.ne.jp/aikikou/tikan.html や、 とほほのJavaScriptリファレンス:http://tohoho.wakusei.ne.jp/js/ を参考に それらしいJavaScriptの記述を行いました。が、動作しません。 行った記述は以下の通りです。 外部JavaScript(http://web1.nazca.co.jp/hp/macde/fmf.js)に function htmltagboid(){ jittaisansho = form.message.value.replace(/'<'/g,'&lt;(※実際は半角で記述)').replace(/'>'/g,'&gt;(※実際は半角で記述)').replace(/'&'/g,'&amp;(※実際は半角で記述)').replace(/' '/g,'&nbsp;(※実際は半角で記述)').replace(/'"'/g,'&quot;(※実際は半角で記述)'); document.form.message.value = jittaisansho; } 対象となるテキストエリアの記述に <textarea name="message" rows="2" cols="40">メールフォームです。管理人になにか伝えたいことがあればご利用ください。匿名で送れます。</textarea> メールフォームの送信ボタンに <input type="submit" id="mailformsubmit" value="送る" onclick="htmltagboid()"> と記述して、送信ボタンを押したとき同時に文字列内を置換する仕組みにした、つもりです。 どこが間違っているのかアドバイスをお願いします。より適切なページへのリンクでも助かります。 |
|||
>>> Mimiン -- 2004/01/23-23:07..No.[9808] |
|||
これは、レンタルデコードサービス側に問い合わせをした方が良いと思います。 少なくとも、スクリプト云々でこちら側で解決出来る問題では無さそうです。 |
|||
>>> 林檎人 -- 2004/01/27-20:56..No.[9847] |
|||
Mimiンさん、ご返答ありがとうございます。 デコードサービス側への問い合わせを含めて問題解決に取り組もうと思います。 一旦こちらでの質問を取り下げます。 何らかの解決方法がわかったら続けて報告します。 ---------- 04-02-01追記 下記のサイトにて問題を解決しました。 http://okweb.jp/kotaeru.php3?q=766014 記述は以下の通りです。 外部JavaScriptの記述は function htmltagboid(){ var jittaisansho = document.mailform.elements[5].value.replace(/</g,'<').replace(/>/g,'>').replace(/\r\n/g,'<br><!---->').replace(/\r|\n/g,'<br><!---->'); document.mailform.message.value = jittaisansho; } 対象となるフォームの記述は <form method="post" action="http://form3.future-s.com/cgi/form3.cgi" name="mailform" id="mailform" onsubmit="return htmltagboid()"> 対象となるテキストエリアの記述は <textarea rows="2" cols="40">メールフォームです。管理人になにか伝えたいことがあればご利用ください。匿名で送れます。</textarea> テキストエリアの後に新たに <input type="hidden" name="message"> これでタグの記述を送信されても働きを無効にすることができました。 |
|||