<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру 2.0

PHP и MySQL с Нуля до Гуру 2.0

Данный курс научит Вас программировать на самом популярном Web-языке в мире - PHP. Курс состоит из 11 разделов, в которых с нуля рассказывается и показывается процесс написания различных скриптов на PHP.

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

Почти к каждому уроку идут упражнения.

Просмотрев данный курс, Вы сможете создавать абсолютно любые PHP-сайты любой сложности.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Помощь со скриптом "кто онлайн"
21.03.2012 20:14:48 Помощь со скриптом "кто онлайн" Сообщение #1
crips

crips

Освоившийся

Освоившийся

Дата регистрации:
18.12.2011 13:05:02

Сообщений: 28

Здравствуйте,Михаил!
Хотел бы у Вас попросить помощи,
на сайте нужно реализовать функцию вывода онлайн пользователей,читал Вашу статью,пробовал скрипты разные и остановился на таком коде:

// Мы не хотим, чтобы поисковые боты искажали статистику:
if(is_bot()) die();
$stringIp = $_SERVER['REMOTE_ADDR'];
$intIp = ip2long($stringIp);
//Подключаемся к БД
mysql_connect("localhost","root",123);
mysql_select_db("counter";
// Проверяем отмечен ли посетитель как "онлайн":
$inDB = mysql_query("SELECT * FROM who_is_online WHERE ip=".$intIp);
if(!mysql_num_rows($inDB))
{
// Этого пользователя нет в БД
mysql_query("INSERT INTO who_is_online SET `ip`='".$intIp."'";
}
else
{
// Если пользователь онлайн, просто внести изменения в значение поля dt:
mysql_query("UPDATE who_is_online SET dt=NOW() WHERE ip=".$intIp);
}

// убираем записи, которые не обновлялись в течении 5 минут:
// добавили лимит, чтобы не сильно тормозил скрипт. Если людей достаточно много, можете лимит сделать меньше вплоть до 1.
// так сайт значительно быстрее работать будет.
mysql_query("DELETE FROM who_is_online WHERE dt<SUBTIME(NOW(),'0 0:05:0') LIMIT 20";

// Подсчитываем всех посетителей онлайн:
$query = mysql_query( "SELECT `ip` FROM `who_is_online`" );
$resalt = mysql_num_rows( $query );
echo $resalt;

Структура таблицы mysql:
CREATE TABLE `who_is_online` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`ip` int(10) NOT NULL DEFAULT '0',
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `ip` (`ip`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Но возникает проблемы,заходя на страницу моя информация записывается в БД и выводит,что 1 пользователь онлайн,но захожу с другого компьютера и с него уже не добавляются данные в БД,как можно это решить?
Профиль Ответить
21.03.2012 20:40:46 Помощь со скриптом "кто онлайн" Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

А этот другой компьютер, случаем, имеет не тот же IP? Если тот же, то тогда он и не должен добавляться.
Профиль Ответить
21.03.2012 22:51:55 Помощь со скриптом "кто онлайн" Сообщение #3
crips

crips

Освоившийся

Освоившийся

Дата регистрации:
18.12.2011 13:05:02

Сообщений: 28

а действительно оказалось,что из за вай фая один айпи,все заработало,спасибо!)
Профиль Ответить