Среда, 24 Апреля 2024, 08:22

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Программирование » Скриптовые языки программирования » Онлайн ли сервер? (В помощь онлайн-разработчикам)
Онлайн ли сервер?
ФилДата: Среда, 08 Июня 2011, 14:21 | Сообщение # 1
Томатный революционер
Сейчас нет на сайте
Онлайн ли сервер?



Описание:
Баннер, который вы видите сверху (уже не видите по причине замены хостера) является динамической картинкой. Короче говоря php скрипт, который создает эту картинку, достает данные из текстового документа.
Если вы включили сервер или изменили ip сервера, то можно просто прописать это в текстовом документе, который находится на сайте и баннер автоматически изменится. Теперь нет надобности заходить на все форумы и редактировать свое сообщение. Пользуйтесь smile

А как собственно пользоваться?
Создаем server_info.php и пишем:
Код
<?php
      $handle = fopen("./server_info.txt", "r");
      $status = fgets($handle);
      $ip = fgets($handle);
      fclose($handle);
      if ($status == 0)
      {
      $status = "offline";
      }
      else
      {
      $status = "online";
      }
      $i = imagecreatefrompng("./background.png");
      $color = imageColorAllocate($i, 0, 0, 0);
      imagettftext($i, 11, 0, 10, 16, $color, "./corbel.ttf", iconv("windows-1251", "UTF-8", "Статус сервера: ".$status));      
      imagettftext($i, 11, 0, 10, 31, $color, "./corbel.ttf", iconv("windows-1251", "UTF-8", "IP сервера: ".$ip));
      Header("Content-type: image/png");
      imagepng($i);
      imageDestroy($i);
?>


Теперь создаем server_info.txt и прописываем туда:
Код
0
92.119.151.132

Первая строчка - это статус сервера. 0 - выкл. 1 - вкл.
Вторая - ip сервера.
Показывать картинку тоже очень просто:

BB коды
Код
[img]http://error-games.ru/php_scripts/check_server/image.php[/img]

Html
Код
<img src = "http://error-games.ru/php_scripts/check_server/image.php">


Автор: Я


Сообщение отредактировал Фил - Среда, 30 Января 2013, 09:03
OleGoNДата: Среда, 08 Июня 2011, 14:35 | Сообщение # 2
Game Maker User
Сейчас нет на сайте
Quote (Фил)
Если вы включили сервер или изменили ip сервера, то можно просто прописать это в текстовом документе, который находится на сайте и баннер автоматически изменится.

Ааа... вот блин а я то думал сам менятся будет... sad


VinchensooДата: Среда, 08 Июня 2011, 14:41 | Сообщение # 3
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (OleGoN)
Ааа... вот блин а я то думал сам менятся будет...

Как сам?) По волшебству? Сделайте при включении и выключении сервера редактирование файла, ip машины, где стоит сервер, тоже легко получить, скрипт полезен, чтобы не ползать по всем форумам(да и на официальном сайте проекта, где нет поддержки пыха).

Плюсик Фил-у


ФилДата: Среда, 08 Июня 2011, 14:48 | Сообщение # 4
Томатный революционер
Сейчас нет на сайте
OleGoN, все в твоих руках)
Vinchensoo, ^^
IIIypukДата: Воскресенье, 26 Июня 2011, 00:52 | Сообщение # 5
-- ArchLinux Fan --
Сейчас нет на сайте
Спасибо!

Одинокий юзер
AGENTX001Дата: Воскресенье, 26 Июня 2011, 16:24 | Сообщение # 6
почётный гцупер
Сейчас нет на сайте
OleGoN, ну вот значит моямелкая наработка, чуток присобачить к примеру Фила=)
Кол-во игроков, вывод на сайт (пример)
vaanДата: Понедельник, 01 Августа 2011, 06:32 | Сообщение # 7
частый гость
Сейчас нет на сайте
А можно организовать подобное на ajax??
VinchensooДата: Понедельник, 01 Августа 2011, 08:47 | Сообщение # 8
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (vaan)
А можно организовать подобное на ajax??

