2017-01-24 4 views
1

Eine seltsame Probleme auf meinem Pageview Skript Zähler (PHP-Code) passiert. Wenn ich eine Seite meiner Website mit Firefox Browser, besuchen, ist das Inkrement des Seitenaufrufs gleich +3 (von 9 bis 12 zum Beispiel). Wenn ich die Seite neu lade, ist das Inkrement richtig und gleich +1.Pageview Counter Inkrementieren +3 (+2 manchmal) beim 1. Seitenanruf, dann +1, warum?

Mit Opera-Browser passieren die meisten Male, dass das Inkrement +2 für die erste Seite aufrufen und +1 für folgende Seite neu laden. Mit Chrome die meisten Male das Inkrement ist +3 für den ersten Anruf und +1 für folgende Nachladung.

Die Abfrage ist sehr einfach:

// 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"; 
} 

Wie es zu beheben?

edit: auch mit: WHERE ID = $ dati [ID] das Verhalten ist das gleiche.

Probieren Sie es aus: http://www.fabiodisconzi.com/open-h2020/per-country/it/universita+degli+studi+di+sassari/index.html und überprüfen Sie die Spalte "Ansicht" versuchen Sie, einige Projekte zu besuchen. Selbst mit Edge-Browser bleibt das Problem bestehen.

+0

Vielleicht ist die Seite vom Browser vorinstalliert? (siehe http://andydavies.me/blog/2013/10/22/how-the-browser-pre-loader-makes-pages-load-faster/) Darüber hinaus könnten Sie die SQL NOW() -Funktion verwenden für die Datetime, also: 'lastviewtime = NOW()' –

+0

UPDATE! ** Das Problem wird durch das Google Adsense-Skript ** verursacht. Warum? Was ist der Prozess, der die Dreifach- oder Doppelzählung verursacht? Ich habe gerade versucht, den AdSense-Code zu entfernen, und der Seitenaufrufzähler funktioniert einwandfrei. –

+0

Es sollte ein Problem des ASYNC-Modus von Adsense-Netzwerk sein. –

Antwort

0

Verwenden Sie diese Abfrage:

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

id wird in einfache Anführungszeichen geschrieben. Wenn Ihr idnumber ist, dann schreiben Sie es wie es ist.

+0

Ich versuche diese Änderung, aber das Problem bleibt bestehen. Danke vielmals. –

+0

Irgendeine Idee? Kann eine falsche Einstellung des Web-Servers sein? –

Verwandte Themen