Prosiłbym o ocenę funkcji licznika opartego na bazie mysql. Licznik pokazuje ilość unikalnych odwiedzin w dniu, tygodniu, miesiącu i wszystkich. Chciałbym się dowiedzieć czy dobrze i optymalnie jest to napisane.
function counter($value) {
if ($value != 'count') {
switch($value) {
case 'all':
default:
$counter = mysql_query("SELECT COUNT(`id`) FROM `counter`"); break;
case 'day':
$day = date('Y-m-d H:i:s', time()-1440
*60
); // 24 hours $counter = mysql_query("SELECT COUNT(`id`) FROM `counter` WHERE `date` > '$day'"); break;
case 'week':
$week = date('Y-m-d H:i:s', time()-10080
*60
); // 7 days $counter = mysql_query("SELECT COUNT(`id`) FROM `counter` WHERE `date` > '$week'"); break;
case 'mounth':
$mounth = date('Y-m-d H:i:s', time()-43200
*60
); // 1 mounth $counter = mysql_query("SELECT COUNT(`id`) FROM `counter` WHERE `date` > '$mounth'"); break;
}
}
$ip = $_SERVER['REMOTE_ADDR'];
$check_ip_query = mysql_query("SELECT `ip` FROM `counter` WHERE `ip` = '$ip'");
if (isset($_COOKIE['visited'])) $cookie_visited = $_COOKIE['visited'];
mysql_query("INSERT INTO `counter` VALUES (null, '$ip', '$date')"); }
if ($value != 'count') {
$counter = $counter[0];
return $counter;
}
}