Если в кратце то в модель вынесите такую функцию и вызывайте в контроллере — если счетчик был увеличен то она вернет 1, если нет то 0. blockTime — время блокировки от накрутки в секундах:
public function incViewUnit($id, $blockTime = 10)
{
$checkview = $_SESSION['advt']['views'];
if ($checkview){ // если данные о сессии есть
$result = 0;
foreach ($checkview as $key => $value){
if ($value > $time){ $newcheck[$key] = $value; }
if ($key == $id and
$value > time() ){$result = 1;}
}
if (!$newcheck[$id]){
$newcheck[$id] = $time + $blockTime;
$this->where = '`id` = '.$id;
$this->increment(НАЗВАНИЕ ТАБЛИЦЫ, НАЗВАНИЕ ПОЛЯ);
$result = 0;
}
$_SESSION['advt']['views'] = $newcheck;
} else { // если данных о сессии еще не было
$_SESSION['advt']['views'][$id] = $time + $blockTime;
$this->where = '`id` = '.$id;
$this->increment(НАЗВАНИЕ ТАБЛИЦЫ, НАЗВАНИЕ ПОЛЯ);
$result = 0;
}
return $result;
}
замените в коде на свои значения
$this->increment(НАЗВАНИЕ ТАБЛИЦЫ, НАЗВАНИЕ ПОЛЯ);