Schetchiksg.ru

Счетчик СГ
10 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Счетчик просмотров страницы php mysql

Счетчик просмотров страницы php mysql

На некоторых сайтах часто можно увидеть следующую надпись внизу страницы или под статьями: «Всего просмотров xxx. Сегодня xx». На первый взгляд ничего особенного, но все равно, многим интересно, как это сделано.
В этой статье я попробую рассказать вам о том, как устроена данная статистика просмотров страниц сайта, на самом простом примере, написанном на php . Статистика просмотров страниц будет работать на связке MySQL + PHP . Основным отличием этой статистики от других будет то, что MySQL таблица будет занимать очень мало места, но при этом нельзя будет точно сказать какую именно страницу и сколько раз просмотрели. А все из-за того, что все url будут хешированны с помощью php функции md5(), что гарантирует почти 100% неповторяющихся id для каждой страницы сайта. Делается это только для ускорения работы php скрипта (при условии, что индексом является id страницы) и уменьшения размеров MySQL таблицы (за счет отсутствия длинных url).

MySQL таблица будет иметь следующую структуру:
Код

page_id – уникальный id для каждой страницы сайта сгенерированный php функцией md5().
all – значение всех просмотров данной страницы.
today – просмотров страницы сегодня.
date – дата возвращаемая php функцией time() + 24 часа

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

Почти весь php скрипт статистики просмотров для каждой страницы сайта состоит в основном из функций, которые выполняют строго определенную роль. Все функции снабжены комментариями, поэтому, надеюсь, все поймете сами.

PHP код скрипта статистики просмотров страниц сайта:
PHP — Код

/* данные для соединения с MySQL */
$INFO [ ‘sql_host’ ] = «localhost» ;
$INFO [ ‘sql_user’ ] = «username» ;
$INFO [ ‘sql_pass’ ] = «userpass» ;
$INFO [ ‘sql_database’ ] = «my_db» ;

/* проверка, есть ли запись в MySQL */
/* таблице с таким id или ее нет */
function searchID ( $id )
<
$result = mysql_query ( «SELECT * FROM `my_log` WHERE `page_id` LIKE ‘» . $id . «‘» );
$num_rows = mysql_num_rows ( $result );
if ( $num_rows > 0 )
<
return True ;
>
else
<
return False ;
>
>

/* Читает запись из MySQL таблицы */
/* возвращает ассоциированный массив */
function MySQLRead ( $id )
<
$id = addslashes ( $id );
$result = mysql_query ( «SELECT * FROM `my_log` WHERE `page_id` LIKE ‘» . $id . «‘» );
return (array) mysql_fetch_assoc ( $result );
>

/* Обновление времени для конкретной записи */
function UpdateTime ( $id , $time )
<
$id = addslashes ( $id );
$time = addslashes ( $time );
$result = mysql_query ( «UPDATE `my_log` SET `date` = ‘» . $time . «‘ WHERE `page_id` = ‘» . $id . «‘» );
return $result ;
>

Читайте так же:
Поверка счетчиков нормы закона

/* Обновление счетчиков для записи с указанным id */
function UpdateCounders ( $id , $all , $today )
<
$id = addslashes ( $id );
$time = addslashes ( $time );
$result = mysql_query ( «UPDATE `my_log` SET `all` = ‘» . $all . «‘,`today` = ‘» . $today . «‘ WHERE `page_id` = ‘» . $id . «‘» );
return $result ;
>

/* Запись всех значений «По умолчанию» */
function Default_Write ( $id )
<
$id = addslashes ( $id );
$result = mysql_query ( «INSERT INTO `my_log` ( `page_id` , `all` , `today` , `date` ) VALUES (‘» . $id . «‘ , 1 , 1 , ‘» .( time ()+ 60 img src = «images/smilies/60.gif» border = «0» > img src = «images/smilies/24.gif» border = «0» >). «‘);» );
return $result ;
>

