cgiのフォームを受けるサブルーチンでhttp://www.geocities.jp/mac1979aco/text.txtに記述したものがあるのですが、フォーム中に記述した改行を反映させたいのですがどうすれば良いのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/03/02 14:08:05
  • 終了:--

回答(3件)

id:hatetena No.1

hatetena回答回数2ベストアンサー獲得回数02004/03/02 14:37:46

ポイント24pt

http://ponk.jp/perl_bbs/index.php?page=7

CGI(Perl)の基本と掲示板作成 - 掲示板 その3

Perlは久しくさわってないので自信は無いのですが

comっていう名前のフォームからのデータはちゃんと改行が反映されているようなので

comのデータ以外に改行を反映させたいって事でしょうか

それなら26-27行目辺りの

$value =~ s/¥r¥n//g;

$value =~ s/¥r|¥n//g;

$value =~ s/¥r¥n/

/g;

$value =~ s/¥r|¥n/

/g;

に置き換えると出来ると思います。

(”¥r¥n”と”¥r”と”¥n”が改行を表しているので、これを

タグに置き換える)

id:cetos

<br>がそのまま表示されてしまいます。

http://www.geocities.jp/mac1979aco/text2.txtにフォームも載せてみました。フォームがいけないのでしょうか?

2004/03/02 15:34:36
id:hatetena No.2

hatetena回答回数2ベストアンサー獲得回数02004/03/02 16:53:07

ポイント23pt

ありゃ、うまく行かなかったみたいですいません。

<br>と表示されたデータはどこにどういう風に表示させていますか?

text.txtで処理したデータをファイルに書き込んでtext2でそのファイルを表示させているのでしょうか。

もしそうなら

$value =~ s/¥r¥n/<br>/g;

$value =~ s/¥r|¥n/<br>/g;

$value =~ s/¥r¥n/¥n/g;

$value =~ s/¥r|¥n/¥n/g;

にしてみて下さい。

もし違うなら<br>が<br>に置き換えられているのが原因の様な気がします。

表示したデータのソースを見て<br>が<>になっているのか見てみて下さい。

ちゃんと<br>と表示されていているなら

print ”Content-type: text/plain¥n¥n”;

print ”Content-type: text/html¥n¥n”;

という記述のどちらがあるかも見てみて下さい

id:cetos

$value =~ s/¥r¥n/¥n/g;

$value =~ s/¥r|¥n/¥n/g;

も試してみましたがダメでした・・・

<br>はそのまま保存されてるみたいです。

なるほど

print ”Content-type: text/html¥n¥n”;

も関係してくるのですね!

とりあえず

open(READ,”<$morecruit”);

close(READ);

@line = split(/

/,$data);

for $i(0..20){

print”$line[$i]¥n”;

}

で表示してみました。

たとえばhtmlのページで表示するときはどうするのでしょうか?

2004/03/02 17:34:56
id:raby No.3

raby回答回数21ベストアンサー獲得回数02004/03/02 17:53:28

ポイント23pt

print ”Content-type: text/html¥n¥n”;

ですよ。

今回の場合、デコード部分で タグを無効にしているので、もしコノヘッダーでダメな場合、

$value =~ s/</</g;

$value =~ s/>/>/g;

が、

をいれた後に出てきていないかチェックしてみるのもいいと思います。

それと補足ですが、

$value =~ s/</</g;

$value =~ s/>/>/g;

$value =~ s/<!--(.|¥n)*-->//g;

$value =~ s/<([^>]|¥n)*>//g;

というコードがありますけど、先に <>を実態参照に変換しているんで、後のコード無効になりますよ。

id:cetos

なるほどありがとうございました!

2004/03/02 18:43:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません