function online()
{
#------Файл online.php
/* ф-я подсчитывает пользователей на линии; возвращает кол-во пользователей в
отформатированном виде, т. е. для вывода результата нужно лишь прописать в
нужном месте типа: echo on_line(); */
$host = "localhost"; // хост, где расположена база данных MySql
$db_name = "forumDB"; // имя базы данных; как правило совпадает с именем юзера
// (переменная ниже) , хотя я категорически против одинаковых
// имен, ориентируясь на защиту.. .
$db_user = "root"; // пользователь, которому разрешен доступ к базе
$db_password = ""; // пароль пользователя
$wine = 60; // точность он-лайн (секунды) ; время, в течении которого
// пользователя, зашедшего на страничку, мы считаем находящимся
// на сайте
$table_online = "online"; // имя таблицы
// делаем доступной глобальную переменную ИП-адреса
if(($REMOTE_ADDR = @$_SERVER['HTTP_X_FORWARDED_FOR']) === null)
$REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];
$REMOTE_ADDR = long2ip(ip2long($REMOTE_ADDR));
// соединяемся с сервером MySQL и выбираем нужную базу
mysql_connect($host,$db_user,$db_password) or die(mysql_error());
mysql_select_db($db_name) or die(mysql_error());
// удаляем всех, кто уже пробыл $wine секунд или у кого ИП текущий
$sql_update = "DELETE FROM $table_online WHERE `unix`+$wine < ".time().
" OR `ip` = '$REMOTE_ADDR'";
$s_update = mysql_query($sql_update) or die(mysql_error());
// вставляем свою запись
$sql_insert = "INSERT INTO $table_online VALUES ('','$REMOTE_ADDR','".time()."')";
$result_insert = mysql_query($sql_insert) or die(mysql_error());
// считаем уников он-лайн
$sql_sel = "SELECT `id` FROM $table_online";
$result_sel = mysql_query($sql_sel) or die(mysql_error());
$online_people = mysql_num_rows($result_sel); // кол-во On-Line пользователей
$online_people = (string) $online_people; // приводим к строковому типу
// (так надо. . см. дальше)
$rain = strlen($online_people) - 1; // номер последнего символа в числе
// on-line юзеров
// форматирование вывода (я все сделал за вас =)
if($online_people[$rain]==2||$online_people[$rain]==3
||$online_people[$rain]==4
||(strlen($online_people)!=1&&$online_people[strlen($online_people)-2]!=1))
// $line - переменная, определяющая формат вывода
$line = "человека"; else $line = "человек";
// возвращаем результат
return "На сайте <strong>".$online_people."</strong>$line";
}
Другие языки программирования и технологии
Нужен простейший счетчик посещений, online посетителей, с помощю MySQL. Или поскажите как написать.
просто заводишь базу в которой будет число пользователей.... а на главную страницу встроить скрипт который берет это значение, ++его и заного записывает.... правда это будет счетчик посещений главной страницы.... если же посложнее, то еще и базу ип заводишь и делаешь проверку, если нету в списке, то добавляешь и счетчик ++.вобщем както так, реализация простая поидее)
Хамзат Цуров
Я нужных функцый не знаю
Похожие вопросы
- Простой поиск при помощи PHP, jQuery и MySQL на ruseller.com
- Подскажите про создание сайтов! Нужен простой сайт с парой страниц, сколько будет стоить и сколько создание по времени
- Срочно нужен простейший графический редактор на JAVA!!!
- Нужна простая программа на подобе фотошопа (рисование кнопок и меню сайта) Есть что то простое и на русском?
- Нужен простой ЯП как для хобби, так и вспомогательный в работе, что то на замену VBA.
- Нужна простая программа для создания фильма с мелких файлов, может хто-то знает где её скачать? Заранее спасибо!!!
- С/С++ зачем нужен простой int, если есть более надежные в диапазоне short, long и long long?
- PHP и MySQL. Пишу вот такой код, как в книге написано, но не работает. В чем причина?
- MySql в чем плюсы? Почему не обойтись?
- Помогите с MySQL