我在我的索引頁上登錄IP,這是大多數人將訪問的頁面。我想記錄IP的統計信息。所有信息都將進入MySQL數據庫。我的問題是滯後的。獲取用戶IP並將其無延遲插入到數據庫中
大約需要一秒鐘爲我生成頁面。我希望它儘可能快,並且服務器連接到數據庫並插入日誌。現在(我相信)用戶進入索引頁面,在整個頁面加載之前,我的腳本被執行,它連接到數據庫並插入數據。所以用戶必須等待一秒鐘才能插入數據。我希望用戶訪問該頁面,然後將數據插入到數據庫中。
這是我的代碼。
的index.php
$ip = $_SERVER['REMOTE_ADDR'];
if(substr($ip,0,4) != "192."){ //Don't log my local IP
$page = $_SERVER['PHP_SELF'];
include("ext/functions.php");
logger($page,$ip);
}
的functions.php
<?php
function logger($page, $ip){
$logr = mysqli_query(mysqli_connect($host, $user, $pass,$statDB),
"INSERT INTO logs (page, DATE, ip) VALUES ('$page', NOW(), '$ip')");
}
?>
連接到您的數據庫應該花的時間少於一秒鐘。 – ThiefMaster
您可以使用PHP陣列來記錄IP而不是MySQL數據庫。然後,您可以使用cronjob將其插入數據庫,並且無需等待重置數組。 – Megadv
爲什麼不使用Apache訪問日誌,默認情況下幾乎在所有的設置中。 – 2013-04-14 08:45:34