Реферат
"Статистика на сайті"
План
Вступ
1. Розгляд фрагментів скрипта
2. Вигляд лічильника у браузері
Вступ
Для будь-якого веб-програміста рано чи пізно постає питання відвідуваності його сайту користувачами. Вже не секрет, що чим більша відвідуваність інтернет-ресурса тим краще для власника сайту. Адже якщо сайт відвідують щоденно багато людей то є більші шанси продати товар, який пропонується на даному сайті, або просто заробити на показі рекламних блоків, банерів, або популярних сьогодні партнерських програмах.
Тому для того щоб можна було взнати кількість відвідувачів сайту на добу і створюють різного роду лічильники хітів і відвідин. Дані лічильники показують скільки чоловік побувало на сайті за добу, та кількість завантажень сторінок сайту(хіти).
Мета цього скрипта – збір статистики на сайті, огляд хітів і відвідувачів. В даній роботі буде створено лічильник, який не накручується при простому перезавантаженні сторінки, натисненні F5, або при перезавантаженні браузера.
Весь лічильник складатиметься з декількох файлів:
1. index.php – сторінка на якій відбувається виклик лічильника
2. counter.php – скрипт з логічними операціями і функціями читання / запису даних
3. img.php – скрипт побудови зображення
4. stat.txt – файл, що містить статистику
1. Розгляд фрагментів скрипта
index.php
Стандартний файл html-коду, що містить, підключений скрипта лічильника <? php include («counter.php’);?> Також в цьому файлі в самому верху сторінки, до тегів необхідно встановити cookie(куки).
<? php setcookie («freshcoder», «count», time()+(24-date('G'))*3600);?>
Перший атрибут у функції (<? php setcookie) несе ім'я cookie, другий атрибут («freshcoder») – значення, яке привласнене цьому імені, тобто якщо виконати echo $_COOKIE['freshcoder'], браузер виведе слово count. Третій атрибут (time()+(24-date('G'))*3600) встановлює час дії cookie, тобто якщо людина зайшла в 10 ранку, нам необхідно встановити cookie на 14 годин. Час дії указується в секундах.
<html>
<head>
<title> Лічильник </title>
</head>
<body bgcolor= «white» text= «black» link= «blue» vlink= «purple» alink= «red»>
<p> Вітаємо Вас на нашому сайті </p>
<? php @include («counter.php»);?>
</body>
</html>
counter.php
Як захист від накрутки використовується умова перевірки наявності cookie на стороні користувача.
Наприклад людина зайшла на сайт о 10 годині ранку, нам необхідно додати одні відвідини і залишити cookie в браузері цієї людини, які діятимуть до 0.00 годин поточного дня.
Логіка скрипта проста, якщо немає куків у користувача, ми накручуємо лічильник на одиницю і пишемо значення у файл, інакше додаємо хіт.
<? php
$url = «counter/stat.txt»;
if (! file_exists($url)) {
// Якщо файлу нема, створюємо його, і записуємо нульове значення
$count = «0:0»;
$handle = fopen ($url, «a»);
fwrite ($handle,$count);
fclose($handle);
}
else {
// Якщо файл є, то працюємо з ним
$data = file($url); // Відкриваєм його
list ($user,$hit) = explode (»:»,$data[0]); // Розбиваємо масив на змінні
if (!$_COOKIE['freshcoder']) {$user++;$hit++;}
else {$hit++;}
$handle = fopen ($url, «w»); // Відкриваємо файл
$count = $user.»:».$hit; // Формуємо строку
if (flock ($handle, LOCK_EX)) { // Закриваємо файл
fwrite ($handle,$count); // Записуємо її в файл
flock ($handle, LOCK_UN); // Відкриваємо файл
} else {
echo «Повторіть пізніше»;
}
fclose($handle);
}
// Виводимо кількість переглядів.
echo '<img src= «img.php? u='.$user.'& h='.$hit.'» alt= «stat» width=
«80» height= «30» border= «0» />';
?>
img.php
Оскільки функція imagestring(), при побудові запису за початок координат використовує верхній лівий кут, то з часом при збільшенні довжини рядка цифр виникне проблема – частина їх буде виходити за рамки зображення. Для того, щоб цього не відбувалося, існують прості умови, які отримують дані, порівнюють їх, і викликають функцію imagestring() із зміненими координатами. Щоб зрозуміти як це відбувається, переглянемо фрагмент коду:
В якості зображення використовується файл формату gif.
Також в скрипті потрібно додати другий рядок для побудови напису. Даний скрипт отримує дані параметром GET, тому брати дані потрібно з суперглобала $_GET.
img.php? u=’.$user.’&h=’.$hit.’ у цьому рядку ми привласнили змінні $_GET['u'] значення $user, а $_GET['h'] – значення $hit. Це дуже простий спосіб передачі параметрів скрипта. Але такий метод не рекомендується використовувати для передачі пароля, або якихось інших важливих даних.
<? php
// Основа для лічильника
$im = ImageCreateFromGif («bg.gif»);</p>
// Колір тексту
$black = imagecolorallocate ($im, 255,255,255);
// Малюємо кількість відвідувачів
if ($_GET['u']>=1 AND $_GET['u']<10) {
imagestring ($im, 2,69,14,$_GET['u'], $black);
}
if ($_GET['u']>=10 AND $_GET['u']<100) {
imagestring ($im, 2,64,14,$_GET['u'], $black);
}
if ($_GET['u']>=100 AND $_GET['u']<1000) {
imagestring ($im, 2,59,14,$_GET['u'], $black);
}
if ($_GET['u']>=1000 AND $_GET['u']<10000) {
imagestring ($im, 2,54,14,$_GET['u'], $black);
}
if ($_GET['u']>=10000 AND $_GET['u']<100000) {
imagestring ($im, 2,49,14,$_GET['u'], $black);
}
// Малюємо кількість хітів
if ($_GET['h']>=1 AND $_GET['h']<10) {
imagestring ($im, 2,69,3,$_GET['h'], $black);
}
if ($_GET['h']>=10 AND $_GET['h']<100) {
imagestring ($im, 2,64,3,$_GET['h'], $black);
}
if ($_GET['h']>=100 AND $_GET['h']<1000) {
imagestring ($im, 2,59,3,$_GET['h'], $black);
}
if ($_GET['h']>=1000 AND $_GET['h']<10000) {
imagestring ($im, 2,54,3,$_GET['h'], $black);
}
if ($_GET['h']>=10000 AND $_GET['h']<100000) {
imagestring ($im, 2,49,3,$_GET['h'], $black);
}
Header («Content-type: image/gif»);
ImageGif($im);
imagedestroy($im);
?>
2. Вигляд лічильника у браузері
Ось і вийшов лічильник для обліку переходів по сторінках і який вказує реальну кількість відвідувачів.
Похожие работы
... инструмент, «не для посторонних глаз». Так что, до тех пор, пока не появился сервис, объединяющий достоинства счетчиков и лог-анализаторов, нам придется пользоваться как тем, так и другим инструментом. Особенности национальной интернет-статистики. Часть 2 В очередной раз приходится писать статью об интернет-статистике, и в очередной раз задаю себе вопрос: «А какой она должна быть, эта ...
... Показатель смертности составил 15,1 человека на 1000 населения; это выше, чем в целом по ДФО (13,7), по Российской Федерации этот показатель составил 14,7 промилле. Для того, что бы проанализировать статистику смертности в Амурской области, в первую очередь требуется рассмотреть коэффициент смертности населения. Общий коэффициент смертности является демографическим коэффициентом, показывает число ...
... сайта на английском языке, а может быть другой версией, возможно, состоящей на первых порах из одной страницы. Глава 2. Проектирование web-сайта образовательного учреждения и размещение его в сети Интернет 2.1 Разработка web-сайта Разработка сайта включает в себя целый комплекс процессов, от которых зависит эффективный конечный результат. Формирование целей и задач сайта. Это первый ...
обирает информацию о вашем ресурсе, анализирует сайт с точки зрения оптимизации, регистрирует сайт на поисковых ресурсах, каталогах и FFA-сетях. Дополнительно программа помогает визуально создавать и редактировать файлы robots.txt, определять рейтинг сайта и его индекс цитирования, и выводит всю обработанную информацию в удобной форме отчетов, то есть выполняет работу, исполнение которой вручную ...
0 комментариев