Как увеличить счетчик каждой загрузки страницы (в PHP)? - PullRequest
2 голосов
/ 14 мая 2009

Я хочу, чтобы определенное действие происходило, когда пользователь посетил X страниц сайта

Нужно ли хранить счетчик извне (в текстовом файле или в БД)?

Я не могу придумать, как установить счетчик на 0, а затем увеличивать его при каждой загрузке страницы. Счетчик всегда будет сброшен в 0, или я упускаю что-то очевидное?

Ответы [ 6 ]

14 голосов
/ 14 мая 2009

Было бы довольно просто использовать $_SESSION данные для хранения количества страниц, просмотренных отдельным человеком.

$_SESSION['pageviews'] = ($_SESSION['pageviews']) ? $_SESSION['pageviews'] + 1 : 1;
1 голос
/ 14 мая 2009

Самый простой способ - использовать хранилище сессии PHP .

session_start();
@$_SESSION['pagecount']++;

PHP автоматически отправляет пользователю cookie сеанса и прозрачно сохраняет содержимое $ _SESSION в плоском файле, связанном с этим cookie. Вам действительно не нужно выдвигать собственное решение этой проблемы.

0 голосов
/ 14 мая 2009

У вас уже есть способ определить, кто пользователь (например, имя пользователя и пароль), даже если они покидают сайт и возвращаются в другой день? Или вы просто хотите отследить количество страниц, которые видит посетитель, и сделать что-то особенное на просмотренной x-й странице.

Если это второе, у вас уже есть переменная сеанса, в которой вы можете сохранить счетчик.

$_SESSION['views'] = $_SESSION['views'] + 1
if($_SESSION['views'] == x) ...
0 голосов
/ 14 мая 2009

Краткий ответ - да, вам нужно сохранить это извне, потому что php (по умолчанию) имеет политику сохранения памяти в ноль. В основном это означает, что после запуска вашего php-скрипта в памяти ничего не останется.

Для сайта с низким трафиком вы можете подумать о простом текстовом файле, где вы читаете, увеличиваете и пишете. Для сайта с большим трафиком может работать очень простая таблица mysql.

0 голосов
/ 14 мая 2009

Вы можете начать сеанс, когда пользователь впервые попадет на вашу страницу, а затем увеличивать значение каждый раз, когда пользователь перезагружает / посещает подстраницы. Еще один способ сделать это - создать на каждой странице скрытое поле, получить его значение, увеличить его и опубликовать на новой странице.

<input type="hidden" value="2" id="blabla" />
0 голосов
/ 14 мая 2009

вы бы использовали оператор if для проверки, если он уже установлен;

if( isset($count) )
{
   $count = $count + 1;
}
else
{
   $count = 1;
}

Вы также можете использовать метод get, чтобы добавить счетчик в URL, чтобы вам не приходилось записывать счет в файл или базу данных.

...