- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テキストの受け渡しの不具合)
テキストの受け渡しで発生するデータ表示の不具合と回避策
このQ&Aのポイント
- HTMLからCGIへのデータ受け渡しにおいて、特定の箇所で改行が正しく表示されない現象が発生しています。
- データ受け渡しに関わるコードを修正し、改行表示の問題を回避する方法をご教示ください。
- データ受け渡しの際に改行コードが正しく扱われない場合、表示されるデータが意図しない形で表示される問題があります。回避策をお教えください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
$FORM{'hoge'}<INPUT TYPE=HIDDEN NAME=hoge VALUE=$FORM{'hoge'}></INPUT> のところですが、 出力したHTMLのソースを見ると、多分以下のようになっていると思います。 改行などの細かい位置は分かりませんが。 ***** あ い う え お<INPUT TYPE=HIDDEN NAME=hoge VALUE=あ い う え お></INPUT> ***** タグ内でこのような改行は認められないので、改行(\r,\n,\r\n)を一時的になにかに置き換えた方がよいかもしれません。 また、 <INPUT TYPE=HIDDEN NAME=hoge VALUE="$FORM{'hoge'}"> のように、ダブルクォーテーションで括ると直る気がします。 (print ""を使ってる場合は、エスケープして\"\"で括ってください) 基本的に文字列はダブルクォーテーションで括ることになっています。 あと、HTMLについてですが、INPUTに閉じタグは必要ありませんよ。 もう少し詳しい状況説明があると、よい回答が得られると思います。 (ソースをもう少し載せるなど)
お礼
回答ありがとうございます。 ""で囲むことで二重に表示されるのは解決いたしました。 ありがとうございます。 また別なのですが、 if ($hoge eq ''){ $hoge = "<BR>\n"; } else{ $hoge = $hoge; } $hogeが空欄だったら<BR>を、そうでなかったら$hogeの内容を入れる、ということをさせようと思っているのですが、 <BR>は入ってるようなのですが、なぜか一緒に>が入ってしまいます。 (文字を入れた場合はでません。) >は一体どこからあらわれたのでしょうか?