Много мыслей было по задумке скрипта по количеству просмотров страницы, для каждого существует своя реализация и подход, в итоге было решено сделать четыре различных примера, с целью продемонстрировать работу скриптов, их технологию и результат.
Сначала ознакомимся для чего это нужно и способы применения данного скрипта. Любого обладателя своего сайта, ресурса, который пишет материалы, составляет какие-либо отчеты, интересует статистика. Стати́стика — отрасль знаний, в которой излагаются общие вопросы сбора, измерения и анализа массовых статистических (количественных или качественных) данных; изучение количественной стороны массовых общественных явлений в числовой форме.
В данных примерах нас будет интересовать статистика количества посещений страницы. Допустим у Вас есть страница с каким-либо материалом, например о компьютерах, Вы хотели бы вести статистику по количеству посещений этой страницы, в этом случае нам и будет необходим данный скрипт, который будет показывать цифру просмотра Вашего материала.
Давайте теперь перейдем к изучению самих скриптов, я подготовил для этого специально демо-версию, посмотрите.
И так, начнем. Для начала создадим 2 таблицы 2_view и 2_ip (может Вы заметили, зачем я указываю перед таблицами суффикс 2_, это просто у меня они так хранятся в базе данных, поэтому не обращайте пристального внимания, можете использовать свои значения).
Таблица 2_view
-- -- Структура таблицы `2_view` -- CREATE TABLE IF NOT EXISTS `2_view` ( `id` int(10) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `text` text NOT NULL, `col_prosmot` int(2) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ; -- -- Дамп данных таблицы `2_view` -- INSERT INTO `2_view` (`id`, `title`, `text`, `col_prosmot`) VALUES (1, 'Первая тестовая страница количества просмотров', 'Данный скрипт работает по каждому обновлению страницы.', 7), (2, 'Вторая тестовая страница количества просмотров', 'Данный скрипт работает по технологии SESSION, запоминает пользователя во время его посещения до закрытия страницы.', 0), (3, 'Третья тестовая страница количества просмотров', 'Данный скрипт работает по технологии COOKIE, запоминает пользователя во время его посещения, запоминая историю.', 0), (4, 'Четвертая тестовая страница количества просмотров', 'Данный скрипт работает по технологии запоминания пользователя по его IP-адресу, каждый IP вносится в специальную таблицу, где можно посмотреть их все, которые посетили данную страницу.', 1);
Таблица 2_ip
-- -- Структура таблицы `2_ip` -- CREATE TABLE IF NOT EXISTS `2_ip` ( `id` int(10) NOT NULL AUTO_INCREMENT, `ip` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ; -- -- Дамп данных таблицы `2_ip` --
В общем, таблицы мы успешно создали, теперь давайте плавно перейдем к написанию самих скриптов, всего я решил рассмотреть четыре уникальных примера, которые частенько встречаются на других сайтах и думаю после данного изложенного урока, Вы сможете выбрать себе тот, который считаете нужным.
В каждом скрипте идет подключение к базе данных и выводятся все поля из таблицы 2_view.
$post=mysql_query("SELECT id, title, text, col_prosmot FROM 2_view WHERE id='$id'");
В случае, переменной $id - сюда мы подставляем значение id. От 1 до 4.
Вывод каждой переменной количества просмотров.
echo "$res[col_prosmot]";
Первый пример: Файл view1.php
Данный скрипт работает с каждым последующим обновлением страницы и идет добавление в поле col_prosmot +1, увеличивая на одну единицу при обновлении страницы.
$setchik = $res["col_prosmot"] + 1; $update_setchik = mysql_query("UPDATE 2_view SET col_prosmot='$setchik' WHERE id='$id'");
Второй пример: Файл view2.php
Такой скрипт работает по технологии SESSION и требует вначале кода добавления,
@session_start();
который запоминает историю посещения страницы, пока пользователь находится на ней. Как только пользователь закроет окно и заново его откроет, он автоматически добавит +1. Код скрипта, будет таков.
if (!isset($_SESSION['view'][$id])) { $_SESSION['view'][$id] = 1; mysql_query("UPDATE 2_view SET col_prosmot=col_prosmot+1 WHERE id='$id'"); }
Сразу стоит отметить, что поле view - это временная переменная, в которую записывается данная сессия посещения страницы.
Третий пример: Файл view3.php
Тут мы рассмотрим технологию COOKIE, она задается посредством setcookie, в которой хранятся данные о пользователе посещаемого страницу, в период определенного времени. Отличается она от SESSION, тем что запоминает историю пользователя и в дальнейшем не добавляет +1, после закрытия и открытия заново данной страницы, но по истечению данного промежутка времени, заново начинает процедуру добавления +1.
if (!isset($_COOKIE['view_'.$id])) { setcookie("view_".$id, 1, time()+3600); mysql_query("UPDATE 2_view SET col_prosmot=col_prosmot+1 WHERE id='$id'"); }
Четвертый пример: Файл view4.php
Ну и рассмотрим последний пример. Тут задействована новая таблица, которая не употреблялась в предыдущих трех примерах, таблица 2_ip, в нее будут добавляется ip-адреса пользователей, которые посетили данную страницу. В коде присутствует переменная ip-адресов REMOTE_ADDR. Сначала извлекаются данные из таблицы 2_ip, затем обновляется поле col_prosmot +1 в таблицу 2_view, если ip-адрес не совпадает с предыдущим. Следовательно, если процедура проходит успешно, то в таблицу 2_ip, добавляется новый ip-адрес посетителя.
$res2 = mysql_query("SELECT ip FROM 2_ip WHERE ip = ".$_SERVER['REMOTE_ADDR']." AND id='".$id."'"); if (empty($res2)) { $setchik = $res2["col_prosmot"] + 1; $update_setchik = mysql_query("UPDATE 2_view SET col_prosmot=$setchik WHERE id=$id"); mysql_query("INSERT INTO 2_ip SET ip='".$_SERVER['REMOTE_ADDR']."', id='".$id."'"); }
Итог:
Мы получили четыре уникальных примера, которые теперь Вы можете использовать на своих сайтах, сервисах и т.п. Каждый из которых имеет свою технологию подсчета количества просмотров страницы.
Благодарю Всех за внимание! Читайте, изучайте, делитесь!