Cookies или Session

Gigantz

Новичок
Всем хай. Помогите сделать так что бы "page_count=page_count+1" производился лишь один раз для пользователя. Думаю блокируя каждый ip можно завалит базу инфой. Внизу код из Page Hit Counter снипетта для modx, нужно сделать так что бы количество просмотров было уникальным , один чел один просмотр. Спасибо заранее


PHP:
global $table_prefix;

if(!isset($_SESSION['usertype'])) { $_SESSION['usertype'] = ''; }

if($modx->documentObject['donthit'] != 1 && $_SESSION['usertype'] != 'manager') {
  
  $sql = "INSERT INTO ".$table_prefix."page_hit_counter (page_id, page_count) VALUES ($modx->documentIdentifier, 1)
  ON DUPLICATE KEY UPDATE page_count=page_count+1";
  $modx->db->query($sql);

}

return;
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Уникальные просмотры тут будут возможны только в случае, если юзер будет регистрироваться и авторизовавшись ты будешь прогонять его через скрипт, записывая его id, который уникален.
 

Gigantz

Новичок
А если это сделать кукисами ? Хоть и после очистки опять же пойдет счет
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Gigantz
Куки не обещают уникальность, ты это понимаешь я думаю)
 

antson

Новичок
Партнер клуба
Сессия в данном случае та же кука, только живет по умолчанию 1440 секунд, в отличии от обычной куки, которую можно поставить на год (вечность в понятии интернета).
Считать уникальные просмотры как сам заметил накладно, если устроит уникальность просмотра за месяц или меньший срок, то база уже будет поменьше, за счет преодической чистки по крону с переносом кумулятивной статистики в другую таблицу.
В таком случае число просмотров будет складываться как базовое значение из суммарной статистики плюс количество строк (documentIdentifier,кука_ид_клиента) в оперативной базе.
 
Сверху