Безличный stats html.
Пожалуй, одна из самых сложных, но в то же время обыденных, задач программиста является создание статистики посещений на PHP . В этой статье я покажу, как её можно сделать наиболее качественной.
Главная задача статистики посещений - это отличить одного пользователя от другого. Но как это сделать? К сожалению, это вообще невозможно. Если различать по IP , то ничего не выйдет. У огромного числа пользователей он динамический. Более того, у разных людей они повторяются. В итоге, 2 разных IP могут принадлежать одному человеку , а один и тот же IP может принадлежать разным людям .
Второй вариант - это отличать по cookie . Пожалуй, это лучший способ на данный момент. Безусловно, при смене браузера или очистки браузера от cookie , пользователь потеряется. Но другого выхода нет, поэтому лично я при статистике посещений на PHP всегда ключевым делаю именно cookie.
На основании этого давайте с Вами разберём, какая таблица в базе нам потребуется. Вот те поля, которые я считаю необходимы для хорошей статистики посещений на PHP :
- id - уникальный идентификатор.
- userhash - cookie пользователя. Данное поле по сути и является ключевым при различении пользователей.
- ip - IP-адрес пользователя.
- uri - страница, на которую пришёл посетитель. Например, /page.html .
- ref - адрес, с которого пришёл посетитель.
- date - дата посещения.
Теперь разберём PHP-код добавления в эту таблицу новой записи:
$userhash = $_COOKIE["userhash"]; // Узнаём, что за пользователь
if (!$userhash) {
/* Если это новый пользователь, то добавляем ему cookie, уникальные для него */
$userhash = uniqid();
setcookie("userhash", $userhash, 0x6FFFFFFF);
}
$ip = ip2long($_SERVER["REMOTE_ADDR"]); // Преобразуем IP в число
$uri = $_SERVER["REQUEST_URI"]; // Узнаём uri
$ref = $_SERVER["HTTP_REFERER"]; // Узнаём, откуда пришёл
$date = time(); // Берём текущее время
$mysqli = new mysqli("localhost", "root", "", "mydb"); // Соединяемся с базой
$mysqli->query("INSERT INTO `visits` (`userhash`, `ip`, `uri`, `ref`, `date`) VALUES ("$userhash", "$ip", "$uri", "$ref", "$date")"); // Добавляем запись
$mysqli->close(); // Закрываем соединение
?>
Безусловно, данный код надо размещать на всех страницах сайта. И так же он может быть и изменён в зависимости от Вашего движка. Также можно добавлять и другие данные, например, браузер пользователя , ОС и прочее.
И, конечно, данная статистика посещений на PHP не идеальна, но не думаю, что есть лучше. А уж идеала точно нет. В любом случае, если Вам нужно отслеживать пользователя на длительном периоде, то лучше как можно быстрее зарегистрировать его на сайте, а уже дальше отслеживать все его действия по полученному id . И вот это уже будет идеальная статистика.
Компания Google провела масштабное статистическое исследование различных аспектов HTML-синтаксиса на выборке из более чем 1 млрд. веб-страниц (code.google.com/webstats/index.html).
Собиралась и анализировалась информация о самых популярных названиях классов, элементах, атрибутах и метаданных. Хотя сам по себе HTML является четко формализованным языком, но использовать его можно по-разному. Подобные исследования показывают, каким образом авторы используют HTML, как предпочитают оформлять текст, какие самые распространенные ошибки и т.д.
Согласно статистике Google Web Authoring Stats, средняя веб-страница в Сети содержит 19 элементов разного типа.
Около 98% всех веб-страниц содержат элементы
, ,После этих четырех самым популярным элементом является . Почти во всех случаях вместе с этим элементом используется атрибут "href", а в более чем половине страниц - атрибут "target".
Вот список других элементов в
порядке убывания их популярности:
(кстати, на 24% изображений
отсутствует тег После "href" и "target" самым
популярным атрибутом является
"border" для изображений и таблиц,
затем "height" и "width" для
изображений и различные параметры
разметки таблиц. Для элемента самыми
популярными атрибутами являются
"xmlns", "lang", "xml:lang" и
"dir". Анализ веб-страниц показывает,
что очень часто в синтаксисе HTML
встречаются ошибки. Это и
бессмысленные, и странные атрибуты.
Например, многие авторы включают в
код страницы совершенно
бессмысленный атрибут
"revisit-after" для ,
вероятно, чтобы дать указание
роботу поисковой системы. Но ни
одна крупная поисковая система не
поддерживает эту команду. В итоговом документе много
интересных фактов. Например,
оказывается, тег Еще один интересный факт:
в интернете огромное количество
страниц, в которых упоминается
элемент Интересна статистика по
редакторам, загрязняющим HTML-код
своими нестандартными тегами.
Повсеместно в интернете
встречаются следы GoLive - это
огромное количество тегов Конечно, GoLive не одинок. Например, в
Сети чаще встречается
нестандартный тег Сбор данных проходил в декабре 2005
г. Для просмотра аналитического
отчета в онлайне требуется браузер
с поддержкой SVG и CSS, чтобы корректно
отображать графики. Лучше всего
использовать Firefox 1.5. Анатолий АЛИЗАР
. На десятом и последующих
местах расположились ,
и .
популярнее,
чем , но отсутствует
элемент
. То есть имеется
таблица, но отсутствуют ячейки.
, а также
. Кроме
того, много элементов