• 締切済み

textareでの改行

ホームページ上のtextareaで入力してもらった情報を取得するCGI(perl)スクリプトを書いています。流れとしては,フォーム上で入力した情報をCGIで取得→確認画面を表示→問題無ければメールフォームとして送信,となっています。 このスクリプト上で問題となっているのが,textareaでは自動的に改行処理(wrap=softと同じ?xhtmlで書いているので,wrap属性は指定していません。)するときに入力される改行コードと,入力者が意図的に入力する改行コードを判別出来ないということです。自動的に挿入される\n(0x0A)を削除しようとスクリプト上で, $text =~s/\r\n/\n/g; $text =~s/\r/\n/g; $text =~s/\n//g; と入れたところ,全ての改行コードが変換処理されてしまい,入力者が意図的に入れた改行コードまで処理されてしまいます。 スクリプト上,もしくはxhtmlと組み合わせて,自動的に挿入される改行コードだけを消去して,意図的に入力した改行コードだけを残す処理は出来ないものでしょうか? phpなどを使うと出来るようですが,ある程度perlのcgiで作成してしまったので,このままで出来ればと思っています。よろしくお願いします。

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

>$text =~s/\n//g; で全部消しているので無理はない。 確認画面を表示用データは、ここで $text =~s/\n/<br\/>/g; メール用データはそのまま http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi あてに送信してみて御覧なさい。

kici0819
質問者

お礼

早速回答頂きどうもありがとうございます。 ご指示頂いたページのを見ると,確かに正しく処理されているので,もう一度見直して見たところ,確認画面を表示する前に必須項目をチェックするためのJavaScriptの方に問題がありました。修正した後,教えて頂いた処理を入れたところ,意図した動作をするようになりました。 どうもありがとうございます。

関連するQ&A