Пишем Скрипт Выводящий Количество Пользователей, Находящихся На Сайте Php. Кто Он-Лайн
Добавлено: natali2306 | 06.07.2011 |
На самом деле, узнать, кто находится на сайте в данный момент – невозможно. Но не торопитесь закрывать эту статью и ругаться самыми разнообразными словами. Есть решение этой проблемы – отслеживать, кто загружал страницы в течение некоторого времени. Именно этим и занимается этот скрипт.
Для идентификации пользователя используется его внешний/внутренний ip-адреса и данные о системе.
Для начала создадим файл под названием online.php
Заполняем этот файл следующим содержимым. Не забудьте читать коментарии:
//Количество минут, в течении которых пользователи считаются находящимися "он-лайн"
$time=5;
//Область данных, следующая строчка ОБЯЗАТЕЛЬНО должна быть шестой в этом файле
$online='a:1:{i:0;s:43:"0015e4fd3c04b687726adceced4ddc4f|1294597134";}';
$online=unserialize($online);
//Установка кодировки windows-1251
header('Content-Type: text/html; charset=windows-1251');
//Окончания "числительных"
$users = array('пользователей', 'пользователь', 'пользователя');
//Антикеширование
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
//Определение внешнего и внутреннего ip-адресов
$ip[0]=$_SERVER['REMOTE_ADDR'];
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$ip[1]=$_SERVER['HTTP_X_FORWARDED_FOR'];
else
$ip[1]='';
//Получаем данные броузера
$browser=$_SERVER['HTTP_USER_AGENT'];
//Получаем хеш из данных о пользователе
$user=md5($ip[0].$ip[1].$browser);
//Приделываем к хешу время последней активности
$str=$user."|".time();
//В цикле "убираем" всех устаревших пользователей
for($i=0;$i
{
$tmp=explode("|",$online[$i]);
$online2[$i]=$tmp[0];
$t=@$tmp[1];
if($t
{
unset($online[$i]);
}
else
{
if($online2[$i]!=$user)
{
$online3[]=$online[$i];
}
}
}
$online=@$online3;
$online[]=$str;
//Выводим количество
$count=count($online);
echo '[removed]("'.$count.'");'."\n";
//Выводим слово "пользовател.." с нужным окончанием
if(isset($_GET['usr']))
{
$index = $count % 100;
if ($index >=11 && $index 2 ? 2 : $index): 0;
echo '[removed](" '.$users[$index].'");'."\n";
}
//Читаем этот файл и обновляем шестую строчку
$file=file("online.php");
$file[5]='$online=\''.serialize($online).'\''.";\n";
//Проверяем на доступность для записи и, в случае успеха, записываем обновленные данные.
if(is_writable("online.php"))
{
$f=fopen("online.php","w");
flock($f,LOCK_EX);
fwrite($f,join("",$file));
flock($f,LOCK_UN);
fclose($f);
}
else
{
echo '[removed]("Check file permissions!");'."\n";
}
?>
Скрипт готов к работе, для проверки создадим файл example.html со следующим кодом:
Кто он-лайн
Теперь когда мы запустим файл example.html он выведет нам на экран список пользователей зашедших на сайт в течении 5 минут. Время можно изменить в файле online.php.
Подключение скрипта на страницу:
Для интегрирования скрипта в ваш веб-сайт используется java-script.
Что бы вставить кол-во пользователей – добавьте на вашу страницу в нужное место такой код:
В результате – в это место будет вставлена цифра, соответствующая количеству пользователей
Вы так же можете использовать такой код:
В результате – в это место будет вставлена цифра и слово «пользовател..» с нужным окончанием.
Или же если вы хотите вставить скрипт в php код, то используйте:
Надеюсь данный скрипт кому то пригодится.
Удачи!
Об авторе
http://vsenet.tk/
Условия перепечатки
При репосте статьи "Пишем Скрипт Выводящий Количество Пользователей, Находящихся На Сайте Php. Кто Он-Лайн", пожалуйста укажите источник - сайт http://www.iphosting.ru/ (Платный профессиональный хостинг) — и информацию об авторе.Смотрите также
Особенности Компьютерной Верстки Полимерных И Резиновых Печатей:часть 3, Шрифты
Шрифты
Итак, нам надо набрать печать по оттиску. Мы отсканировали лист, где была проставлена печать или получили отсканированное изображение по электронной почте, импортировали в CorelDraw и теперь нам нужно создать точную векторную копию. Оттиск выравниваем так, чтобы печать стояла прямо (низом печати может быть звездочка, наименование города: МОСКВА, САРАТОВ и т.д.), а название фирмы располагалось бы строго горизонтально. Оттиск можно заблокировать, чтобы он не смещался при дальнейших манипуляциях – ведь копия будет набираться поверх растрового изображения.
Особенности Компьютерной Верстки Полимерных И Резиновых Печатей И Штампов – Часть 2
Почему фотополимерная печать получается жирной?