hit aldığında..
$id = mysql_escape_string($_GET['proje_id']); //güvenlik, id = oylamada proje_id, oyla.php?proje_id=31221312 ..gibi.

$res = mysql_query("SELECT time FROM tb_puan WHERE ip='{$_SERVER['REMOTE_ADDR']}' and proje_id=$id");
if (!mysql_num_rows($res) {
INSERT INTO tb_puan SET proje_id=$id,skor=1,ip='{$_SERVER['REMOTE_ADDR']}'
}
elseif (mysql_result($res,0,0) < (time()+86400))) {
UPDATE tb_puan SET skor=skor+1, time=UNIX_TIMESTAMP() WHERE proje_id=$id and ip='$_SERVER['REMOTE_ADRR']';
}
else {
//puan verilmedi, çünkü refresh uyarısı.. istenirse konur..
}

//bi projenin toplam hitini alan sql..

SELECT SUM(skor) WHERE proje_id=$id;

..gibi

parse error olabilir, ama mantık böyle.

cronjob böyle işlerde pek kullanılmaz çünkü kural gün değil (22:59 oy versin, 23:01 bidaha oy versin, küçük ama gene istenmeyecek birşey), kural bir ip'nin ancak 24 saatte bir oy yapması.