[Решено] Показ кол-ва пользователей онлайн с другого сайта

Автор Шева, 30 января 2009, 03:20:28

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Шева

У меня есть два сайта, движки одинаковые SMF+TP.
Возникла такая идея.

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

Показ доступности сайтов вышло без проблем. А вот такое можно замутить?
И если да то как?

За ранее благодарю.
Каждый человек способен на многое. Но к сожалению, не каждый знает, на что он способен.

Drakonsa

Через SSI о_О На первом сайте делаешь инклд SSI.php со второго сайта и выводишь через  <?php ssi_whosOnline(); ?>

Шева

#2
Вроде как получилось. Только сделал таким образом.
Создал файл на сайте-1 online.php
В нем прописал:<?php require("/.../SSI.php"); ?> 
<?php ssi_whosOnline(); ?>

... (это путь к ssi.php)

Затем на сайте-2 в php блоке прописал: 
include 'http://адрес сайта-1/online.php';

На сайте-2 в блоке начало выводить кто в онлайне сейчас на сайте-1.
Выводит типа так:
5 Гостей, 3 Пользователь
Вася, Петя, Коля


Но, хотелось бы чтобы выводило именно так как в стандартном блоке.
Пользователей: 3
Гостей: 5
Всего: 7


Как можно это замудрить?  :-[
А точнее, какой код нужно прописать в online.php
Каждый человек способен на многое. Но к сожалению, не каждый знает, на что он способен.

Шева

Думаю это все таки не правильно.
Все было хорошо до момента выключения одного из серверов. А после, загрузка странички просто повисла в воздухе. Верней, стала грузиться ну уж очень долго. :(
Видать нужно прописывать еще и условие, если не доступно то... выполнять следующее действие.

Кто поможет с кодом?  :)
Каждый человек способен на многое. Но к сожалению, не каждый знает, на что он способен.

digger®

Цитата: Шева от 30 января 2009, 04:31:54
Вроде как получилось. Только сделал таким образом.
Создал файл на сайте-1 online.php
В нем прописал:<?php require("/.../SSI.php"); ?> 
<?php ssi_whosOnline(); ?>

... (это путь к ssi.php)

Затем на сайте-2 в php блоке прописал: 
include 'http://адрес сайта-1/online.php';

На сайте-2 в блоке начало выводить кто в онлайне сейчас на сайте-1.
Выводит типа так:
5 Гостей, 3 Пользователь
Вася, Петя, Коля


Но, хотелось бы чтобы выводило именно так как в стандартном блоке.
Пользователей: 3
Гостей: 5
Всего: 7


Как можно это замудрить?  :-[
А точнее, какой код нужно прописать в online.php

вместо

<?php ssi_whosOnline(); ?>


сделать


<?php
include ('SSI.php');
$online ssi_whosOnline('array');

echo 
'Пользователей: ' $online['total_users'] - $online['guests'] , '<br />';
echo 
'Гостей:' $online['guests'] , '<br />';
echo 
'Всего: ' $online['total_users'] , '<br />';
?>


Шева

О, спасибо большое!
Как насчет проверки If если нет доступа к файлу online.php
Каждый человек способен на многое. Но к сожалению, не каждый знает, на что он способен.


Шева

#7
digger  Примного благодарен.  O0

И так, сделаем выводы. Как я все сделал. (может кому пригодиться)  ;)

Создаем файл online.php ложим в корень на сайте "SITE-2" следующего содержания:
 
<?php include ("xxx/SSI.php");
$online ssi_whosOnline('array');
echo 
'<span class="smalltext"> Пользователей: ' $online['total_users'] - $online['guests'] , '</span>' ,'<br />';
echo 
'<span class="smalltext"> Гостей: ' $online['guests'] , '</span>' ,'<br />';
echo 
'<span class="smalltext"> Всего: ' $online['total_users'] ,'</span>' ,'<br />';
?> 


xxx - путь к файлу SSI.php

Создаем phpbox блок на сайте "SITE-1" следующего содержания:

echo '<center>''<span class="smalltext">''<b>''Сейчас на сайте SITE-2''</b>''</span>' ,'</center>';
@
$so fsockopen('www.site-2.ua'80$errno$errstr3);
if (
$so)

  include (
'http://site-2.ua/online.php');
 } 
 else 
{
echo 
'<center>''<span class="smalltext"> Нет данных ' '</span>' ,'</center>';
}


Наблюдаем в блоке на "SITE-1" примерно следующее:

Сейчас на сайте SITE-2
Пользователей: 4
Гостей: 5
Всего: 9

digger +1  ;) Еще раз спасибо за помощь!
Каждый человек способен на многое. Но к сожалению, не каждый знает, на что он способен.

Шева

Кстати, а как тут подсветка кода работает? :) Или эта функция только для админов и модеров работает?
Каждый человек способен на многое. Но к сожалению, не каждый знает, на что он способен.


Шева

Каждый человек способен на многое. Но к сожалению, не каждый знает, на что он способен.


Шева

Дело в том что меня смутило не верное отображение русского языка при предосмотре.
Каждый человек способен на многое. Но к сожалению, не каждый знает, на что он способен.


Шева

Вот теперь все ясно и понятно! :)
Пост свой подправил.
Каждый человек способен на многое. Но к сожалению, не каждый знает, на что он способен.

Шева

Заметил только лишь один минус. Время загрузки странички немного увеличивается.
Это связано, я так думаю, с лишним запросом к БД другого сайта.
Можно конечно организовать вывод кто на другом сайте по определенному действию. Скажем только при нажатии на кнопку "Помотреть кто на сайте".   Вот так наверное я и сделаю.
Каждый человек способен на многое. Но к сожалению, не каждый знает, на что он способен.