$unical_page_id_gid = md5 ( $_SERVER [ ‘REQUEST_URI’ ]); // получение md5() хэша из url страницы

$link = mysql_connect ( $INFO [ ‘sql_host’ ], $INFO [ ‘sql_user’ ], $INFO [ ‘sql_pass’ ]); // Соединение с MySQL
mysql_select_db ( $INFO [ ‘sql_database’ ]); // Выбор базы данных

if (! searchID ( $unical_page_id_gid )) // существует ли запись с таким id
<
Default_Write ( $unical_page_id_gid ); // запись всех значений по умолчанию
>
else // если не существует
<
$tmp = MySQLRead ( $unical_page_id_gid ); // считаем значения
$all = $tmp [ ‘all’ ] + 1 ;
$today = $tmp [ ‘today’ ] + 1 ;
if ( time ()>= $tmp [ ‘date’ ]) // если сутки с момента записи прошли
<
UpdateTime ( $unical_page_id_gid , ( time ()+ 60 img src = «images/smilies/60.gif» border = «0» > img src = «images/smilies/24.gif» border = «0» >)); // обновим дату
UpdateCounders ( $unical_page_id_gid , $all , 1 ); // обновим счетчики
>
else // если еще нет
<
/* обновим счетчики */
UpdateCounders ( $unical_page_id_gid , $all , $today );
>
/* устанавливаем константу с текущими значениями счетчиков */
define ( «Today_and_all_counter» , «Всего просмотров этой страницы: $all . Сегодня: $today » );
>

mysql_close ( $link ); // Разрываем соединение с MySQL

Вот в принципе и весь php скрипт статистики просмотров страниц сайта. Для того, что бы он работал, его нужно «подключить» к нужному вам скрипту, например к index. php , добавив в index. php строчку include(‘ counter. php ‘);. А в том месте, где должно выводиться сообщение о том, сколько человек просмотрело данную страницу – строчку echo Today_and_all_counter;.
Скачать данный php скрипт статистики просмотров страниц сайта и MySQL файл со структурой таблицы можно здесь

Счетчик просмотров страниц с использованием PHP и MySQL?

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

Читайте так же:
Счетчик дней до приказа лето

Вот мой код php ниже.

А вот мой код MySQL.

Раньше это был мой запасной столик.

Это был мой старый счетчик страниц, который я пытаюсь объединить с моим новым счетчиком страниц.

2 ответа

  • Счетчик просмотров страниц sinatra?

Как реализовать счетчик просмотров страниц в Sinatra и Ruby? Я пробовал переменные @@, но они сбрасываются до нуля всякий раз, когда страница загружается. Вот так: http:/ / 148.251.142.233:8080 / Спасибо!

Я пытаюсь сделать простой счетчик просмотров страниц. Каждый раз, когда страница обновляется, число должно увеличиваться на +1. Когда я выполняю код в Phpmyadmin, все работает нормально. Но в php счетчик возвращается, но не увеличивается. Что я сделал не так?

Я бы не рекомендовал вам обновлять базу данных «live». Но лучше используйте mod_log_mysql или проанализируйте файл журнала Apache «offline».

Почему нет? Вы можете задаться вопросом, если у вас будет много посетителей, когда-нибудь загрузка страницы остановится до тех пор, пока база данных не будет обновлена. Или, если на базу данных будет большая нагрузка, обновление остановит загрузку веб-страницы.

И еще один совет: используйте jQuery или javascript, чтобы записать специальный «logevent» в свой журнал apache, чтобы вы не регистрировали все сканеры и т. Д. Я использую следующий код:

Вам нужно добавить поле «path», которое будет содержать путь к вашей странице.

И в своем запросе вы создаете новый пустой счетчик, если он еще не существует. И вы увеличиваете его, если он уже существует.

Похожие вопросы:

Я пытаюсь иметь строку PHP , которая подсчитывает все просмотры страниц на любом заданном посте. Код будет included в каждом посте блога с authorbio.php. Поэтому я хотел бы иметь счетчик просмотров.

