Licznik kliknięć nabija podwójnie.

0

Witam,
mam prosty licznik, który przy kliknięciu powinien zwiększać wartość w rekordzie o +1 lub w przypadku braku rekordu stworzyć go i ustawić na 1.

<?php
// redirect.php?symbol=001&id=1
require "connection.php";
connection();
		
		$query_counter="INSERT INTO `test`.`counter` (`symbol`, `quantity`) VALUES('$symbol', '1') ON DUPLICATE KEY UPDATE `quantity` = `quantity` +1";
		//echo $query_counter;
		mysql_query($query_counter);		
		mysql_close();
		echo '.<meta http-equiv="refresh" content="0.0; URL=http://test?item='.$symbol.'">.';
?>

Wszystko by było w porządku tylko Chrome podbija licznik o 2 ponieważ jak się dowiedziałem sam również odpytuje stronę w tle.
IE przykładowo działa prawidłowo.

Jak się przed tym prosto zabezpieczyć? Nie chciałbym używać ciasteczek.

0

Zapisz sobie wszystkie nagłówki do pliku z obu żądań - porównaj je. Być może będzie się dało jakoś rozróżnić czy to jest ten request do przyspieszonego ładowania stron czy nie.

Jeżeli nie no to nie rozpoznasz tego - możesz co najwyżej zliczać dany IP tylko raz, albo po ciastkach liczyć. Ew. wprowadzić mechanizm cache i reagować na nagłówki do cache, np: If-Modified-Since - raczej trudna robota dla kogoś tak początkującego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1