プロが教える店舗&オフィスのセキュリティ対策術

はじめまして。私は学生で超のつく初心者なのですが、課題で掲示板を作っています。
基本的な表示はなんとかうまくいったのですが、よくある、文字色を選択して好きな色で文章(コメント)を表示させるプログラムがわかりません。
if文を使うパターンではなく、色の情報を書き込み、ファイルからデータを読み込むやり方でできるらしいのですが、どうやって書いたらよいのでしょうか・・・。
ちなみにhtml表示部分に、色の指定はしてあり、赤、青、緑、黄色でvalueはred,blue,green,yellowにしています。
下に書き込みと読み込みの部分を乗せたのですがどう入れたらいいでしょうか。
本当に初心者だし分かっていないので説明もわかりにくくてすいません。もしどなたか分かる方いたらよろしくお願いします。
#------------------------------------------------------------
# 登録データ書き込み処理
#------------------------------------------------------------

sub writeData() {

# $DATAFILEをオープンする
open(FILE, ">> $DATAFILE") or die("error:$DATAFILE open error!");
eval{ flock(FILE, 2); };

$timestr = &getTimestr();
$in{'comment'} =~ s/\n/<br>/g;

print FILE "$in{'namae'},$in{'dai'},$in{'comment'},$timestr,";

close(FILE);
}
#------------------------------------------------------------
# 登録データ読込み処理
#------------------------------------------------------------
sub readData() {
# $DATAFILEをオープンする
open(FILE, "< $DATAFILE");
eval{ flock(FILE, 2); };

while(<FILE>){
chomp;
$line[$cnt++] = $_;
}
close(FILE);
}

A 回答 (2件)

Perl/CGIでしたら多少お力添えできそうです。


color情報をデータに書き込み、読み込むときにそのデータを取り出してタグの内部に利用してやれば良いかと思います。

主に読み込み時に一度配列にファイル内容を取り込み
その後、split関数でデータを分けてtemp_dataという一時的な配列に格納、それを出力。みたいな感じでいかがでしょう。
動作テストしてないので動かないかもしれませんが、考え方の手助けになれれば幸いです。

HTML
<form action="XXX.cgi" method="post">
NAME<input type="text" name="name" />
TITLE<input type="text" name="dai" />
<textarea name="comment">Please Type Any Comment!</textarea>
COLOR
red<input type="radio" name="color" value="red"/>
blue<input type="radio" name="color" value="blue"/>
green<input type="radio" name="color" value="green"/>
<input type="submit" value="書き込み">
</form>

とでもして

CGI側
#書き込み処理
#------------------------------------------------------------
# 登録データ書き込み処理
#------------------------------------------------------------

sub writeData() {

# $DATAFILEをオープンする
open(FILE, ">> $DATAFILE") or die("error:$DATAFILE open error!");
eval{ flock(FILE, 2); };

$timestr = &getTimestr();
$in{'comment'} =~ s/\n/<br>/g;

print FILE "\n$in{'namae'},$in{'dai'},$in{'comment'},$in{'color'},$timestr,";
#↑不要だったら先頭の\n消してください

close(FILE);
}

# ファイル読み込み
sub readData() {
my @file_data=();
my @temp_data=();

# $DATAFILEをオープンする
open(FILE, "< $DATAFILE");
eval{ flock(FILE, 2); };
@file_data = <FILE>;
close(FILE);

foreach(@file_data){ #@file_dataを元に一行毎に処理させます
@temp_data = split(/,/);
print "$temp_data[1] (by $temp_data[0] / $temp_data[4]) : <div style=\"color:$temp_data[3]\">$temp_data[2]</div>\n";
}

}
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
なんかできそうな気がします。参考にさせていただきますね。
ありがとうございました!

お礼日時:2009/08/03 22:30

HTLMの文字色をそのままコメントに付け加えたら?


"<font color=red>"+コメント+"</font>"

文字連結って、+?
.だっけ?

にして書き込む。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
文字連結とか知りませんでした。参考にさせていただきます。
ありがとうございました!

お礼日時:2009/08/03 22:32

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