23/03/2006 00:35
其實這個問題已經困擾了我好幾個月了,不過2.0暫時取消了1.7的訪問歷史統計,所以到最近才發現到。
某次當我用後台的sql來查看每天的造訪人數
(方法是在資料維護->MySQL裡,輸入select * from [db]history),
發現了以下的情況(節錄)︰
20060307 1587
19700101 551
19700101 143
20060308 736
19700101 154
19700101 190
19700101 93
20060309 904
19700101 403
20060310 946
20060311 1404
20060312 1458
左手邊是日期,而右手邊是每天的造訪人數。奇就奇在中間多了一些19700101的日期。原本bo-blog在每天的0:00時,把"今日造訪"的數字歸零,重新計數,但現在就在一天裡的某個時候自動歸零,而且情況很隨機,有時幾天才發生一次,但有時又一天發生十多次,把統計都打亂了。
開始時還擔心是server有事,不過後來發覺其他人也有類似問題(只是我的比較嚴重),應該不關server的事。現在惟有靜待bob大的修正了。
多得本SERVER的守護神——KERO大神的幫助,終於把這個BUG修復了。
方法很簡單,只要在root的global.php裡,找到function writetofile(應該是在第246行),然後把整個function刪掉,在原本的地方補上以下這段就成了。
function writetofile ($filename, $data) { //File Writing
$filenum2=@fopen($filename.'lock',"w");
flock($filenum2,LOCK_EX);
$filenum=@fopen($filename.'tmp',"w");
if (!$filenum) {
return false;
}
$file_data=fwrite($filenum,$data);
fclose($filenum);
rename($filename.'tmp',$filename);
fclose($filenum2);
return true;
}
不過修改global.php有點風險,最好就是先備份一下原本的文件才作改動啦。
某次當我用後台的sql來查看每天的造訪人數
(方法是在資料維護->MySQL裡,輸入select * from [db]history),
發現了以下的情況(節錄)︰
20060307 1587
19700101 551
19700101 143
20060308 736
19700101 154
19700101 190
19700101 93
20060309 904
19700101 403
20060310 946
20060311 1404
20060312 1458
左手邊是日期,而右手邊是每天的造訪人數。奇就奇在中間多了一些19700101的日期。原本bo-blog在每天的0:00時,把"今日造訪"的數字歸零,重新計數,但現在就在一天裡的某個時候自動歸零,而且情況很隨機,有時幾天才發生一次,但有時又一天發生十多次,把統計都打亂了。
開始時還擔心是server有事,不過後來發覺其他人也有類似問題(只是我的比較嚴重),應該不關server的事。現在惟有靜待bob大的修正了。
多得本SERVER的守護神——KERO大神的幫助,終於把這個BUG修復了。
方法很簡單,只要在root的global.php裡,找到function writetofile(應該是在第246行),然後把整個function刪掉,在原本的地方補上以下這段就成了。
function writetofile ($filename, $data) { //File Writing
$filenum2=@fopen($filename.'lock',"w");
flock($filenum2,LOCK_EX);
$filenum=@fopen($filename.'tmp',"w");
if (!$filenum) {
return false;
}
$file_data=fwrite($filenum,$data);
fclose($filenum);
rename($filename.'tmp',$filename);
fclose($filenum2);
return true;
}
不過修改global.php有點風險,最好就是先備份一下原本的文件才作改動啦。
問題棒
福娃也要動畫化!











http://blog.tiffany.com.tw/read.php/338.htm
修改global.php 第121行
//if (gmdate("Ymd", $oldip[2]+$config['timezone']*3600)!=$nowtime['Ymd']) {
修改為
if (gmdate("Ymd", $oldip[2]+$config['timezone']*3600+86400) == $nowtime['Ymd']) {
目前問題解決了,把解決辦法貼在這裡,希望對有同樣困擾的人有幫助。
http://www.bmforum.com/bmb/topic_114961.html
若果情況持續的話,就換回原本的global.php吧。
不知有沒有其他人有同類情況呢?