Как лучше всего реализовать счетчик просмотров страниц, подобный тому, который можно найти здесь, на этом сайте, где каждый вопрос имеет счетчик Views, использующий PHP и MySQL??

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

Как реализовать счетчик просмотров страниц в Sinatra и Ruby? Я пробовал переменные @@, но они сбрасываются до нуля всякий раз, когда страница загружается. Вот так: http:/ / 148.251.142.233:8080 /.

Я пытаюсь сделать простой счетчик просмотров страниц. Каждый раз, когда страница обновляется, число должно увеличиваться на +1. Когда я выполняю код в Phpmyadmin, все работает нормально. Но в php.

Читайте так же:
Счетчик калорий при упражнениях

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

У меня есть простой счетчик просмотров страниц php, и мне было интересно, как я могу остановить пауков и ботов, которые считаются просмотрами конкретно google bot?

Каков наилучший способ подсчета просмотров страниц для динамических страниц, подобных приведенному ниже примеру url? Я использую PHP и MySQL. Краткое объяснение поможет. Спасибо! http:/ /.

AFAIK @Singleton EJB подходит для подсчета просмотров страниц, с чем-то вроде: @Singleton public class CounterBean < private int hits = 1; // Increment and return the number of hits public int.

Downloads

Представляем вашему вниманию систему контроля посещаемости сайта или, проще говоря, счётчик посещений сайта. Счетчик проводит сбор информации о посетителях сайта, отображает количество хитов и хостов, как по отдельным страницам, так и сайту в целом. Так же выводится распределение хитов и хостов по времени суток и дням.

Счётчик посетителей сайта разработан с использованием PHP, хранение записей осуществляется в базе данных MySQL. Счётчик является достаточно простым, если требуется более мощная система статистики и учёта посещаемости — рекомендуется PowerCounter

Установка счетчика посещений сайта

Для успешного функционирования счётчика, необходимо создать базу данных, в которой нужно разместить таблицы с именами pages и ip. SQL-запрос, создающий эти две таблицы находится в файле counter.sql.

На разных хостингах базы данных создаются по-разному: посредством web-интерфейса, по запросу к администратору, командой SQL (create database guest;). В файле admin/config.php необходимо выставить адрес сервера MySQL ($dblocation), имя базы данных ($dbname), имя пользователя ($dbuser) и пароль ($dbpasswd).

Все четыре переменные вам должен предоставить хостинг, при условии, что он поддерживает MySQL.

Для того, чтобы страница на сайте, при ее посещении, учитывалась счётчиком, необходимо в начало этой страницы включить файл count.php:

как это продемонстрировано в тестовой странице index.php. При первом же посещении этой страницы посетителем, в таблице pages будет создана запись, соответствующая этой странице, и страница будет автоматически включена в систему статистики. Количество подключаемых страниц не ограничено.

Администрирование счетчика посещений

Контролировать посещаемость ресурса можно на странице администрирования счётчика посетителей, расположенной в папке admin (admin/index.php).

На главной странице выводится список страниц, участвующих в сборе статистики, напротив каждой из которых приведёно общее число хитов с момента начала регистрации статистики посещений.

Читайте так же:
Бокс для счетчика энергомера се 101

Переход по каждой из страниц приводит к странице с таблицей, в которой указано количество хитов и хостов за 5 временных интервалов: «Сегодня», «Вчера», «за 7 дней», «за 30 дней» и «за всё время» для данной странице сайта.

Переход по гиперссылкам «Сегодня» и «Вчера» приводит к странице распределения хостов и хитов по часам в эти дни. Соответственно, переход по гиперссылкам «за 7 дней» и «за 30 дней» приводит к таблице с динамикой изменения количества хитов и хостов за неделю и за месяц.

