Колко хора са онлайн


Вероятно много от вас са виждали модерен парче като "Кой е на сайта 126 души, включително 89 в чата." Ако не, сложи брояч на SpyLOG лесно можете да видите колко много хора са на вашия сайт.
Така че аз реших да се реализира подобна функция в своята //ancient.dax.ru сайт и това е, което дойде.
Протоколът HTTP е по принцип невъзможно да се определи броят на посетителите в даден момент са на място. Защо това е така аз не искам да се обясни, но повярвайте ми на пода. Затова излезе с някакъв вид изкуствен начин.

Първото нещо, което трябва, е на база данни (в моя случай MySQL). В тази база данни имаме нужда от маса с два полета потребителско име и път


Създаване на таблица сесия (
потребителско име VARCHAR (25) DEFAULT '' NOT NULL,
време VARCHAR (14) DEFAULT '' NOT NULL
);

Сега можете да започнете написването на сценария, а една функция. По този начин,

mysql_query ( "Изтриване от сесията, където времето <$past");
$ Резултат = mysql_query ( "SELECT време ОТ КЪДЕ сесия потребителско име = '$ потребителско име");

ако ($ ред = mysql_fetch_array ($ резултат)) mysql_query ( "UPDATE сесия SET потребителско име = '$ потребителско име", време =' $ Престъпление "КЪДЕ потребителско име = '$ потребителско име");
> Иначе mysql_query ( "INSERT INTO сесия (потребителско име, време) VALUES ( '$ потребителско име", "$ Престъпление") ");
>

$ Резултат = mysql_query ( "SELECT COUNT (*) FROM сесия");
$ Count = mysql_fetch_array ($ резултат);
ехо $ брои [0];

mysql_query ( "Изтриване от сесията, където времето <$past");
Тази линия Изтриване на всички просрочени записи.

$ Резултат = mysql_query ( "SELECT време ОТ КЪДЕ сесия потребителско име = '$ потребителско име");
Изберете от сферата на база данни, за която съвпада с вече вписан ползвател REMOTE_ADDR.

ако ($ ред = mysql_fetch_array ($ резултат)) mysql_query ( "UPDATE сесия SET потребителско име = '$ потребителско име", време =' $ Престъпление "КЪДЕ потребителско име = '$ потребителско име");
> Иначе mysql_query ( "INSERT INTO сесия (потребителско име, време) VALUES ( '$ потребителско име", "$ Престъпление") ");
>
Ако не съществуват такива записи в таблицата, актуализацията се вписва нов период на влизане в страницата - ако не, да добавите нов запис.


$ Резултат = mysql_query ( "SELECT COUNT (*) FROM сесия");
$ Count = mysql_fetch_array ($ резултат);
ехо $ брои [0];
Смятаме, че от броя на база данни на регистрите - това ще бъде броят на посетителите на сайта.

Directory уебмастър (статии, готови скриптове) //ancient.dax.ru

ElseIf (getenv ( "HTTP_X_FORWARDED_FOR") strcasecmp (getenv ( "HTTP_X_FORWARDED_FOR"), "неизвестно"))
$ Ip = getenv ( "HTTP_X_FORWARDED_FOR");

ElseIf (getenv ( "REMOTE_ADDR") strcasecmp (getenv ( "REMOTE_ADDR"), "неизвестно"))
$ Ip = getenv ( "REMOTE_ADDR");

ElseIf (! празен ($ _ СЪРВЪРА [ 'REMOTE_ADDR']) strcasecmp ($ _ СЪРВЪРА [ 'REMOTE_ADDR "]," неизвестно "))
$ Ip = $ _SERVER [ 'REMOTE_ADDR "];

2. може да ви създаде маса със същото име като адрес скрипт на друг - да се провери внимателно.

Създадена таблица в базата данни, аз поставете кода. В края той пише: ехо "Човек на сайта:" .online () ".";
Аз извежда на сайта:

Внимание: mysql_query () [function.mysql-заявка]: Достъп отказан за потребителя корен '@' Localhost "(като се използва парола: NO) в /home/hdd1.ru/cronica/sites/www/index.php на линия 120
Внимание: mysql_query () [function.mysql-заявка]: връзка към сървъра не може да бъде установена в /home/hdd1.ru/cronica/sites/www/index.php на линия 120
Не можете да изтриете стари sess

Кой знае какво се случва?

Благодаря ви, че работи. Аз отдавна исках да направя така, след като всички :)

Благодаря ви за вашия скрипт, задам леко се трансформира, но основните функции на собствения си!
Avtar molodes)

Браво благодарение ribyata

Хората помагат да schechik на ден в продължение на месец и общо
и макар Шото ред ще бъда благодарен.

Благодаря Sahdow! Сценарият от Sahdow дори Евгени Попов взе за своя урок и дори директно от тази
сайт в урока копиран))

Супер! Наистина работи!
Сложих кода на скрипта от потребителя Sahdow. Тя работи като часовник!
Благодаря.
Между другото Евгени Попов го използва в класната стая, за да се създаде блог.