Голосование
Какую CMS Вы предпочитаете
AtomX
Fapos CMS
Drunya CMS
Топ новостей
- Генератор аватарок в стиле пиксель-арт
- Скачать Fapos CMS 1.1.8 Бесплатно
- Цунами в Японии. Последствия.
- Предварительная инфа о FAPOS 1.1.9. Часть 2
- Описание версии CMS Fapos 0.9.9
- Новая версия Fapos 1.3
- Половина россиян не смогла отличить легальный контент
- Что есть Fapos CMS
- Убийца Apache у вас на пороге
- Открытое тестирование Fapos 0.9.9
Последние комментарии
Топ пользователей
Сайты на AtomX CMS
И так, сразу определимся что наш счетчик будет уметь и делать. В этой статье я решил написать ту часть, которая не совсем то и счетчик(о нем я напишу в следующий раз), а скорее скрипт, показывающий кто онлайн. Скрипт будет показывать сколько гостей и сколько пользователей, прошедших авторизацию онлайн.
Так как мы не можем вести контроль в режиме реального времени, нам надо определится в течении какого времени счетчик будет считать пользователя онлайн. Я взял 10 минут...
теперь надо подумать о том куда мы будем писать временную информацию. Можно было бы использовать базы данных, но для такой задачи это по меньшей мере не разумно. По-этому мы будем писать в файл. Допустим наш файл для счетчика пользователей онлайн будет называться online.da.
Теперь код с подробными комментами
это что касается части подсчета и сохранения. а как же выводить данные? Далее я об этом и расскажу. В теории нам надо открыть файл счетчика, считать данные и затем преобразовать их в нужный нам вид. После этого мы можем вывести их на страницы сайта и любоваться. Тут все гениально просто, так что я сразу приведу код данной части счетчика посещений с подробными комментами.
Вот и весь счетчик, не требующий базы данных. Теперь можно просто выводить данные. Как по отдельности, так и суммировать их, например, чтобы показать общее число людишек онлайн.
Так как мы не можем вести контроль в режиме реального времени, нам надо определится в течении какого времени счетчик будет считать пользователя онлайн. Я взял 10 минут...
1
2
<?php $time_on_line = 10;?>
теперь надо подумать о том куда мы будем писать временную информацию. Можно было бы использовать базы данных, но для такой задачи это по меньшей мере не разумно. По-этому мы будем писать в файл. Допустим наш файл для счетчика пользователей онлайн будет называться online.da.
1
2
<?php $path = 'online.da';?>
Теперь код с подробными комментами
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php $time_on_line = 10;
$path = 'online.da';
//два массива, для гостей и пользователей
$users = array();
$guests = array();
//если файл уже создан, читаем с него инфу
if (file_exists($path) && is_readable($path)) {
//инфа хранится в сериализованном виде(таким образом можно превратить масив в строку)
$data = unserialize(file_get_contents($path));
//теперь мы присваиваем объявленным нами выше массивам данные из файла
$users = (!empty($data['users'])) ? $data['users'] : array();
$guests = (!empty($data['guests'])) ? $data['guests'] : array();
}
//следующие два цикла удаляют из списка онлайн тех кто отсуцтвовал более 10мин.
//поясню: данные у нас хранятся в массивах, где ключ это ID пользователя или IP гостя, а значение это время до которого он будет считаться онлайн
foreach ($users as $key => $user) {
if ($user < time()) unset($users[$key]);
}
foreach ($guests as $key => $guest) {
if ($guest < time()) unset($guests[$key]);
}
//это типо авторизованный юзер
if (!empty($_SESSION['user']['id'])) {
$users[$_SESSION['user']['id']] = time() + $time_on_line * 60);
} else {
//а это гость. $_SERVER['REMOTE_ADDR'] содержит IP адрес
$guests[$_SERVER['REMOTE_ADDR']] = time() + $time_on_line * 60);
}
//теперь сериализуем(превращаем в строку) данные и сохраняем
file_put_contents($path, serialize(array('users' => $users, 'guests' => $guests)));?>
это что касается части подсчета и сохранения. а как же выводить данные? Далее я об этом и расскажу. В теории нам надо открыть файл счетчика, считать данные и затем преобразовать их в нужный нам вид. После этого мы можем вывести их на страницы сайта и любоваться. Тут все гениально просто, так что я сразу приведу код данной части счетчика посещений с подробными комментами.
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php $path = 'online.dat';
$users = 0;
$quests = 0;
//проверяем есть ли и доступен ли файл счетчика
if (file_exists($path) && is_readable($path)) {
//десериализуем. После этого данные будут в виде массива
$data = unserialize(file_get_contents($path));
//считаем количество гостей и юзеров и присваиваем значения переменным
$users = count($data['users']);
$quests = count($data['guests']);
}
//теперь переменные $users и $quests содержат количество соответствующих человеческих единиц онлайн:)?>
Вот и весь счетчик, не требующий базы данных. Теперь можно просто выводить данные. Как по отдельности, так и суммировать их, например, чтобы показать общее число людишек онлайн.
Счетчик посещений на PHP
Теги: SEO; PHP; Счетчики; Оптимизация сайта; раскрутка и маркетинг; программирование;
Теги: SEO; PHP; Счетчики; Оптимизация сайта; раскрутка и маркетинг; программирование;
Сейчас online: 88. Зарегистрированных: 0. Гостей: 88.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Программирование - что может быть проще.
Программирование - что может быть проще.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Написание простого вируса в блокноте
Что такое API и для чего они нужны
Классы в PHP для чайников
Написание простого вируса в блокноте