Колко хора са онлайн
Вероятно много от вас са виждали модерен парче като "Кой е на сайта 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. Тя работи като часовник!
Благодаря.
Между другото Евгени Попов го използва в класната стая, за да се създаде блог.