Итак, мы попытаемся рассмотреть в этой статье основные принципы для построения счетчиков посетителей, а так же попытаемся проанализировать, какой раздел нашего сайта пользуется наибольшей популярностью.
Для работы нам понадобится два файла - первый собственно для самого скрипта и второй для счетчика. Файл счетчика должен содержать следующую информацию: в первой строке начальное значение для загруженных страниц, во второй строке начальное значение для количества уникальных посетителей.
Приступим к написанию сам ого скрипта. Как известно любой php-скрипт начинается с
<?
Заметьте, что перед этими символами нельзя помещать никакую другую информацию (даже пробелы и переводы строк). Это связанно с алгоритмом установкой cookie.
Данная часть кода считывает содержимое файла counter.log в массив строк. Но так как в конце каждой строки содержится символ n и возможно лишние пробелы в начале и конце строки, нам необходимо от них избавиться, что мы и делаем. В итоге получаем массив $counter[] в котором нулевое значение это количество загрузок страниц, а первый элемент - количество уникальных посетителей.
Далее мы пытаемся определить уникальный ли это пользователь или нет. Уникальным в данном случае считается новый пользователь или тот, кто зашел не ранее чем через 1 день с момента последнего посещения (это простая условность, можете изменять по своему усмотрению) . Для этого мы проверяем его cookie на наличие нашей печенки ;) с именем lastvisit. Если таковой нет, мы увеличиваем счетчик загрузок страниц и счетчик уникальных посетителей, а после этого ставим ему нашу печенку с временем жизни 1 день.
$counter[0] = $counter[0]."n";
$counter[1] = $counter[1]."n";
$counter = implode("", $counter);
$fp = fopen($filename, "w");
if ($fp) fwrite($fp, $counter);
fclose($fp);
Приводим наш массив к нужному виду, добавляя перевод строки к каждому элементу, и записываем опять в файл.
Как видите, нет ничего проще, чем написать счетчик посетителей вашего файла. Конечно, данный пример не учитывает тех пользователей у которых запрещена установка cookie (параноики, не правда ли?), но я думаю, что после прочтения данной статьи вам не составит труда его изменить под свои нужды.
Далее мы попытаемся проанализировать в какие разделы нашего сайта чаще забредают пользователи, какие браузеры и ОС они используют и т.д.
$page = $_SERVER["PHP_SELF"];
$qstring = $_SERVER["QUERY_STRING"];
Получаем имя браузера:
if (strstr($_SERVER["HTTP_USER_AGENT"], "Nav")) $browser = "Netscape";
Далее все это следует сохранить в базе данных. Например так:
<code>
function connect_db()
{
global $pass,$login, $database_name;
mysql_connect("localhost",$login,$pass);
$db=mysql_select_db("$database_name");
return $db;
}
connect_db();
mysql_query("INSERT INTO stat VALUES ('$host', '$ip', '$browser', '$os','$referer', '$page', '$qstring', '$date')");
?>
Ну а теперь имея минимальные познания в синтаксисе mysql мы можем получить самую разнообразную информацию. Например, процентное отношение используемых браузеров или популярность разделов. Если вы еще не догадались, как это сделать, я подскажу - определяем общее количество записей в базе и делим на него, скажем, количество скажем пользователей использующих браузер MSIE. Более сложные запросы вы сможете придумать сами.
Посмотреть, как все это работает можно посмотреть как всегда на http://ancient.dax.ru