2015-02-28 3 views
1

Я хочу считать изображения на моем сайте. До сих пор я установил файл cookie, содержащий последние 20 просмотренных изображений, например 1254.12.963.4328.32 и так далее.использовать сеанс php для просмотра изображений?

Это делается для предотвращения нескольких подсчетов, если кто-то нажимает F5/перезагружает страницу. Также я не хочу считать сканеров и пауков. (Я где-то читал, что боты не будут устанавливать этот файл cookie, но я не знаю)

Буду считать только реальных пользователей, когда я использую идентификатор сеанса и сохраняю массив с просмотренными идентификаторами изображений в сеансе ? Я использую laravel с драйвером сеанса базы данных. И сколько данных можно хранить за сеанс?

ответ

1

Это самодельный способ сделать это. Конечно, есть несколько библиотек, которые работают лучше, чем это. Однако это хорошее начало. Специально, если вы хотите сделать это самостоятельно.

<?php 
if (!$_SESSION['counter'] || !isCrawler()) { 
    $_SESSION['counter'] = 'whatever-counter'; 
} 


function isCrawler() { 
    $crawlers = array('googlebot'); //add more crawlers agents 
    foreach ($crawlers as $crawler) { 
     if (strstr(strtolower($_SERVER['HTTP_USER_AGENT']), strtolower($crawler))) { 
      return true; 
     } 
    } 
    return false; 
} 
+0

поэтому недостаточно подсчитать, установлено ли сеансовое cookie? Я ничего не знаю о сканерах/пауках – haheute

+1

'Также не хочу подсчитывать сканеры и пауки.' Метод isCrawler() будет заботиться. И нет, недостаточно подсчитать, установлены ли сеансы, так как они могут не хранить сеанс или они не очищают сеанс за запрос. Кто знает, что они делают. Специально «плохие мальчики» –

1

Возможно, вы хотите определить браузер.

Смотрите в этом проекте, которые предоставляют список браузеров и документацию, как их поймать.

BrowsCap

1

ли я рассчитывать только реальные пользователь, когда я использую идентификатор сессии и сохранить массив с просматриваемыми изображениями идентификаторов в сессии? Нет. Я полагаю, что ответ не стоит сомневаться, если вы считаете реальных пользователей, потому что вам нужно будет потребовать некоторые действия, чтобы убедиться, что это настоящий пользователь. Вот почему - например, каптчи используются при подаче форм.

Однако, вы можете сузить его, чтобы проверить, есть ли у вас "who's", который просматривает вашу страницу. У вас отличный ответ от Lea Tano, который я beiieve даст вам подсказку, с чего начать.

И сколько данных может храниться за сеанс? Сессии (по умолчанию) хранятся на сервере, поэтому фактические ограничения определяются и дисковым пространством (на сервере).

Смежные вопросы