ほとんどの人がアクセスするページであるインデックス ページに IP を記録しています。統計のために IP をログに記録したい。すべての情報は MySQL データベースに入ります。私の問題はラグです。
ページを生成するのに約 1 秒かかります。サーバーがデータベースに接続してログを挿入するのをできるだけ速くしたいのです。今(私は信じています)ユーザーはインデックスページにアクセスし、ページ全体がロードされる前にスクリプトが実行され、DB に接続してデータを挿入します。そのため、ユーザーはデータが挿入されるまで少し待つ必要があります。ユーザーがページにアクセスしてから、データがDBに挿入されるようにします。
これは私のコードです。
インデックス.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);
}
関数.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')");
}
?>