カンパ〜イ!←最初の1杯目、なに頼む?

ホームページ上の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で作成してしまったので,このままで出来ればと思っています。よろしくお願いします。

A 回答 (1件)

>$text =~s/\n//g;


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

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

お礼日時:2010/03/22 14:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報