Можно, но зачем?


vaanДата: Понедельник, 01 Августа 2011, 11:13 | Сообщение # 9
частый гость
Сейчас нет на сайте
Было бы неплохо, если бы кто-нить написал такой же скрипт, как и в первом посте, но с использованием аякса( чтобы смена статуса сервера происходила без перезагрузки страниц)
GameMixДата: Четверг, 04 Августа 2011, 12:02 | Сообщение # 10
старожил
Сейчас нет на сайте
У меня не отображается картинка. Что делать?

Steel Standoff - 2D аркада.
Мои статьи
VinchensooДата: Четверг, 04 Августа 2011, 12:20 | Сообщение # 11
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Пути все правильно изменил?

Master_ChiefДата: Четверг, 04 Августа 2011, 12:36 | Сообщение # 12
Shoot Space creator
Сейчас нет на сайте
Quote (Vinchensoo)
Как сам?) По волшебству? Сделайте при включении и выключении сервера редактирование файла, ip машины, где стоит сервер, тоже легко получить, скрипт полезен, чтобы не ползать по всем форумам(да и на официальном сайте проекта, где нет поддержки пыха).


Quote (Vinchensoo)
Quote (vaan)
А можно организовать подобное на ajax??

Можно, но зачем?


Винч, не будь дураком, способ предложенынй ТС - крайне неудачный. Есть вариант куда более лучший, если например залить на какой-нить хостинг скрипт, который раз в n секунд пингует твой сервер, и, в зависимости от получаемого ответа, выдаёт ту или иную картинку, причём необязательно делать эту картинку - достаточно отправить соответствующий заголовок. А если на машине, на которой крутиться сервер ещё и крутиться веб сервер, то можно вместо пинга отправлять GET запрос на него, а назад получать json-ответ в котором не только статус сервера, но и любая другая инфа

Было бы время - накидал бы примерчик. Обычный кроссдоменный запрос, и никакого волшебства тут совершенно не нужно


VinchensooДата: Четверг, 04 Августа 2011, 13:01 | Сообщение # 13
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (Master_Chief)
Винч, не будь дураком, способ предложенынй ТС - крайне неудачный. Есть вариант куда более лучший, если например залить на какой-нить хостинг скрипт, который раз в n секунд пингует твой сервер, и, в зависимости от получаемого ответа, выдаёт ту или иную картинку, причём необязательно делать эту картинку - достаточно отправить соответствующий заголовок. А если на машине, на которой крутиться сервер ещё и крутиться веб сервер, то можно вместо пинга отправлять GET запрос на него, а назад получать json-ответ в котором не только статус сервера, но и любая другая инфа

И чем это принципиально отличается, кроме кучи умных слов, от которых у нубов потекет мозг из ушей?

При запуске сервера- получаем ip, меняем статус на онлайн в текстовом файле- далее используем приведенный скрипт.

Quote (Master_Chief)
Было бы время - накидал бы примерчик. Обычный кроссдоменный запрос, и никакого волшебства тут совершенно не нужно


Так накидай, какие проблемы? Фил сделал хотя бы что-то для тех, у кого нет поддержки php, кто вообще не понимает сути веб-сервера и держит свой сайт на юкозе.

Причем это же можно юзать и на форумах, гостевых, блогах и проч.

Как правило, для любой задачи существует 3 решения. Зачем поливать работающий вариант жижей- мне не понятно.


GameMixДата: Четверг, 04 Августа 2011, 13:51 | Сообщение # 14
старожил
Сейчас нет на сайте
Quote (Vinchensoo)
Пути все правильно изменил?

Да, проверил несколько раз. Просто значок грузит такой, как у ТС вместо картинки.


Steel Standoff - 2D аркада.
Мои статьи
AkyltistДата: Четверг, 04 Августа 2011, 14:12 | Сообщение # 15
заслуженный участник
Сейчас нет на сайте
Quote (Vinchensoo)
И чем это принципиально отличается, кроме кучи умных слов, от которых у нубов потекет мозг из ушей?

