WP-PostViews a odświeżanie

9 czerwca 2006

WP-PostViews jest prostym licznikiem czytań notki dla WordPressa. Niestety plugin ten nie jest odporny na odświeżanie strony, dlatego jego pomiary tak do końca nie są poprawne i rzeczywiste. Zawsze się znajdzie osoba, która podbije, co jakiś czas wartość czytań odświeżając kilkakrotnie stronę…
Od dawna wiedziałem o tym problemie, ale dopiero dziś rozmowa z Wojciechem skłoniła mnie do małej poprawki tego plugina, i zabezpieczenia przed powtórnym odświeżeniem strony przez tego samego usera.

Najprostszym zabezpieczeniem jest zastosowanie cisteczek, które będą informowały o obecności danego usera. Czas życia ciastka ustawimy na 10 min., nie ma potrzeby blokowania licznika na cala dobę, bo jak wspomniałem to jest pomiar czytań, nie unikalnych załadowań, a jak wiadomo czytać dany tekst można wiele razy w ciągu doby, powracając do niego. Dlatego 10 minut powinno być wystarczającym parametrem :)

W pliku plugina znajdujemy fragment kodu:

update_post_meta($id, 'views', ($post_views+1));

i zamieniamy go na poniższy:

if ($_COOKIE['post'.$id] <> "1") {
	update_post_meta($id, 'views', ($post_views+1));
	setcookie("post".$id, "1", time()+1800);
}

Od teraz możemy się cieszyć rzetelniejszymi i bardziej pewnymi pomiarami, nikt nam nie będzie nabijał licznika :P
Chyba, że znajdzie się jakiś „nawiedzony” user, który specjalnie będzie czyścił swoje cookies w przeglądarce i na złość nam odświeżał stronę…

Link do postu na Polskim Supporcie WP poruszającego temat tej wtyczki ;)

Podobne notatki:

Może zainteresują Cię również następujące, pododbne notatki:

Komentarze i nawiązania (3)

Kanał RSS komentarzy

  1. Chyba bardziej prawidłowo będzie:
    if ( !isset( $_COOKIE[‘post’.$id] ) ) {
    W końcu nie jest istotne jaką wartość ma ciasteczko, a PHP nie bedzie wywalał NOTICE.

  2. W sumie racja, tak będzie lepiej :)
    Ale zresztą kto ma włączone wyświetlanie ostrzeżeń NOTICE, w końcu to nie Warning :P

  3. Nikt mądry :) Ale zawsze to 0.00001 sekundy szybciej skrypt wykonany ;-)

Dodaj swój komentarz

Możesz użyć tych tagów XHTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Jeśli chcesz wstawić kilku linijkowy fragment kodu, użyj tagów <pre lang="x"></pre> (gdzie x język kodu np. cpp, perl, html). W ten sposób kod zostanie odpowiednio sformatowany i pokolorowany przez system.

Uwaga!

Na tym blogu działa system cache oraz filtr antyspamowy. Twój komentarz może być widoczny na stronie z pewnym opóźnieniem. Proszę o cierpliwość. Jeśli utraciłeś już wszystkie jej zasoby poinformuj mnie o tym, być może system uznał Cię za spamera ;)