strlen online



Автор Владимир задал вопрос в разделе Другие языки и технологии

Нужен простейший счетчик посещений, online посетителей, с помощю MySQL. Или поскажите как написать. и получил лучший ответ

Ответ от Андрей Шилкин[эксперт]
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";
}

Ответ от Skippi[эксперт]
просто заводишь базу в которой будет число пользователей.... а на главную страницу встроить скрипт который берет это значение, ++его и заного записывает.... правда это будет счетчик посещений главной страницы.... если же посложнее, то еще и базу ип заводишь и делаешь проверку, если нету в списке, то добавляешь и счетчик ++.вобщем както так, реализация простая поидее)

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Нужен простейший счетчик посещений, online посетителей, с помощю MySQL. Или поскажите как написать.

Выбор стиральной машины LG
плюй на отзывы, 90% отзывов пишут рукожопы, которые обычной теркой пользоваться не умеют не то, что
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*