Приветствую слущай подскажите пожалуйста
вот онлайн вывел все сделал красиво как хотел ну вот не задача проблема с отображением Онлайн и оффлайн сервер онлайн а он либо не чекает либо я дурак
$fp = @fsockopen($servergame, $portgame, $errno, $errstr, 1);
$game = ($fp >= 1) ? 'Online.png': 'offline.png'; //запрос ответа от гейм сервера
вот онлайн вывел все сделал красиво как хотел ну вот не задача проблема с отображением Онлайн и оффлайн сервер онлайн а он либо не чекает либо я дурак
Код:
Код:
<?php
//include "config.php"; // подключаем файл с настройками подключения
class online {
private $config;
private $delay;
private $filename;
private $maxonline;
private $online;
public function __construct() {
// Данные для соединения с базой сервера
$this->config['host'] = 'localhost';
$this->config['user'] = 'root';
$this->config['password'] = '12344321';
$this->config['db'] = 'xf_forum';
//-Настройки отображаения статус сервера-//
$servergame="localhost"; // IP сервера
$portgame="7777"; // Порт игрового сервера [7777]
//Настройки
$this->filename = 'cache.txt'; //имя файла, В нем будет хранится реальный онлайн
$this->delay = 120; // Время обновления онлайна из базы . например для обновления раз в 5 минут необходимо установить значение 300
}
public function get_online()
{
$this->new_online();
$online = ($this->online);
return round($online);
}
private function new_online() {
$last_update = time() - filemtime($this->filename);
if ($last_update > $this->delay) {
$this->online = $this->refresh_online();
$fp = fopen($this->filename, 'w');
fwrite($fp, $this->online);
fclose($fp);
return true;
} else {
$fp = fopen($this->filename, "r");
if ($fp) {
$this->online = fgets($fp, 999);
}
fclose($fp);
return true;
}
}
private function refresh_online() {
$conn = new mysqli($this->config['host'], $this->config['user'], $this->config['password'], $this->config['db']);
$query = "SELECT count(0) FROM `characters` WHERE `online`!=0";
$result = $conn->query($query);
if (!$result) {
return false;
}
$rows = $result->fetch_assoc();
$conn->close();
$result->free();
return $rows['count(0)'];
}
}
class status_bar {
public static function renderWidget(\XF\Widget\AbstractWidget $abstractWidget)
{
$online = new online; // Создает переменную Онлайна
$fp = @fsockopen($servergame, $portgame, $errno, $errstr, 1);
$game = ($fp >= 1) ? 'Online.png': 'offline.png'; //запрос ответа от гейм сервера
return $abstractWidget->renderer('server_widget', [
// Здесь нужно указать параметры, которые нужно отображать в виджете
'online_2' => $online->get_online(), //Выводит Онлайн
'status_1' => $game //гейм сервер
]);
}
}
вот основной код отображения онлайн или оффлайн сервер не могу опнять
$game = ($fp >= 1) ? 'Online.png': 'offline.png'; //запрос ответа от гейм сервера