ログの内容を追加、変更をしたいのですが。。。
cgiで一度登録した内容を後に変更したい場合、
どのようにすればよいのでしょうか?
番号 名前 アドレス コメント
001,aaaa,aaa@aaa,あいうえお
002,bbb,bb@bb,
003,ccc@ccc,
002のコメントに”かきくけこ”追加する
番号 名前 アドレス コメント
001,aaaa,aaa@aaa,あいうえお
002,bbb,bb@bb,かきくけこ
003,ccc@ccc,
という感じなのですが。。。
#!/usr/local/bin/perl
require 'pl/cgi-lib.pl';
require 'pl/jcode.pl';
#前のページから追加、変更したいデータを読み込む
&ReadParse(*file);
my $number = $file{'number'};
my $name = $file{'name'};
my $mail = $file{'mail'};
my $coment = $file{'coment'};
if(open (PEFFILE, ">>log1.txt")){
flock(PEFFILE,2);
open (PF, "<log.txt")
@date = <PF>;
close (PF);
foreach $date(@date){
($number1,$name1,$mail1,$coment1)=split(/\,/,$data);
if($number1 eq $number){#番号を一致したら新しい情報を書く
print PEFFILE "$number,$name,$mail,$coment\n";
}else{#そうでなければそのまま前と同じ情報を書く
print PEFFILE "$number1,$name1,$mail1,$coment1\n";
}
flock(FP,8);
close (PEFFILE);
}
と、こんな感じでかなり強引だなと思いつつチャレンジしてみたものの
思ったとおりうまく動いてくれませんでした。
長くなりましたがどうか、よろしくおねがいします。。
お礼
回答ありがとうございます! flockをはずしたらできました! ローカルで対応してないってこともあるんですね、知りませんでした。 >#OSやPerlのバージョンくらいは明記するといいですよ^^ 慌ててこんな基本的なことをかくのも忘れてました(^^; スイマセン。ありがとうございました。