2017-01-24 6 views
1

私のページビュースクリプトカウンタ(PHPコード)で奇妙な問題が発生しています。 Firefoxのブラウザを使用して自分のウェブサイトのページにアクセスしたとき、ページビューの増分は+3(たとえば9〜12)です。ページをリロードすると、インクリメントは正しく、+1になります。Pageviewカウンターのインクリメントは、最初のページコールで+3(時々+2)、その後+1、なぜですか?

Operaブラウザでは、最初のページコールでは+2、その後のページリロードでは+1がほとんどの場合発生します。 ほとんどの場合、最初の呼び出しでは+3、その後のリロードでは+1が増えます。

クエリは非常に簡単です:

// update viewtimes 
$momento = date("Y-m-d G:i:s", time()); 
$queryUpdateVisite = " 
UPDATE projects SET 
lastviewtime = '$momento', 
viewtimes = viewtimes+1 
WHERE id='$dati[id]' "; 
if (mysqli_query($db, $queryUpdateVisite)) { 
$messaggioUpdateVisite = "<div class=\"alert alert-success\">ok</div>"; 
} else { 
$messaggioUpdateVisite= "<div class=\"alert alert-danger\">ERROR</div>"; 
echo "$messaggioUpdateVisite\n"; 
} 

それを修正する方法は?

編集:でも:WHERE id = $ dati [id]動作は同じです。

開こうとすると、http://www.fabiodisconzi.com/open-h2020/per-country/it/universita+degli+studi+di+sassari/index.htmlが表示され、[表示]列を確認すると、いくつかのプロジェクトが表示されます。エッジブラウザを使用しても問題は解決しません。

+0

ページがブラウザによってプリロードされている可能性がありますか? (http://andydavies.me/blog/2013/10/22/how-the-browser-pre-loader-makes-pages-load-faster/を参照) また、SQL NOW()関数を使用することもできますそのため、次のようになります。 'lastviewtime = NOW()' –

+0

UPDATE! **問題はgoogle adsenseスクリプト**によって発生しています。どうして?トリプルまたはダブルカウントを引き起こすプロセスは何ですか?私はadsenseコードを削除しようとしているだけで、ページビューカウンタはうまく動作します。 –

+0

それはadsenseネットワークのASYNCモードの問題であるはずです。 –

答えて

0

は、このクエリを使用します。

$queryUpdateVisite = "UPDATE projects SET lastviewtime = '$momento', viewtimes = viewtimes+1 WHERE id= $dati[id]"; 

idは、単一引用で書かれています。 idnumberの場合は、そのまま書いてください。

+0

私はこの変更を試みますが、問題は解決しません。どうもありがとう。 –

+0

ご存じですか? Webサーバーの設定が間違っている可能性がありますか? –

関連する問題