Насчёт защиты от накруток не знаю, а в остальном.
Например:
в БД таблица banners
Столбцы: id, img, url, show, click (значение объяснять не нужно надеюсь)
В cms пишем что-то вроде:
$banner=mysql_fetch_array(mysql_query("SELECT img,id FROM banners ORDER BY RAND() LIMIT 1 "));
mysql_query("UPDATE banners SET show=show+1 WHERE id='$banner[id]'");
$banner="<a href='banner.php?go=$banner[id]'><img src="$banner[img]" alt='Баннер' /></a>";
В banner.php по аналогии.
1)Фильтруем $_GET[id] для защиты от инъекций.
2)Проверяем по кукам или в сессии, кликал ли товарищ по баннеру до этого. Если нет, прибавляем единичку в графу click. Пишем куки или в сессию, что по такому то баннеру, товарищ уже кликал.
3)Редиректим товарища по url из базы.
Примерно так. Если где-то в коде ошибся, не ругайтесь, поздно уже.