На главной странице администрирования, помимо описанной таблицы, присутствует ссылка на таблицу с количеством хитов и хостов за указанные 5 временных интервалов для всего ресурса в целом. Кроме того, имеется механизм удаления мёртвых ссылок, возникающих в результате редизайна ресурса. Если Вы удаляете страницу подключённую к счётчику посетителей, из структуры Вашего ресурса, не забудьте удалить его из таблицы pages при помощи гиперссылки «Удалить».

Разумеется папка admin должна быть защищена паролем, чтобы случайные посетители не могли уничтожить статистическую информацию о посещении сайта.

Изменения в версии 1.0

  1. Система автоматически определяет адрес сайта на котором производится статистика, в связи с этим переменная $site была исключена из конфигурационного файла.
  2. Исправлена ошибка, заключающаяся в том, что при первом обращении к новой странице сайта, первый для неё хит не учитывался и входил в хиты всего сайта.
  3. Произведена общая оптимизация кода счётчика.

Создание собственного PHP-счетчика посещений веб-сайта

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

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

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

Примечания, прежде чем продолжить:

  • Когда я говорю «основной», это так же просто, как и счетчики посещений. Нет статистики, нет отслеживания ссылок, ничего такого. Просто простой подсчет.
  • Вам нужно знать, как войти на ваш веб-сервер через FTP.
  • Для этого урока используется FTP-клиент Filezillaсвободно доступный клиент, который можно использовать в Windows, Mac OS X или Linux.
  • Предполагается, что вы используете Windows во время этого урока.
  • Рекомендуется создать каталог C: counter на локальном жестком диске, чтобы отслеживать, куда идут дела.
Читайте так же:
Как изменить коэффициент пересчета счетчика

Шаг 1. Создайте каталог счетчик в публичном каталоге на вашем веб-сервере.

Публичный каталог обычно помечается как public_html на большинстве веб-серверов. В этом каталоге создайте каталог с именем счетчик используя Filezilla.

Директория, будучи новой, очевидно пуста, так как у вас еще ничего нет.

Шаг 2. Создайте базу данных плоских файлов локально на вашем компьютере.

Вы можете сделать это с помощью Блокнота Windows, поскольку сама база данных — это не что иное, как текстовый файл.

Создайте текстовый файл с одной строкой:

Это ноль, а не буква О. Сохранить как db.txt

Сохранить как c: counterdb.txt

Шаг 3. Загрузите файл db.txt в каталог счетчиков на вашем веб-сервере.

Используя Filezilla, перейдите в каталог c: counter на локальном компьютере и в каталог counter на веб-сервере. Затем загрузите файл. Вы можете сделать это простым перетаскиванием.

Похоже, это когда-то закончено.

Шаг 4. Измените разрешения db.txt на веб-сервере на «доступный для записи».

Для базы данных (db.txt) должны быть установлены разрешения, чтобы она могла подсчитывать число при каждом «ударе».

Щелкните правой кнопкой мыши файл db.txt на веб-сервере и выберите Атрибуты файла из меню, которое появляется. В появившемся окне установите все флажки и нажмите ОК.

Вы будете знать, что вы успешно включили доступный для записи файл, если разрешения указаны как -rwxrwxrwx (включая тире), например так:

Шаг 5. Счетчик самого скрипта.

Скопируйте приведенный выше текст в новый текстовый файл в блокноте.

Сохраните файл локально как c: countcounter.php

5. Загрузите файл counter.php в каталог counter.

Разрешения можно оставить как есть.

6. Запустите скрипт PHP.

Вы запускаете его, загружая его в веб-браузер. Загрузите

… Замените your-site.com доменом вашего веб-сайта и посмотрите, что произойдет.

какая должен бывает, что вы увидите только номер 1. Если вы обновите страницу, нажав F5, она изменится на 2. Нажмите еще раз, она изменится на 3, 4 и так далее.

7. Встраивание скрипта в другие веб-страницы PHP.

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

Мы можем проверить это, создав еще одну быструю веб-страницу PHP.

Откройте Блокнот и введите следующее:

Здравствуйте, это моя тестовая веб-страница.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector