Брояч с много екстри.

purko

Registered
Здравейте!
Правя изцяла динамичен сайт и ми трябва брояч, с който да отчитам импресийте. Трябва ми код за брояч, който не е много тежък, защото сайта е динамичен и трябва да не бави зареждането. Трябва ми да може да записва в БД уникални посещения, референции, импресии... абе колкото се може повече с колкото се може по-бързи за изпълнение заявки. Целта е при всяко кликване на посетителя в сайта той да отчита импресии и т.н. Ще трябва да говключа във всяка функция на сайта ми и затова не искам да е тежък. Имате ли нещо, което мога да ползвам дори да се наложи да го преработя малко?
 
justspy каза:
http://web-tourist.net/login/login/view.php?st=1961

Отдоло е написано доло гора как ще изглежда ;)
Това на всяко обновяване прави нов запис?!
Няма ли да станат записите прекалено много ако имам примерно 10 000 импресии дневно !?
Това май ще хаби много ресурси...
 
define("DATA_DB_STAT","zzzz_stat_total");

$user_ip=(getenv("HTTP_X_FORWARDED_FOR"))?getenv("HTTP_X_FORWARDED_FOR"):getenv("REMOTE_ADDR");

$ToDay=date("Y-m-d");

$StatSql="SELECT `IP` FROM `".DATA_DB_STAT."` WHERE `IP`='$user_ip' AND `DB_Prefix`='".DATA_DB_PREFIX."' AND `Date`='$ToDay' LIMIT 1 ";

$Rsql=mysql_query($StatSql) or die(mysql_error());

if (mysql_num_rows($Rsql)) {

$StatSql="UPDATE `".DATA_DB_STAT."` SET `Counter`=`Counter`+1 WHERE `IP`='$user_ip' AND `DB_Prefix`='".DATA_DB_PREFIX."' AND `Date`='$ToDay' LIMIT 1";

} else {

$StatSql="INSERT INTO `".DATA_DB_STAT."` (`IP`,`DB_Prefix`,`Date`) VALUES ('$user_ip','".DATA_DB_PREFIX."','$ToDay')";

}

$Rsql=mysql_query($StatSql) or die(mysql_error());



function ShowStat(){

$StatSql="SELECT SUM(`Counter`) AS `Impresions`, COUNT(*) AS `Visitors` FROM `".DATA_DB_STAT."` WHERE `DB_Prefix`='".DATA_DB_PREFIX."'";

$Rsql=mysql_query($StatSql) or die(mysql_error());

$Dsql=mysql_fetch_assoc($Rsql);

$ToDay=date("Y-m-d");

$StatSql="SELECT SUM(`Counter`) AS `Impresions`, COUNT(*) AS `Visitors` FROM `".DATA_DB_STAT."` WHERE `DB_Prefix`='".DATA_DB_PREFIX."' AND `Date`='$ToDay'";

$Rsql=mysql_query($StatSql) or die(mysql_error());

$Dsql2=mysql_fetch_assoc($Rsql);


echo "<center><div style='width:88px;padding:5px 0;border:1px solid black;background:#ACACAC;color:#000;font:10px Verdana; text-align:center;'>N : {$Dsql2['Visitors']}/{$Dsql2['Impresions']}<br>T : {$Dsql['Visitors']}/{$Dsql['Impresions']}</div></center>";

}


DATA_DB_PREFIX - ако имаш повече от един сайт (за всеки префикса е различен)

CREATE TABLE `zzzz_stat_total` (
`DB_Prefix` char(10) NOT NULL,
`Date` char(10) NOT NULL,
`IP` char(15) NOT NULL,
`Counter` mediumint(8) unsigned NOT NULL default '1'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


Ако ти трябва може да включиш и HTTP_REFERRER

Слагаш основния код някъде в началото, ShowStat() - където (и ако) искаш.

Ето действащи примери:
http://free.geobg.info
http://enigma.geobg.info
 

Back
Горе