Перейти к публикации

myxa59rus

новички
  • Публикации

    7
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем myxa59rus

  1. Антивир ругается именно на engineengineincincludeinit.php у меня стоит версия движка 9.6 и как патч прикрутить который преднозначен для 9.7 к нему я незнаю. Где можно взять 9.6 движок?

    Сменил все пароли, заменил фаил не помогло, напишите что делать, желательно тут.

  2. Всем привет! Столкнулся с такойц проблемой на сайте выскакивает предложение установить какуюто програму и антивирус сразу же ругается как на троянскую, было много обновлений или патчей по безопасности, но к сожалению я все игнорил( работало же ) вот щас незнаю что делать и где взять патч и ваще как исправить все, помогите!

    скрин: 123.png

  3. Вот опять проблемы!

    Не работают скрипты, вот пример http://perm59cs.ru/?do=monitor должна быть рамка с фото списвом игроков при нажатии+ ставили другой мониторинг серверов, он ваще крашить все призаходе на сайт проста выдаёт ошибку Fatal error: [] operator not supported for strings in /home/admin/data/www/perm59cs.ru/engine/modules/ServerMon/init.php on line 153 сам фаил код:

    код второго мониторинга

    
    <?php
    
    class ServerMon {
    
    	private static $timeout = 1;
    
    	private static $servers;
    
    	private static $imDir;
    
    	private static $csDir;
    
    	private static $cssDir;
    
    	public static function run() {
    
    		global $tpl, $js_array, $member_id, $metatags, $config;
    
    		self::$imDir = '/engine/modules/ServerMon/images';
    
    		self::$csDir = '/engine/modules/ServerMon/maps/cs';
    
    		self::$cssDir = '/engine/modules/ServerMon/maps/css';
    
    
    		self::$servers = @unserialize(file_get_contents(ENGINE_DIR . '/modules/ServerMon/data/servers.php'));
    
    		if(isset($_POST['getPlayers']) && isset($_POST['server']) && !empty($_POST['server'])){
    
    			@header( "Content-type: text/html; charset=utf-8" );
    
    			echo '<div id="ServerMonPlayers" title="' . iconv("CP1251", "UTF-8", "Список игроков на сервере ") . htmlentities($_POST['server']) . '">';
    
    			echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
    
    			$players = self::getPlayers($_POST['server']);
    
    			if(!is_array($players)) $players = array();
    
    			echo '<table width="100%" border="1">';
    
    			echo iconv("CP1251", "UTF-8", '<tr><td>&nbsp;№</td><td>&nbsp;Ник</td><td>&nbsp;Килов:</td><td>&nbsp;На сервере:</td></tr>');
    
    			foreach($players as $num => $player){
    
    				echo '<tr>
    
    				<td>&nbsp;' . $num . '</td>
    
    				<td>&nbsp;' . htmlspecialchars($player['name'], ENT_NOQUOTES, "UTF-8") . '</td>
    
    				<td>&nbsp;' . $player['score'] . '</td>
    
    				<td>&nbsp;' . $player['time'] . '</td>
    
    				</tr>';
    
    			}
    
    			echo '</table></div>';
    
    		} elseif(isset($_POST['getSettings']) && isset($_POST['server']) && !empty($_POST['server'])){
    
    			@header( "Content-type: text/html; charset=utf-8" );
    
    			echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
    
    			echo '<div id="ServerMonSettings" title="' . iconv("CP1251", "UTF-8", "Настройки сервера ") . htmlentities($_POST['server']) . '">';
    
    			$settings = self::getSettings($_POST['server']);
    
    			if(!is_array($settings)) $settings = array();
    
    			$num = 1;
    
    			echo '<table width="100%" border="1">';
    
    			echo iconv("CP1251", "UTF-8", '<tr><td>&nbsp;№</td><td>&nbsp;Название</td><td>&nbsp;Значение:</td></tr>');
    
    			foreach($settings as $setting => $value){
    
    				echo '<tr>
    
    				<td>&nbsp;' . $num . '</td>
    
    				<td>&nbsp;' . htmlspecialchars($setting, ENT_NOQUOTES, "UTF-8") . '</td>
    
    				<td>&nbsp;' . htmlspecialchars($value, ENT_NOQUOTES, "UTF-8") . '</td>
    
    				</tr>';
    
    				$num++;
    
    			}
    
    			echo '</table></div>';
    
    		} elseif(isset($_GET['iframe']) && isset($_GET['server']) && !empty($_GET['server'])){
    
    				if(!(bool)preg_match('/[A-Za-z0-9.-_]:[0-9]/', $_GET['server'])){
    
    					die('Сервер имеет неверный формат!');
    
    				}
    
    				$serv = explode(':', $_GET['server']);
    
    				$server = self::getInfo($_GET['server']);
    
    
    				if(!$server){
    
    					$server['ip'] = $serv[0];
    
    					$server['port'] = $serv[1];
    
    					$server['offline'] = true;
    
    				}
    
    
    				$monTpl = new dle_template;
    
    				$monTpl->dir = ENGINE_DIR . '/modules/ServerMon';
    
    				$monTpl->load_template('iframe.tpl');
    
    
    				if($server['offline']){
    
    					$monTpl->set_block("'\[offline\](.*?)\[/offline\]'si", "\\1");
    
    					$monTpl->set_block("'\[online\](.*?)\[/online\]'si", "");
    
    
    					$monTpl->set('{ip}', $server['ip']);
    
    					$monTpl->set('{port}', $server['port']);
    
    					$monTpl->set('{image}', self::$imDir . '/offline.png');
    
    					$monTpl->compile($server['ip'] . ':' . $server['port']);
    
    				} else {
    
    					$monTpl->set_block("'\[offline\](.*?)\[/offline\]'si", "");
    
    					$monTpl->set_block("'\[online\](.*?)\[/online\]'si", "\\1");
    
    
    					$image = ($server['game'] == 'cs') ? self::$csDir . DIRECTORY_SEPARATOR . $server['mapname'] . '.jpg' : self::$cssDir . DIRECTORY_SEPARATOR . $server['mapname'] . '.jpg' ;
    
    					$image = file_exists( ROOT_DIR . $image ) ? $image : self::$imDir . '/noimage.png' ;
    
    
    					$monTpl->set('{game}', $server['game']);
    
    					$monTpl->set('{mapname}', $server['mapname']);
    
    					$monTpl->set('{image}', $image);
    
    					$monTpl->set('{hostname}', $server['hostname']);
    
    					$monTpl->set('{players}', $server['players']);
    
    					$monTpl->set('{maxplayers}', $server['maxplayers']);
    
    					$monTpl->set('{ip}', $server['ip']);
    
    					$monTpl->set('{port}', $server['port']);
    
    					$monTpl->set('{os}', self::$imDir . '/' . $server['server_os'] . '.png');
    
    					$monTpl->compile($server['ip'] . ':' . $server['port']);
    
    				}
    
    				echo '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />';
    
    				echo $monTpl->result[$server['ip'] . ':' . $server['port']];
    
    			die();
    
    		} else {
    
    			$monTpl = new dle_template;
    
    			$monTpl->dir = ENGINE_DIR . '/modules/ServerMon';
    
    
    			self::$servers = is_array(self::$servers) ? self::$servers : array();
    
    
    			foreach(self::$servers as $server) {
    
    				$serv = explode(':', $server);
    
    				$server = self::getInfo($server);
    
    
    				if(!$server){
    
    					$server['ip'] = $serv[0];
    
    					$server['port'] = $serv[1];
    
    					$server['offline'] = true;
    
    				}
    
    
    				if(file_exists($monTpl->dir . DIRECTORY_SEPARATOR . $server['ip'] . ':' . $server['port'] . '.tpl')) $monTpl->load_template($server['ip'] . ':' . $server['port'] . '.tpl');
    
    				else $monTpl->load_template('block.tpl');
    
    
    				if($server['offline']){
    
    					$monTpl->set_block("'\[offline\](.*?)\[/offline\]'si", "\\1");
    
    					$monTpl->set_block("'\[online\](.*?)\[/online\]'si", "");
    
    
    					$monTpl->set('{ip}', $server['ip']);
    
    					$monTpl->set('{port}', $server['port']);
    
    					$monTpl->set('{image}', self::$imDir . '/offline.png');
    
    					$monTpl->compile($server['ip'] . ':' . $server['port']);
    
    				} else {
    
    					$monTpl->set_block("'\[offline\](.*?)\[/offline\]'si", "");
    
    					$monTpl->set_block("'\[online\](.*?)\[/online\]'si", "\\1");
    
    
    					$image = ($server['game'] == 'cs') ? self::$csDir . DIRECTORY_SEPARATOR . $server['mapname'] . '.jpg' : self::$cssDir . DIRECTORY_SEPARATOR . $server['mapname'] . '.jpg' ;
    
    					$image = file_exists( ROOT_DIR . $image ) ? $image : self::$imDir . '/noimage.png' ;
    
    
    					$monTpl->set('{game}', $server['game']);
    
    					$monTpl->set('{mapname}', $server['mapname']);
    
    					$monTpl->set('{image}', $image);
    
    					$monTpl->set('{hostname}', $server['hostname']);
    
    					$monTpl->set('{players}', $server['players']);
    
    					$monTpl->set('{maxplayers}', $server['maxplayers']);
    
    					$monTpl->set('{ip}', $server['ip']);
    
    					$monTpl->set('{port}', $server['port']);
    
    					$monTpl->set('{os}', self::$imDir . '/' . $server['server_os'] . '.png');
    
    					$monTpl->compile($server['ip'] . ':' . $server['port']);
    
    				}
    
    
    				$tpl->set('{' . $server['ip'] . ':' . $server['port'] . '}', $monTpl->result[$server['ip'] . ':' . $server['port']]);
    
    			}
    
    			if($config['version_id'] < 9.0) {
    
    				$js_array[] = "engine/modules/ServerMon/js/jq.js";
    
    				$metatags .= PHP_EOL . '<link rel="stylesheet" type="text/css" href="/engine/modules/ServerMon/css/jq.css" />';
    
    			}
    
    
    			$js_array[] = "engine/modules/ServerMon/js/ServerMon.js";
    
    			if($member_id['user_group'] == 1) $js_array[] = "engine/modules/ServerMon/js/admin.js";
    
    		}
    
    	}
    
    	private static function getServer($server) {
    
    		return explode(':', $server);
    
    	}
    
    	private static function getInfo($server) {
    
    		$data = array();
    
    		$server = self::getServer($server);
    
    		$ip = $server[0];
    
    		$port = intval($server[1]);
    
    
    		$fp = @fsockopen("udp://$ip", $port, $errno, $errstr, self::$timeout);
    
    		if (!$fp) {
    
    			return false;
    
    		}
    
    		stream_set_timeout($fp, self::$timeout);
    
    		stream_set_blocking($fp, true);
    
    		$challenge = "\xFF\xFF\xFF\xFFTSource Engine Query\x00";
    
    		fwrite($fp, $challenge);
    
    		$buffer = fread($fp, 4096);
    
    		if (!$buffer) {
    
    			fclose($fp);
    
    			return false;
    
    		}
    
    		$buffer = trim(substr($buffer, 4));
    
    		fclose($fp);
    
    		if (!trim($buffer)) {
    
    			return false;
    
    		}
    
    		$tmp = explode("\x00", $buffer);
    
    		$place = strlen($tmp[0] . $tmp[1] . $tmp[2] . $tmp[3] . $tmp[4]) + 5;
    
    		$version = ord($buffer[$place + 2]); // Network Version
    
    		if ($version == 47 || $version == 48) {
    
    			$data['game'] = 'cs';
    
    			$data['mapname'] = self::toShow($tmp[2]);
    
    			$data['hostname'] = self::toShow($tmp[1]);
    
    		} else {
    
    			$data['game'] = 'css';
    
    			$data['mapname'] = self::toShow($tmp[1]);
    
    			$data['hostname'] = self::toShow($tmp[0]);
    
    		}
    
    		$data['players'] = ord($buffer[$place]);
    
    		$data['maxplayers'] = ord($buffer[$place + 1]);
    
    		$data['ip'] = self::toShow($ip);
    
    		$data['port'] = $port;
    
    		$data['server_os'] = $buffer[$place + 4]; // W indows or L inux
    
    		#$data['server_secure'] = ord($tmp[14]); // VAC
    
    		return $data;
    
    	}
    
    	private static function getPlayers($server) {
    
    		$server = self::getServer($server);
    
    		$ip = $server[0];
    
    		$port = $server[1];
    
    
    		$fp = fsockopen("udp://$ip", $port, $errno, $errstr, self::$timeout);
    
    		if (!$fp) {
    
    			return false;
    
    		}
    
    		stream_set_timeout($fp, self::$timeout);
    
    		stream_set_blocking($fp, true);
    
    		$challenge_code = "\xFF\xFF\xFF\xFF\x55\x00\x00\x00\x00";
    
    		fwrite($fp, $challenge_code);
    
    		$buffer = fread($fp, 4096);
    
    		if (!trim($buffer)) {
    
    			fclose($fp);
    
    			return false;
    
    		}
    
    		$challenge_code = substr($buffer, 5, 4);
    
    		$challenge = "\xFF\xFF\xFF\xFFU" . $challenge_code;
    
    		fwrite($fp, $challenge);
    
    		$buffer = fread($fp, 4096);
    
    		if (!$buffer) {
    
    			fclose($fp);
    
    			return false;
    
    		}
    
    		$buffer = trim(substr($buffer, 4));
    
    		fclose($fp);
    
    		if (!trim($buffer)) {
    
    			return false;
    
    		}
    
    		$player = array();
    
    		$player_number = 0;
    
    		$position = 2;
    
    		do {
    
    			$player_number++;
    
    			$player[$player_number]['name'] = null;
    
    			if (!isset($buffer[$position])) {
    
    				return 'Сервер пуст ';
    
    			}
    
    			$player[$player_number]['id'] = ord($buffer[$position]);
    
    			$position++;
    
    			while ($buffer[$position] != "\x00" && $position < strlen($buffer)) {
    
    				$player[$player_number]['name'] .= $buffer[$position];
    
    				$position++;
    
    			}
    
    			$player[$player_number]['score'] = (ord($buffer[$position + 1])) + (ord($buffer[$position +
    
    							2]) * 256) + (ord($buffer[$position + 3]) * 65536) + (ord($buffer[$position + 4]) *
    
    					16777216);
    
    			if ($player[$player_number]['score'] > 2147483648)
    
    				$player[$player_number]['score'] -= 4294967296;
    
    			$time = substr($buffer, $position + 5, 4);
    
    			if (strlen($time) < 4) {
    
    				return false;
    
    			}
    
    			list(, $time) = unpack("f", $time);
    
    			$time = mktime(0, 0, $time);
    
    			$player[$player_number]['time'] = date("H:i:s", $time);
    
    			$position += 9;
    
    		} while ($position < strlen($buffer));
    
    		return $player;
    
    	}
    
    	private static function getSettings($server) {
    
    		$server = self::getServer($server);
    
    		$ip = $server[0];
    
    		$port = $server[1];
    
    
    		$fp = fsockopen("udp://$ip", $port, $errno, $errstr, self::$timeout);
    
    		if (!$fp) {
    
    			return false;
    
    		}
    
    		stream_set_timeout($fp, self::$timeout);
    
    		stream_set_blocking($fp, true);
    
    		$challenge_code = "\xFF\xFF\xFF\xFF\x56\x00\x00\x00\x00";
    
    		fwrite($fp, $challenge_code);
    
    		$buffer = fread($fp, 4096);
    
    		if (!trim($buffer)) {
    
    			fclose($fp);
    
    			return false;
    
    		}
    
    		$challenge_code = substr($buffer, 5, 4);
    
    		$challenge = "\xFF\xFF\xFF\xFFV" . $challenge_code;
    
    		fwrite($fp, $challenge);
    
    		$buffer = fread($fp, 4096);
    
    		if (!$buffer) {
    
    			fclose($fp);
    
    			return false;
    
    		}
    
    		$second_packet = fread($fp, 4096);
    
    		if (strlen($second_packet) > 0) {
    
    			$reverse_check = dechex(ord($buffer[8]));
    
    			if ($reverse_check[0] == "1") {
    
    				$tmp = $buffer;
    
    				$buffer = $second_packet;
    
    				$second_packet = $tmp;
    
    			}
    
    			$buffer = substr($buffer, 13);
    
    			$second_packet = substr($second_packet, 9);
    
    			$buffer = trim($buffer . $second_packet);
    
    		} else
    
    			$buffer = trim(substr($buffer, 4));
    
    
    		$setting = array();
    
    		$tmp = substr($buffer, 2);
    
    		$rawdata = explode("\x00", $tmp);
    
    		for ($i = 1; $i < count($rawdata); $i += 2) {
    
    				$rawdata[$i] = strtolower($rawdata[$i]);
    
    				@$setting[$rawdata[$i]] = $rawdata[$i + 1];
    
    		}
    
    		return $setting;
    
    	}
    
    	private static function toShow($string){
    
    		return htmlentities(iconv("UTF-8", "CP1251//IGNORE", $string), ENT_NOQUOTES, "CP1251");
    
    	}
    
    }
    
    ServerMon::run();
    
    ?>
    
    [/code]

    еще не работает подписка на сайте, просто пишет тот код который вставляешь.

    Да и вобще многие скрипты не работают должным образом в дле9.6 и это печально, очень много заморочек. как то можно перейти на версию ниже без потерь?

  4. Здравствуйте есть проблемка с панелью. Захожу в управление щаблонами, выбераю свой, файлы не открывает, просто они пустые хотя записи в них есть, помогите решить проблему т.к. через фтп реально муторно все это делать.

×
×
  • Создать...