bbs.cgi再開発プロジェクト 3

このエントリーをはてなブックマークに追加
506仕事人 ★
>>504

そね

#ログのカキコ数を取得
$lognum = @logdat;
if($lognum > 1010)
{
DispError("ERROR!", "ERROR:このスレッドには書き込めません。緊急緊急緊急!!");
}
if($lognum > 999)
{
if(open(OUT,">>$dattemp"))
{
print OUT "1001<><>Over 1000 Thread<>このスレッドは1000を超えました。 <br> もう書けないので、新しいスレッドを立ててくださいです。。。 <>\n";
close(OUT);
$lognum++;
}
chmod(0555, $dattemp);
}
else
{
#パーミッション調整
umask(0);
chmod(0666, $dattemp);
}

507仕事人 ★:04/03/01 00:44 ID:???
まとめ(メモメモ)

処理の流れは

1) とにかく色々チェック。
2) dat に追記。
3) MakeWorkFile で html/xxxxxx.html を作る
  この時に 1,000 超えを判定、 1,001 を書き 0555 にする。
  この関数内で $SUBLINE = $subject . " (" . $lognum . ")\n";
  を作りあとで subject.txt の書き換えに使う。
4) subjext.txt 書き換え
5) ふぅ終了。
508仕事人 ★:04/03/01 00:46 ID:???
問題は 2) で追記したあと 0666 にしていたので
せっかく 0555 で書き込めなくしたのに書き込めていた。

あと bbs.cgi の最初のほうで
unless( -w $DATAFILE){
DispError("ERROR!","ERROR:このスレッドには書き込めません。");
}
を行い、なるべく負荷をさげようと。
509仕事人 ★:04/03/01 00:53 ID:???
大幅なオーバーランはなくなったか → たぶん
前よりも処理は軽くなったか? → たぶん

要観察ですなぁ