способ не самый удачный, в работоспособности то никто и не сомневается. (не спорь с чифом!!!)

Quote (Фил)
$handle = fopen

по нормативам не хватает

a) file_exists - для проверки существования файла
b) is_readable - для проверки прав на чтение
с) обвязки на доступ и паррированию очереди файлового буфера

Code
@flock($handle,LOCK_EX);
....
@fflush($handle);
@flock($handle,LOCK_UN);


PS: все это не обязательно, по со соображениям надо бы...

Quote (Фил)
 $i = imagecreatefrompng

так же стоило бы проверять возможность создания изображения.

Code
Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); //Дата в прошлом    
Header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1    
Header("Pragma: no-cache"); // HTTP/1.1    
Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");

так же стоило бы добавить во избежание кеширования изображения

а так, работает и ладно).
ФилДата: Четверг, 04 Августа 2011, 22:07 | Сообщение # 16
Томатный революционер
Сейчас нет на сайте
Akyltist, да я же в php нуб полнейший :D Мне все эти нюансы в новинку.
аТнОтХоАн, где скрипт размещали?
*у меня картинка не отображается, потому что сайт лежит*


Сообщение отредактировал Фил - Четверг, 04 Августа 2011, 22:08
vaanДата: Пятница, 05 Августа 2011, 14:13 | Сообщение # 17
частый гость
Сейчас нет на сайте
Вопрос остаётся открытым, кто-нибудь может накатать с помощью аякса?
GameMixДата: Пятница, 05 Августа 2011, 17:39 | Сообщение # 18
старожил
Сейчас нет на сайте
Фил, в папке на компе, потом сделал для неё общий доступ через прогу "HFS". Например, картинка, на gcup'е отображается, когда мой комп включен, а когда нет - соответственно, не отображается. Вот, посмотри.

Steel Standoff - 2D аркада.
Мои статьи
ФилДата: Пятница, 05 Августа 2011, 17:48 | Сообщение # 19
Томатный революционер
Сейчас нет на сайте
аТнОтХоАн, попробуй еще раз. Я код чуть-чуть обновил.
GameMixДата: Пятница, 05 Августа 2011, 18:07 | Сообщение # 20
старожил
Сейчас нет на сайте
Фил, Ок happy .

Добавлено (05.08.2011, 18:07)
---------------------------------------------
Я "0" в PHP, поэтому можно понять, почему у меня ничего не получается.

Вот у меня папка "serv". В ней лежат все файлы. Я изменил под себя этот скрипт:
Code
<?php   
     $handle = fopen("http://169.254.175.179/serv/server_info.txt", "r");   
     $status = fgets($handle);   
     $ip = fgets($handle);   
     fclose($handle);   
     if ($status == 0)   
     {   
     $status = "offline";   
     }   
     else   
     {   
     $status = "online";   
     }   
     $i = imagecreatefrompng("http://169.254.175.179/serv/background.png");   
     $color = imageColorAllocate($i, 0, 0, 0);   
     imagettftext($i, 11, 0, 10, 16, $color, ".http://169.254.175.179/serv/timesbd.ttf", iconv("windows-1251", "UTF-8", "Статус сервера: ".$status));     
     imagettftext($i, 11, 0, 10, 31, $color, "http://169.254.175.179/serv/timesbd.ttf", iconv("windows-1251", "UTF-8", "IP сервера: ".$ip));   
     Header("Content-type: image/png");   
     imagepng($i);   
     imageDestroy($i);   
?>

Даже картинка фон авто-статуса не отображается sad .

Что я не так делаю?


Steel Standoff - 2D аркада.
Мои статьи


Сообщение отредактировал аТнОтХоАн - Пятница, 05 Августа 2011, 18:08
Форум игроделов » Программирование » Скриптовые языки программирования » Онлайн ли сервер? (В помощь онлайн-разработчикам)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг