cgiのログの書き方
ここで教えてもらってログファイルの書き方(挿入のようなカンジで)をやってみたんですが、どうしても思い通りの動きをしません。
希望としては、IDが一緒なら、その同じIDの下に書き込みを行う。同じIDが見つからなければ、一番上に書き込みを行う。
というようにしたいのです。
上記のことを行うために以下のコードを書きました。
---------------
for ($w=0;$w<$gyou+1;$w++){
@log3 = split(/&/,$log2[$w]);
foreach(@log3){
($keyw,$valuew) = split(/=/,$_);
$FORMw{$keyw} = $valuew;
}#foreach
open(FH3,">>log.log");
if ($ID == $FORMw{'ID'}){
print
FH3"ID=$ID&COUNT=$COUNT&TITLE=$TITLE&NAME=$NAME&PASSWORD=$PASSWORD&NAKAMI=$NAKAMI&COLOR=$COLOR&TIME=$year/$m
on/$day $hour:$min:$sec&SEARCHKEY=$year$mon$day$hour$min$sec\n";
last;
} else {
if($w+1 == $gyou){
print
FH3"ID=$ID&COUNT=$COUNT&TITLE=$TITLE&NAME=$NAME&PASSWORD=$PASSWORD&NAKAMI=$NAKAMI&COLOR=$COLOR&TIME=$year/$m
on/$day $hour:$min:$sec&SEARCHKEY=$year$mon$day$hour$min$sec\n";
close(FH3);
}
}
}#for
---------------
どうしてもログファイルの最新情報としてしか書き込みがされません。
また、最新ログを1番上に書き込む、ということをしたいのですができますか?
日付順などで並べ替えをしてしまうと、ぐちゃぐちゃになってしまうので、並べ替えを行わずに、です。
またこのような書き込みの仕方をしなくても、
例えば並べ替えで、Excelみたいに、1番目と3番目を基準に並べ替え、とかでできますか?
(私は1つの方法でしか知らないので、どうしても意図する順番になりません。)