Метод перший з використанням сесій:, Статистика і лічильники, PHP, статті

<?php
session_start();
if(!session_is_registered(“counted”)){
$agent = $_SERVER[“HTTP_USER_AGENT”];
$uri = $_SERVER[“REQUEST_URI”];
$user = $_SERVER[“PHP_AUTH_USER”];
$ip = $_SERVER[“REMOTE_ADDR”];
$ref = $_SERVER[“HTTP_REFERER”];
$dtime = date(“r”);
if($ref == ""){
$ref = "None";
}
if($user == ""){
$user = "None";
}
$entry_line = "$dtime – IP: $ip | Agent: $agent | URL: $uri
| Referrer: $ref | Username: $user n";
$fp = fopen("logs.txt", "a");
fputs($fp, $entry_line);
fclose($fp);
session_register(“counted”);
}
?>

Тепер давайте пройдемося по окремих частинах коду:

session_start();

Тут ми запускаємо механізм сесій, ця строчка просто необхідна, адже в представленому прикладі ми будемо вести облік користувачів, “не врахованих” сесією.

if(!session_is_registered(“counted”)){

Тут ми перевіряємо чи існує сесія з ім’ям “counted”, якщо ні, то виконуємо що йде за цим рядком код.

$agent = $_SERVER[“HTTP_USER_AGENT”];
$uri = $_SERVER[“REQUEST_URI”];
$user = $_SERVER[“PHP_AUTH_USER”];
$ip = $_SERVER[“REMOTE_ADDR”];
$ref = $_SERVER[“HTTP_REFERER”];
$dtime = date(“r”);

А ось вже в цьому шматку коду ми оголошуємо список змінних, які в свою чергу звертаються до глобальних змінних, мабуть, не варто описувати роботу всіх їх, лише скажу про функції оних.

f(!$ref){ $ Ref = “Ні”;
}
if(!$user){ $ User = “Ні”;
}

Якщо людина прийшла на ваш сайт, просто набравши в адрестой рядку браузера ваш адреса і він не зареєстрований, то в цьому випадку в балці буде записано “Ні”.

$entry_line = "$dtime – IP: $ip | Agent: $agent | URL: $uri
| Referrer: $ref | Username: $user n";
$fp = fopen("logs.txt", "a");
fputs($fp, $entry_line);
fclose($fp);
session_register(“counted”);

В останньому шматку коду – ми записуємо відповідну інформацію в файл logs.txt. Всі скрипт статистики готовий!

Спосіб другий – без використання сесій.


У другому способі ми не будемо використовувати сесії, тобто кожен хіт користувача буде заноситься в ваш лог файл. Якщо відвідуваність вашого ресурсу висока – то не раджу застосовувати цей спосіб, хоча за допомогою його ви отримуєте повну картину відвідуваності вашого сайту.

<?php
$agent = $_SERVER[“HTTP_USER_AGENT”];
$uri = $_SERVER[“REQUEST_URI”];
$user = $_SERVER[“PHP_AUTH_USER”];
$ip = $_SERVER[“REMOTE_ADDR”];
$ref = $_SERVER[“HTTP_REFERER”];
$dtime = date(“r”);
if($ref == ""){
$ref = "None";
}
if($user == ""){
$user = "None";
}
$entry_line = "$dtime – IP: $ip | Agent: $agent | URL: $uri
| Referrer: $ref | Username: $user n";
$fp = fopen("logs.txt", "a");
fputs($fp, $entry_line);
fclose($fp);
?>

Практично теж саме, що і в першому способі – тому зупинятися на ньому ми не будемо.

Даний скрипт можна модернізувати таким чином, щоб, наприклад, кожні 24 години – інформація з нього відсилалася власникові ресурсу, а сам він очищався, але це вже зовсім інша історія …

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*