Брояч на кликове

misho

Registered
Опитвам се да направя един брояч на кликове, без препращане, но нещо не ми се получават нещата. Връзката, на която се клика е от типа сайт.ком?siteid=20. Това означава, че сайта, от който идва клика е под номер 20 в моята БД. Този код го поставям в моя сайт.ком. Искам да запиша колко пъти са посетили моят сайт чрез връзката, която съм дал в различни сайтове. Примерно в web-tourist съм сложил такава връзка и WT е с номер 20 в БД-то ми. Също така в БД е записан и адреса на сайта - web-tourist.net. И така...проверявам, дали номера и адреса, от където идва посетителя съвпадат със зъписа в БД, и ако има съвпадение, увеличавам брояча с 1. За да не брои несъществуващи кликове, ако страницата се рефрешне, съм сложил и сесия, но очевидно това не помага, защото пак отчита клик. Дори и да отворя с друг бръузър и да напиша адреса дериктно, при положение, че $referer остава празно, пак ми отчита клик. :shock:

Код:
if(isset($siteId) && $_SESSION['click'] != '1') {
	$referer = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
	$searchReferer = mysql_query("SELECT `id`, `username` FROM `sites` WHERE `id` = '$siteId' AND `siteurl` LIKE '%$referer%'") or die(mysql_error());
	if(mysql_num_rows($searchReferer) != 0) {
		$searchReferer = mysql_fetch_assoc($searchReferer);
		mysql_query("UPDATE `sites` SET `clicks` = `clicks` + 1 WHERE `id` = '$searchReferer[id]' AND `username` = '$searchReferer[username]' LIMIT 1") or die(mysql_error());
		$_SESSION['click'] = '1';
	}
}

Редакция: Вече всичко е оправено! :wink:
 
Каква гора? :shock:
И не разбирам защо, дори $referer да е празно, пак открива прилика със записа в БД и отчита клик. :idea:
 
Ами не си ли чувал за системата "гората" ? Там си има съшият файл, който ти искаш с подобни функции и всичко е нагласено, потърси в гугъл за "гората - cms-bg" и ще я намериш :)
 
:o Попринцип има бутон тук във форума за български език за писане, а относно въпроса по темата, можеш да го направиш и с javascript onclick да изпълнява някаква функция и съответно в тази функция да се прави проверка дали IP-то е един път записано в базата и ако не е тогава да вкарва запис в таблица unique(уникални), а ако го има в тази таблица, да го вкарва примерно в others(други) и там да виждаш от едно IP колко човека са цъкнали... Много лесно става и с форма без javascript примерно пак си правиш проверка и разни такива... И не го прави с $_GET метода за това при refresh ти записва отново... Направи го с HTTP_REFFERER и ако е същия като отпреди това да не записва... Или го направи ако HTTP_REFFERER е различен от твоя домейн да няма запис, т.е. при рефреш, вече REFFERER ще е твоя сайт, но трябва да си направиш проверката също можеш и с HTTP_HOST да провериш ако е твоя хост да не записва, само ако има HTTP_REFFERER различен от твоя хост... Надявам се да си разбрал мисълта ми.
 

Back
Горе