

現在CGIの勉強を行っているのですが、
以下の点がうまくいかなくて困っています。
-----------HTML(例)------------------
投稿名 :[ SAMPLE ]
TITLE :[ SAMPLE1 ]
TEXTAREA :[ aaaaaaaa
_____________bbbbbbb]
[投稿][リセット]
-----------サブフレーム(bbs.cgi)-----
投稿名:[ SAMPLE ]
TITLE :[ SAMPLE1 ]
TEXTAREA :[ aaaaaaaa
_____________bbbbbbb]
-------------------------------------
1.HTMLの方で投稿(サブフレーム形式)
2.BBS.CGIで処理を行う
3.TEXTAREAで改行を行って投稿した際の処理
(ここで投稿した際に別投稿として掲載されてしまいます。)
*ソース
#!/usr/local/bin/perl
use CGI;
#外部データの取得
$q = new CGI;
#外部データの受取処理
$Name1 = $q->param('name');
$Name2 = $q->param('title');
$Name3 = $q->param('url');
$Name4 = $q->param('txt');
@FILE_FOR;
$count=0;
print "Content-type: text/html; charset=Shift_JIS \n\n";
#書き込み
if($Name1 ne "" && $Name2 ne "" && $Name3 ne "" && $Name4 ne ""){
open(FH,">>log.dat");
print FH "$Name1,$Name2,$Name3,$Name4\n";
close(FH);
}
#読み込み
if(!open(FH,"log.dat")){
print "読み込みに失敗しました。\n";
}else{
$F=0;
foreach my $line (<FH>){
@FILE_FOR[$F] = $line;
$F++;
}
}
close(FH);
#結果表示
if($F ne 0){
for($Y=$F;$Y > 0;$Y--){
$C = $Y;
@BOX = split(/,/ ,$FILE_FOR[$Y - 1]);
print "<CENTER>";
print "<HR><TABLE BORDER=2><TR><TD>No.$C</TD></TR>";
print "<TR><TD>投稿者:</TD><TD>@BOX[0]</TD></TR>";
print "<TR><TD>投稿タイトル:</TD><TD>@BOX[1]</TD></TR>";
print "<TR><TD>URL:</TD><TD><a href=@BOX[2]>@BOX[2]</a></TD></TR>";
print "<TR><TD>内容:</TD><TD><B>@BOX[3]</B></TD></TR></TABLE><HR>";
print "</CENTER>";
}
}else{
print "現在は未投稿です。";
}
No.1ベストアンサー
- 回答日時:
以下のような変更で所望の結果は得られるでしょうか?
use CGI;
↓
use CGI qw(escapeHTML);
$Name4 = $q->param('txt');
↓
$Name4 = $q->param('txt');
$Name4 =~ s/\n/\0/g;
@BOX = split(/,/ ,$FILE_FOR[$Y - 1]);
↓
@BOX = split(/,/ ,$FILE_FOR[$Y - 1]);
for my $item (@BOX) {
$item = escapeHTML $item;
$item =~ s/\0/<br>/g;
}
ご回答ありがとうございます。
上記の通りに変更してみたところ思った通りの結果になりました。
escapeHTMLというものを使うのですね。
本当にありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
malformed header from script....
-
CGI内からSSIを実行した...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
VB6で、長い時間かかる処理...
-
formで特定のinputを送信しない...
-
<SELECT>タグの折り返し
-
16進の10進変換について
-
ACCESS テキストボックスを隙...
-
FindFirst を複数条件で検索
-
Pythonでコンソールをクリアす...
-
[python] 文字列を変数名として...
-
シェルスクリプトで、空白(ス...
-
MSXMLでの属性の存在確認法
-
構造体の各データの表示につい...
-
テーブル内でドロップダウンメ...
-
セレクトメニューで2つの項目...
-
メモリをアドレスを直接指定し...
-
Perlで足し算をするには
-
Schemeのプログラミング うる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
続・開始時間、終了時間のCGI設定
-
初歩的なCGIですが
-
画像ファイルが崩れる
-
CGIについて…エラーで表示され...
-
Perlでの数字の12桁化
-
時間振り分けCGIのモバイル対応化
-
自作CGIで、wwwサーバーエラ...
-
CGI 文字化け
-
CGIのはじめのコ-ド
-
文字化けを直す方法
-
既存のデーターを開く方法
-
JSON形式のデータ解析が出来な...
-
$_という変数は何を意味するの...
-
HTMLのタグをPerlに書き換える...
-
サムネイルCGI
-
malformed header from script....
-
CGIの動作環境に関して
-
CGIから出力される文字が化けて...
-
エラー表示の意味を解説してく...
-
データの読み込み方法
おすすめ情報