Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

LGSL на PHP7

, Заменить функцию
Статус пользователя Profan
сообщение 28.5.2017, 19:19
Сообщение #1


Стаж: 10 лет
Город: Сочи

Сообщений: 1317
Благодарностей: 403
Полезность: 698

Всем привет. Ставлю мониторинг на форум XenForo по гайду
Но дело в том что на хостинге работает PHP7 и выдает ошибку:
An exception occurred: Call to undefined function mysql_connect() in /var/www/site.ru/lgsl/lgsl_files/lgsl_class.php on line 130
Кусок кода 130 строки
Код:
$lgsl_database  = mysql_connect($lgsl_config['db']['server'], $lgsl_config['db']['user'], $lgsl_config['db']['pass']) or die(mysql_error());
$lgsl_select_db = mysql_select_db($lgsl_config['db']['db'], $lgsl_database) or die(mysql_error());

Чем можно заменить устаревшую функцию что бы законнектится к БД?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя MarVal
сообщение 28.5.2017, 19:22
Сообщение #2


Стаж: 12 лет

Сообщений: 197
Благодарностей: 54
Полезность: 73

Profan, mysql_connect -> mysqli_connect, после mysql, добавляем i

Отредактировал: MarVal, - 28.5.2017, 19:23
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
EvilSMS
сообщение 28.5.2017, 19:25
Сообщение #3
Стаж: 10 лет

Сообщений: 1801
Благодарностей: 410
Полезность: < 0

Оно?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Profan
сообщение 28.5.2017, 19:45
Сообщение #4


Стаж: 10 лет
Город: Сочи

Сообщений: 1317
Благодарностей: 403
Полезность: 698

Цитата(EvilSMS @ 28.5.2017, 20:25) *

Да, но не пойму как сделать запрос на подключение, в php не силен.
Может поправит кто?
Cкрытый текст
Код:
<?php

/*----------------------------------------------------------------------------------------------------------\
| |
| [ LIVE GAME SERVER LIST ] [ © RICHARD PERRY FROM GREYCUBE.COM ] |
| |
| Released under the terms and conditions of the GNU General Public License Version 3 (http://gnu.org) |
| |
\-----------------------------------------------------------------------------------------------------------*/

//------------------------------------------------------------------------------------------------------------+
//------------------------------------------------------------------------------------------------------------+

if (!function_exists('lgsl_url_path')) { // START OF DOUBLE LOAD PROTECTION

//------------------------------------------------------------------------------------------------------------+
//------------------------------------------------------------------------------------------------------------+

function lgsl_bg($rotation_overide = "no")
{
global $lgsl_config;
global $lgsl_bg_rotate;

if ($rotation_overide !== "no")
{
$lgsl_bg_rotate = $rotation_overide ? TRUE : FALSE;
}
else
{
$lgsl_bg_rotate = $lgsl_bg_rotate ? FALSE : TRUE;
}

$background = $lgsl_bg_rotate ? $lgsl_config['background'][1] : $lgsl_config['background'][2];

return $background;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_link($s = "")
{
global $lgsl_config, $lgsl_url_path;

$index = $lgsl_config['direct_index'] ? "index.php" : "";

switch($lgsl_config['cms'])
{
case "e107":
$link = $s ? e_PLUGIN."lgsl/{$index}?s={$s}" : e_PLUGIN."lgsl/{$index}";
break;

case "joomla":
$link = $s ? JRoute::_("index.php?option=com_lgsl&s={$s}") : JRoute::_("index.php?option=com_lgsl");
break;

case "drupal":
$link = $s ? url("LGSL/{$s}") : url("LGSL");
break;

case "phpnuke":
$link = $s ? "modules.php?name=LGSL&s={$s}" : "modules.php?name=LGSL";
break;

default: // "sa"
$link = $s ? $lgsl_url_path."../{$index}?s={$s}" : $lgsl_url_path."../{$index}";
break;
}

return $link;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_database()
{
global $lgsl_database, $lgsl_config, $lgsl_file_path;

if (!isset($lgsl_config['db']['prefix']))
{
$lgsl_config['db']['prefix'] = "";
}

if (!$lgsl_config['db']['pass'])
{
switch($lgsl_config['cms'])
{
case "e107":
@include "{$lgsl_file_path}../../../e107_config.php";
$lgsl_config['db']['server'] = $mySQLserver;
$lgsl_config['db']['user'] = $mySQLuser;
$lgsl_config['db']['pass'] = $mySQLpassword;
$lgsl_config['db']['db'] = $mySQLdefaultdb;
$lgsl_config['db']['prefix'] = $mySQLprefix;
break;

case "joomla":
@include_once "{$lgsl_file_path}../../../configuration.php";
$joomla_config = new JConfig();
$lgsl_config['db']['server'] = $joomla_config->host;
$lgsl_config['db']['user'] = $joomla_config->user;
$lgsl_config['db']['pass'] = $joomla_config->password;
$lgsl_config['db']['db'] = $joomla_config->db;
$lgsl_config['db']['prefix'] = $joomla_config->dbprefix;
break;

case "drupal":
global $db_url, $db_prefix;
if (empty($db_url)) { @include "{$lgsl_file_path}../../../sites/default/settings.php"; }
$drupal_config = is_array($db_url) ? parse_url($db_url['default']) : parse_url($db_url);
$lgsl_config['db']['server'] = $drupal_config['host'];
$lgsl_config['db']['user'] = $drupal_config['user'];
$lgsl_config['db']['pass'] = isset($drupal_config['pass']) ? $drupal_config['pass'] : "";
$lgsl_config['db']['db'] = substr($drupal_config['path'], 1);
$lgsl_config['db']['prefix'] = isset($db_prefix['default']) ? $db_prefix['default'] : "";
break;

case "phpnuke":
@include "{$lgsl_file_path}../../../config.php";
@include "{$lgsl_file_path}../../../conf.inc.php";
@include "{$lgsl_file_path}../../../includes/config.php";
$lgsl_config['db']['server'] = $dbhost;
$lgsl_config['db']['user'] = $dbuname;
$lgsl_config['db']['pass'] = $dbpass;
$lgsl_config['db']['db'] = $dbname;
$lgsl_config['db']['prefix'] = $prefix."_";
break;
}
}

$lgsl_database = mysqli_connect($lgsl_config['db']['server'], $lgsl_config['db']['user'], $lgsl_config['db']['pass']) or die(mysql_error());
$lgsl_select_db = mysqli_select_db($lgsl_config['db']['db'], $lgsl_database) or die(mysql_error());
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_query_cached($type, $ip, $c_port, $q_port, $s_port, $request, $id = NULL)
{
global $lgsl_config;

lgsl_database();

// LOOKUP SERVER

if ($id != NULL)
{
$id = intval($id);
$mysql_query = "SELECT * FROM `{$lgsl_config['db']['prefix']}{$lgsl_config['db']['table']}` WHERE `id`='{$id}' LIMIT 1";
$mysql_result = mysql_query($mysql_query) or die(mysql_error());
$mysql_row = mysql_fetch_array($mysql_result, MYSQL_ASSOC);
if (!$mysql_row) { return FALSE; }
list($type, $ip, $c_port, $q_port, $s_port) = array($mysql_row['type'], $mysql_row['ip'], $mysql_row['c_port'], $mysql_row['q_port'], $mysql_row['s_port']);
}
else
{
list($type, $ip, $c_port, $q_port, $s_port) = array(mysql_real_escape_string($type), mysql_real_escape_string($ip), intval($c_port), intval($q_port), intval($s_port));

if (!$type || !$ip || !$c_port || !$q_port) { exit("LGSL PROBLEM: INVALID SERVER '{$type} : {$ip} : {$c_port} : {$q_port} : {$s_port}'"); }
$mysql_query = "SELECT * FROM `{$lgsl_config['db']['prefix']}{$lgsl_config['db']['table']}` WHERE `type`='{$type}' AND `ip`='{$ip}' AND `q_port`='{$q_port}' LIMIT 1";
$mysql_result = mysql_query($mysql_query) or die(mysql_error());
$mysql_row = mysql_fetch_array($mysql_result, MYSQL_ASSOC);

if (!$mysql_row)
{
if (strpos($request, "a") === FALSE) { exit("LGSL PROBLEM: SERVER NOT IN DATABASE '{$type} : {$ip} : {$c_port} : {$q_port} : {$s_port}'"); }
$mysql_query = "INSERT INTO `{$lgsl_config['db']['prefix']}{$lgsl_config['db']['table']}` (`type`,`ip`,`c_port`,`q_port`,`s_port`,`cache`,`cache_time`) VALUES ('{$type}','{$ip}','{$c_port}','{$q_port}','{$s_port}','','')";
$mysql_result = mysql_query($mysql_query) or die(mysql_error());
$mysql_row = array("id"=>mysql_insert_id(), "zone"=>"0", "comment"=>"");
}
}

// UNPACK CACHE AND CACHE TIMES

$cache = empty($mysql_row['cache']) ? array() : unserialize(base64_decode($mysql_row['cache']));
$cache_time = empty($mysql_row['cache_time']) ? array(0,0,0) : explode("_", $mysql_row['cache_time']);

// SET THE SERVER AS OFFLINE AND PENDING WHEN THERE IS NO CACHE

if (empty($cache['b']) || !is_array($cache))
{
$cache = array();
$cache['b'] = array();
$cache['b']['status'] = 0;
$cache['b']['pending'] = 1;
}

// CONVERT HOSTNAME TO IP WHEN NEEDED

if ($lgsl_config['host_to_ip'])
{
$ip = gethostbyname($ip);
}

// UPDATE CACHE WITH FIXED VALUES

$cache['b']['type'] = $type;
$cache['b']['ip'] = $ip;
$cache['b']['c_port'] = $c_port;
$cache['b']['q_port'] = $q_port;
$cache['b']['s_port'] = $s_port;
$cache['o']['request'] = $request;
$cache['o']['id'] = $mysql_row['id'];
$cache['o']['zone'] = $mysql_row['zone'];
$cache['o']['comment'] = $mysql_row['comment'];

// UPDATE CACHE WITH LOCATION

if (empty($cache['o']['location']))
{
$cache['o']['location'] = $lgsl_config['locations'] ? lgsl_query_location($ip) : "";
}

// UPDATE CACHE WITH DEFAULT OFFLINE VALUES

if (!isset($cache['s']))
{
$cache['s'] = array();
$cache['s']['game'] = $type;
$cache['s']['name'] = $lgsl_config['text']['nnm'];
$cache['s']['map'] = $lgsl_config['text']['nmp'];
$cache['s']['players'] = 0;
$cache['s']['playersmax'] = 0;
$cache['s']['password'] = 0;
}

if (!isset($cache['e'])) { $cache['e'] = array(); }
if (!isset($cache['p'])) { $cache['p'] = array(); }

// CHECK AND GET THE NEEDED DATA

$needed = "";

if (strpos($request, "c") === FALSE) // CACHE ONLY REQUEST
{
if (strpos($request, "s") !== FALSE && time() > ($cache_time[0]+$lgsl_config['cache_time'])) { $needed .= "s"; }
if (strpos($request, "e") !== FALSE && time() > ($cache_time[1]+$lgsl_config['cache_time'])) { $needed .= "e"; }
if (strpos($request, "p") !== FALSE && time() > ($cache_time[2]+$lgsl_config['cache_time'])) { $needed .= "p"; }
}

if ($needed)
{
// UPDATE CACHE TIMES BEFORE QUERY - PREVENTS OTHER INSTANCES FROM QUERY FLOODING THE SAME SERVER

$packed_times = time() + $lgsl_config['cache_time'] + 10;
$packed_times = "{$packed_times}_{$packed_times}_{$packed_times}";
$mysql_query = "UPDATE `{$lgsl_config['db']['prefix']}{$lgsl_config['db']['table']}` SET `cache_time`='{$packed_times}' WHERE `id`='{$mysql_row['id']}' LIMIT 1";
$mysql_result = mysql_query($mysql_query) or die(mysql_error());

// GET WHAT IS NEEDED

$live = lgsl_query_live($type, $ip, $c_port, $q_port, $s_port, $needed);

if (!$live['b']['status'] && $lgsl_config['retry_offline'] && !$lgsl_config['feed']['method'])
{
$live = lgsl_query_live($type, $ip, $c_port, $q_port, $s_port, $needed);
}

// CHECK AND CONVERT TO UTF-8 WHERE NEEDED

$live = lgsl_charset_convert($live, lgsl_charset_detect($live));

// IF SERVER IS OFFLINE PRESERVE SOME OF THE CACHE AND CLEAR THE REST

if (!$live['b']['status'])
{
$live['s']['game'] = $cache['s']['game'];
$live['s']['name'] = $cache['s']['name'];
$live['s']['map'] = $cache['s']['map'];
$live['s']['password'] = $cache['s']['password'];
$live['s']['players'] = 0;
$live['s']['playersmax'] = $cache['s']['playersmax'];
$live['e'] = array();
$live['p'] = array();
}

// MERGE LIVE INTO CACHE

if (isset($live['b'])) { $cache['b'] = $live['b']; $cache['b']['pending'] = 0; }
if (isset($live['s'])) { $cache['s'] = $live['s']; $cache_time[0] = time(); }
if (isset($live['e'])) { $cache['e'] = $live['e']; $cache_time[1] = time(); }
if (isset($live['p'])) { $cache['p'] = $live['p']; $cache_time[2] = time(); }

// UPDATE CACHE

$packed_cache = mysql_real_escape_string(base64_encode(serialize($cache)));
$packed_times = mysql_real_escape_string(implode("_", $cache_time));
$mysql_query = "UPDATE `{$lgsl_config['db']['prefix']}{$lgsl_config['db']['table']}` SET `status`='{$cache['b']['status']}',`cache`='{$packed_cache}',`cache_time`='{$packed_times}' WHERE `id`='{$mysql_row['id']}' LIMIT 1";
$mysql_result = mysql_query($mysql_query) or die(mysql_error());
}

// RETURN ONLY THE REQUESTED

if (strpos($request, "s") === FALSE) { unset($cache['s']); }
if (strpos($request, "e") === FALSE) { unset($cache['e']); }
if (strpos($request, "p") === FALSE) { unset($cache['p']); }

return $cache;
}

//------------------------------------------------------------------------------------------------------------+
//EXAMPLE USAGE: lgsl_query_group( array("request"=>"sep", "hide_offline"=>0, "random"=>0, "type"=>"source", "game"=>"cstrike") )

function lgsl_query_group($options = array())
{
if (!is_array($options)) { exit("LGSL PROBLEM: lgsl_query_group OPTIONS MUST BE ARRAY"); }

global $lgsl_config;

lgsl_database();

$request = isset($options['request']) ? $options['request'] : "s";
$zone = isset($options['zone']) ? intval($options['zone']) : 0;
$hide_offline = isset($options['hide_offline']) ? intval($options['hide_offline']) : intval($lgsl_config['hide_offline'][$zone]);
$random = isset($options['random']) ? intval($options['random']) : intval($lgsl_config['random'][$zone]);
$type = empty($options['type']) ? "" : preg_replace("/[^a-z0-9_]/", "_", strtolower($options['type']));
$game = empty($options['game']) ? "" : preg_replace("/[^a-z0-9_]/", "_", strtolower($options['game']));
$mysql_order = empty($random) ? "`cache_time` ASC" : "rand()";
$server_limit = empty($random) ? 0 : $random;

$mysql_where = array("`disabled`=0");
if ($zone != 0) { $mysql_where[] = "FIND_IN_SET('{$zone}',`zone`)"; }
if ($type != "") { $mysql_where[] = "`type`='{$type}'"; }

$mysql_query = "SELECT `id` FROM `{$lgsl_config['db']['prefix']}{$lgsl_config['db']['table']}` WHERE ".implode(" AND ", $mysql_where)." ORDER BY {$mysql_order}";
$mysql_result = mysql_query($mysql_query) or die(mysql_error());
$server_list = array();

while ($mysql_row = mysql_fetch_array($mysql_result, MYSQL_ASSOC))
{
if (strpos($request, "c") === FALSE && lgsl_timer("check")) { $request .= "c"; }

$server = lgsl_query_cached("", "", "", "", "", $request, $mysql_row['id']);

if ($hide_offline && empty($server['b']['status'])) { continue; }
if ($game && $game != preg_replace("/[^a-z0-9_]/", "_", strtolower($server['s']['game']))) { continue; }

$server_list[] = $server;

if ($server_limit && count($server_list) >= $server_limit) { break; }
}

return $server_list;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_group_totals($server_list = FALSE)
{
if (!is_array($server_list)) { $server_list = lgsl_query_group( array( "request"=>"sc" ) ); }

$total = array("players"=>0, "playersmax"=>0, "servers"=>0, "servers_online"=>0, "servers_offline"=>0);

foreach ($server_list as $server)
{
$total['players'] += $server['s']['players'];
$total['playersmax'] += $server['s']['playersmax'];

$total['servers'] ++;
if ($server['b']['status']) { $total['servers_online'] ++; }
else { $total['servers_offline'] ++; }
}

return $total;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_query_cached_all($request) // LEGACY - DO NOT USE
{
return lgsl_query_group( array( "request"=>$request ) );
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_query_cached_zone($request, $zone) // LEGACY - DO NOT USE
{
return lgsl_query_group( array( "request"=>$request, "zone"=>$zone ) );
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_cached_totals() // LEGACY - DO NOT USE
{
return lgsl_group_totals();
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_lookup_id($id) // LEGACY - DO NOT USE
{
global $lgsl_config;

lgsl_database();

$id = mysql_real_escape_string(intval($id));
$mysql_query = "SELECT `type`,`ip`,`c_port`,`q_port`,`s_port` FROM `{$lgsl_config['db']['prefix']}{$lgsl_config['db']['table']}` WHERE `id`='{$id}' LIMIT 1";
$mysql_result = mysql_query($mysql_query) or die(mysql_error());
$mysql_row = mysql_fetch_array($mysql_result, MYSQL_ASSOC);

return $mysql_row;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_timer($action)
{
global $lgsl_config;
global $lgsl_timer;

if (!$lgsl_timer)
{
$microtime = microtime();
$microtime = explode(' ', $microtime);
$microtime = $microtime[1] + $microtime[0];
$lgsl_timer = $microtime - 0.01;
}

$time_limit = intval($lgsl_config['live_time']);
$time_php = ini_get("max_execution_time");

if ($time_limit > $time_php)
{
@set_time_limit($time_limit + 5);

$time_php = ini_get("max_execution_time");

if ($time_limit > $time_php)
{
$time_limit = $time_php - 5;
}
}

if ($action == "limit")
{
return $time_limit;
}

$microtime = microtime();
$microtime = explode(' ', $microtime);
$microtime = $microtime[1] + $microtime[0];
$time_taken = $microtime - $lgsl_timer;

if ($action == "check")
{
return ($time_taken > $time_limit) ? TRUE : FALSE;
}
else
{
return round($time_taken, 2);
}
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_server_misc($server)
{
global $lgsl_config, $lgsl_url_path;

$misc['icon_details'] = $lgsl_url_path."other/icon_details.gif";
$misc['icon_game'] = lgsl_icon_game($server['b']['type'], $server['s']['game']);
$misc['icon_status'] = lgsl_icon_status($server['b']['status'], $server['s']['password'], $server['b']['pending']);
$misc['icon_location'] = lgsl_icon_location($server['o']['location']);
$misc['image_map'] = lgsl_image_map($server['b']['status'], $server['b']['type'], $server['s']['game'], $server['s']['map'], TRUE, $server['o']['id']);
$misc['image_map_password'] = lgsl_image_map_password($server['b']['status'], $server['s']['password']);
$misc['text_status'] = lgsl_text_status($server['b']['status'], $server['s']['password'], $server['b']['pending']);
$misc['text_type_game'] = lgsl_text_type_game($server['b']['type'], $server['s']['game']);
$misc['text_location'] = lgsl_text_location($server['o']['location']);
$misc['name_filtered'] = lgsl_string_html($server['s']['name'], FALSE, 20); // LEGACY
$misc['software_link'] = lgsl_software_link($server['b']['type'], $server['b']['ip'], $server['b']['c_port'], $server['b']['q_port'], $server['b']['s_port']);
$misc['location_link'] = lgsl_location_link($server['o']['location']);

return $misc;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_icon_game($type, $game)
{
global $lgsl_file_path, $lgsl_url_path;

$type = preg_replace("/[^a-z0-9_]/", "_", strtolower($type));
$game = preg_replace("/[^a-z0-9_]/", "_", strtolower($game));

$path_list = array(
"icons/{$type}/{$game}.gif",
"icons/{$type}/{$game}.png",
"icons/{$type}/{$type}.gif",
"icons/{$type}/{$type}.png");

foreach ($path_list as $path)
{
if (file_exists($lgsl_file_path.$path)) { return $lgsl_url_path.$path; }
}

return "{$lgsl_url_path}other/icon_unknown.gif";
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_icon_status($status, $password, $pending = 0)
{
global $lgsl_url_path;

if ($pending) { return "{$lgsl_url_path}other/icon_unknown.gif"; }
if (!$status) { return "{$lgsl_url_path}other/icon_no_response.gif"; }
if ($password) { return "{$lgsl_url_path}other/icon_online_password.gif"; }

return "{$lgsl_url_path}other/icon_online.gif";
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_icon_location($location)
{
global $lgsl_file_path, $lgsl_url_path;

if (!$location) { return "{$lgsl_url_path}locations/OFF.png"; }

if ($location)
{
$location = "locations/".preg_replace("/[^a-zA-Z0-9_]/", "_", $location).".png";

if (file_exists($lgsl_file_path.$location)) { return $lgsl_url_path.$location; }
}

return "{$lgsl_url_path}locations/XX.png";
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_image_map($status, $type, $game, $map, $check_exists = TRUE, $id = 0)
{
global $lgsl_file_path, $lgsl_url_path;

$type = preg_replace("/[^a-z0-9_]/", "_", strtolower($type));
$game = preg_replace("/[^a-z0-9_]/", "_", strtolower($game));
$map = preg_replace("/[^a-z0-9_]/", "_", strtolower($map));

if ($check_exists !== TRUE) { return "{$lgsl_url_path}maps/{$type}/{$game}/{$map}.jpg"; }

if ($status)
{
$path_list = array(
"maps/{$type}/{$game}/{$map}.jpg",
"maps/{$type}/{$game}/{$map}.gif",
"maps/{$type}/{$game}/{$map}.png",
"maps/{$type}/{$map}.jpg",
"maps/{$type}/{$map}.gif",
"maps/{$type}/{$map}.png",
"maps/{$type}/map_no_image.jpg",
"maps/{$type}/map_no_image.gif",
"maps/{$type}/map_no_image.png",
"other/map_no_image_{$id}.jpg",
"other/map_no_image_{$id}.gif",
"other/map_no_image_{$id}.png",
"other/map_no_image.jpg");
}
else
{
$path_list = array(
"maps/{$type}/map_no_response.jpg",
"maps/{$type}/map_no_response.gif",
"maps/{$type}/map_no_response.png",
"other/map_no_response_{$id}.jpg",
"other/map_no_response_{$id}.gif",
"other/map_no_response_{$id}.png",
"other/map_no_response.jpg");
}

foreach ($path_list as $path)
{
if (file_exists($lgsl_file_path.$path)) { return "{$lgsl_url_path}{$path}"; }
}

return "#LGSL_DEFAULT_IMAGES_MISSING#";
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_image_map_password($status, $password)
{
global $lgsl_url_path;

if (!$password || !$status) { return "{$lgsl_url_path}other/map_overlay.gif"; }

return "{$lgsl_url_path}other/map_overlay_password.gif";
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_text_status($status, $password, $pending = 0)
{
global $lgsl_config;

if ($pending) { return $lgsl_config['text']['pen']; }
if (!$status) { return $lgsl_config['text']['nrs']; }
if ($password) { return $lgsl_config['text']['onp']; }

return $lgsl_config['text']['onl'];
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_text_type_game($type, $game)
{
global $lgsl_config;

return "[ {$lgsl_config['text']['typ']} {$type} ] [ {$lgsl_config['text']['gme']} {$game} ]";
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_text_location($location)
{
global $lgsl_config;

return $location ? "{$lgsl_config['text']['loc']} {$location}" : "";
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_sort_servers($server_list)
{
global $lgsl_config;

if (!is_array($server_list)) { return $server_list; }

if ($lgsl_config['sort']['servers'] == "id") { usort($server_list, "lgsl_sort_servers_by_id"); }
elseif ($lgsl_config['sort']['servers'] == "zone") { usort($server_list, "lgsl_sort_servers_by_zone"); }
elseif ($lgsl_config['sort']['servers'] == "type") { usort($server_list, "lgsl_sort_servers_by_type"); }
elseif ($lgsl_config['sort']['servers'] == "status") { usort($server_list, "lgsl_sort_servers_by_status"); }
elseif ($lgsl_config['sort']['servers'] == "players") { usort($server_list, "lgsl_sort_servers_by_players"); }

return $server_list;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_sort_fields($server, $fields_show, $fields_hide, $fields_other)
{
$fields_list = array();

if (!is_array($server['p'])) { return $fields_list; }

foreach ($server['p'] as $player)
{
foreach ($player as $field => $value)
{
if ($value === "") { continue; }
if (in_array($field, $fields_list)) { continue; }
if (in_array($field, $fields_hide)) { continue; }
$fields_list[] = $field;
}
}

$fields_show = array_intersect($fields_show, $fields_list);

if ($fields_other == FALSE) { return $fields_show; }

$fields_list = array_diff($fields_list, $fields_show);

return array_merge($fields_show, $fields_list);
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_sort_servers_by_id($server_a, $server_b)
{
if ($server_a['o']['id'] == $server_b['o']['id']) { return 0; }

return ($server_a['o']['id'] > $server_b['o']['id']) ? 1 : -1;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_sort_servers_by_zone($server_a, $server_b)
{
if ($server_a['o']['zone'] == $server_b['o']['zone']) { return 0; }

return ($server_a['o']['zone'] > $server_b['o']['zone']) ? 1 : -1;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_sort_servers_by_type($server_a, $server_b)
{
$result = strcasecmp($server_a['b']['type'], $server_b['b']['type']);

if ($result == 0)
{
$result = strcasecmp($server_a['s']['game'], $server_b['s']['game']);
}

return $result;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_sort_servers_by_status($server_a, $server_b)
{
if ($server_a['b']['status'] == $server_b['b']['status']) { return 0; }

return ($server_a['b']['status'] < $server_b['b']['status']) ? 1 : -1;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_sort_servers_by_players($server_a, $server_b)
{
if ($server_a['s']['players'] == $server_b['s']['players']) { return 0; }

return ($server_a['s']['players'] < $server_b['s']['players']) ? 1 : -1;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_sort_extras($server)
{
if (!is_array($server['e'])) { return $server; }

ksort($server['e']);

return $server;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_sort_players($server)
{
global $lgsl_config;

if (!is_array($server['p'])) { return $server; }

if ($lgsl_config['sort']['players'] == "name") { usort($server['p'], "lgsl_sort_players_by_name"); }
elseif ($lgsl_config['sort']['players'] == "score") { usort($server['p'], "lgsl_sort_players_by_score"); }

return $server;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_sort_players_by_score($player_a, $player_b)
{
if ($player_a['score'] == $player_b['score']) { return 0; }

return ($player_a['score'] < $player_b['score']) ? 1 : -1;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_sort_players_by_name($player_a, $player_b)
{
// REMOVE NON ALPHA NUMERIC ASCII WHILE LEAVING UPPER UTF-8 CHARACTERS
$name_a = preg_replace("/[\x{00}-\x{2F}\x{3A}-\x{40}\x{5B}-\x{60}\x{7B}-\x{7F}]/", "", $player_a['name']);
$name_b = preg_replace("/[\x{00}-\x{2F}\x{3A}-\x{40}\x{5B}-\x{60}\x{7B}-\x{7F}]/", "", $player_b['name']);

if (function_exists("mb_convert_case"))
{
$name_a = @mb_convert_case($name_a, MB_CASE_LOWER, "UTF-8");
$name_b = @mb_convert_case($name_b, MB_CASE_LOWER, "UTF-8");
return strcmp($name_a, $name_b);
}
else
{
return strcasecmp($name_a, $name_b);
}
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_charset_detect($server)
{
if (!function_exists("mb_detect_encoding")) { return "AUTO"; }

$test = "";

if (isset($server['s']['name'])) { $test .= " {$server['s']['name']} "; }

if (isset($server['p']) && $server['p'])
{
foreach ($server['p'] as $player)
{
if (isset($player['name'])) { $test .= " {$player['name']} "; }
}
}

$charset = @mb_detect_encoding($server['s']['name'], "UTF-8, Windows-1252, ISO-8859-1, ISO-8859-15");

return $charset ? $charset : "AUTO";
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_charset_convert($server, $charset)
{
if (!function_exists("mb_convert_encoding")) { return $server; }

if (is_array($server))
{
foreach ($server as $key => $value)
{
$server[$key] = lgsl_charset_convert($value, $charset);
}
}
else
{
$server = @mb_convert_encoding($server, "UTF-8", $charset);
}

return $server;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_server_html($server, $word_wrap = 20)
{
foreach ($server as $key => $value)
{
$server[$key] = is_array($value) ? lgsl_server_html($value, $word_wrap) : lgsl_string_html($value, FALSE, $word_wrap);
}

return $server;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_string_html($string, $xml_feed = FALSE, $word_wrap = 0)
{
if ($word_wrap) { $string = lgsl_word_wrap($string, $word_wrap); }

if ($xml_feed != FALSE)
{
$string = htmlspecialchars($string, ENT_QUOTES);
}
elseif (function_exists("mb_convert_encoding"))
{
$string = htmlspecialchars($string, ENT_QUOTES);
$string = @mb_convert_encoding($string, "HTML-ENTITIES", "UTF-8");
}
else
{
$string = htmlentities($string, ENT_QUOTES, "UTF-8");
}

if ($word_wrap) { $string = lgsl_word_wrap($string); }

return $string;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_word_wrap($string, $length_limit = 0)
{
if (!$length_limit)
{
// http://www.quirksmode.org/oddsandends/wbr.html
// return str_replace("\x05\x06", " ", $string); // VISIBLE
// return str_replace("\x05\x06", "­", $string); // FF2 VISIBLE AND DIV NEEDED
return str_replace("\x05\x06", "​", $string); // IE6 VISIBLE
}

$word_list = explode(" ", $string);

foreach ($word_list as $key => $word)
{
$word_length = function_exists("mb_strlen") ? mb_strlen($word, "UTF-8") : strlen($word);

if ($word_length < $length_limit) { continue; }

$word_new = "";

for ($i=0; $i<$word_length; $i+=$length_limit)
{
$word_new .= function_exists("mb_substr") ? mb_substr($word, $i, $length_limit, "UTF-8") : substr($word, $i, $length_limit);
$word_new .= "\x05\x06";
}

$word_list[$key] = $word_new;
}

return implode(" ", $word_list);
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_location_link($location)
{
if (!$location) { return "#"; }

if (strlen($location) == 2) { return "http://www.wipmania.com/map/{$location}"; }

return "http://www.google.com/search?q=".urlencode($location);
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_query_location($ip)
{
global $lgsl_config;

if ($lgsl_config['locations'] !== 1) { return $lgsl_config['locations']; }

$ip = gethostbyname($ip);

if (long2ip(ip2long($ip)) == "255.255.255.255") { return "XX"; }

$url = "http://api.wipmania.com/".urlencode($ip)."?".urlencode($_SERVER['HTTP_HOST']);

if (function_exists('curl_init') && function_exists('curl_setopt') && function_exists('curl_exec'))
{
$lgsl_curl = curl_init();

curl_setopt($lgsl_curl, CURLOPT_HEADER, 0);
curl_setopt($lgsl_curl, CURLOPT_TIMEOUT, 2);
curl_setopt($lgsl_curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($lgsl_curl, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($lgsl_curl, CURLOPT_URL, $url);

$location = curl_exec($lgsl_curl);

if (curl_error($lgsl_curl)) { $location = "XX"; }

curl_close($lgsl_curl);
}
else
{
$location = @file_get_contents($url);
}

if (strlen($location) != 2) { $location = "XX"; }

return $location;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_realpath($path)
{
// WRAPPER SO IT CAN BE DISABLED

global $lgsl_config;

return $lgsl_config['no_realpath'] ? $path : realpath($path);
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_file_path()
{
// GET THE LGSL_CLASS.PHP PATH

$lgsl_path = __FILE__;

// SHORTEN TO JUST THE FOLDERS AND ADD TRAILING SLASH

$lgsl_path = dirname($lgsl_path)."/";

// CONVERT WINDOWS BACKSLASHES TO FORWARDSLASHES

$lgsl_path = str_replace("\\", "/", $lgsl_path);

return $lgsl_path;
}

//------------------------------------------------------------------------------------------------------------+

function lgsl_url_path()
{
// CHECK IF PATH HAS BEEN SET IN CONFIG

global $lgsl_config;

if ($lgsl_config['url_path'])
{
return $lgsl_config['url_path'];
}

// USE FULL DOMAIN PATH TO AVOID ALIAS PROBLEMS

$host_path = (!isset($_SERVER['HTTPS']) || strtolower($_SERVER['HTTPS']) != "on") ? "http://" : "https://";
$host_path .= $_SERVER['HTTP_HOST'];

// GET FULL PATHS ( EXTRA CODE FOR WINDOWS AND IIS - NO DOCUMENT_ROOT - BACKSLASHES - DOUBLESLASHES - ETC )

if ($_SERVER['DOCUMENT_ROOT'])
{
$base_path = lgsl_realpath($_SERVER['DOCUMENT_ROOT']);
$base_path = str_replace("\\", "/", $base_path);
$base_path = str_replace("//", "/", $base_path);
}
else
{
$file_path = $_SERVER['SCRIPT_NAME'];
$file_path = str_replace("\\", "/", $file_path);
$file_path = str_replace("//", "/", $file_path);

$base_path = $_SERVER['PATH_TRANSLATED'];
$base_path = str_replace("\\", "/", $base_path);
$base_path = str_replace("//", "/", $base_path);
$base_path = substr($base_path, 0, -strlen($file_path));
}

$lgsl_path = dirname(lgsl_realpath(__FILE__));
$lgsl_path = str_replace("\\", "/", $lgsl_path);

// REMOVE ANY TRAILING SLASHES

if (substr($base_path, -1) == "/") { $base_path = substr($base_path, 0, -1); }
if (substr($lgsl_path, -1) == "/") { $lgsl_path = substr($lgsl_path, 0, -1); }

// USE THE DIFFERENCE BETWEEN PATHS

if (substr($lgsl_path, 0, strlen($base_path)) == $base_path)
{
$url_path = substr($lgsl_path, strlen($base_path));

return $host_path.$url_path."/";
}

return "/#LGSL_PATH_PROBLEM#{$base_path}#{$lgsl_path}#/";
}

//------------------------------------------------------------------------------------------------------------+
//------------------------------------------------------------------------------------------------------------+

} // END OF DOUBLE LOAD PROTECTION

//------------------------------------------------------------------------------------------------------------+
//------------------------------------------------------------------------------------------------------------+

global $lgsl_file_path, $lgsl_url_path;

$lgsl_file_path = lgsl_file_path();

if (isset($_GET['lgsl_debug']))
{
echo "<hr /><pre>".print_r($_SERVER, TRUE)."</pre>
<hr />#d0# ".__FILE__."
<hr />#d1# ".@realpath(__FILE__)."
<hr />#d2# ".dirname(__FILE__)."
<hr />#d3# {$lgsl_file_path}
<hr />#d4# {$_SERVER['DOCUMENT_ROOT']}
<hr />#d5# ".@realpath($_SERVER['DOCUMENT_ROOT']);
}

require $lgsl_file_path."lgsl_config.php";
require $lgsl_file_path."lgsl_protocol.php";

$lgsl_url_path = lgsl_url_path();

if (isset($_GET['lgsl_debug']))
{
echo "<hr />#d6# {$lgsl_url_path}
<hr />#c0# {$lgsl_config['url_path']}
<hr />#c1# {$lgsl_config['no_realpath']}
<hr />#c2# {$lgsl_config['feed']['method']}
<hr />#c3# {$lgsl_config['feed']['url']}
<hr />#c4# {$lgsl_config['cache_time']}
<hr />#c5# {$lgsl_config['live_time']}
<hr />#c6# {$lgsl_config['timeout']}
<hr />#c7# {$lgsl_config['cms']}
<hr />";
}

if (!isset($lgsl_config['locations']))
{
exit("LGSL PROBLEM: lgsl_config.php FAILED TO LOAD OR MISSING ENTRIES");
}

//------------------------------------------------------------------------------------------------------------+

если использовать mysqli_connect
An exception occurred: Call to undefined function mysql_error() in /var/www/site.ru/lgsl/lgsl_files/lgsl_class.php on line 131

Отредактировал: Profan, - 28.5.2017, 19:49
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя REKA
сообщение 28.5.2017, 20:19
Сообщение #5


Стаж: 9 лет 1 месяц
Город: Волгоград

Сообщений: 70
Благодарностей: 8
Полезность: 77

Profan,
Везде так замени
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Profan
сообщение 28.5.2017, 20:24
Сообщение #6


Стаж: 10 лет
Город: Сочи

Сообщений: 1317
Благодарностей: 403
Полезность: 698

REKA, Заменил, и кроме пустого окна не чего нет(
ни ошибок ни чего(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя REKA
сообщение 28.5.2017, 20:27
Сообщение #7


Стаж: 9 лет 1 месяц
Город: Волгоград

Сообщений: 70
Благодарностей: 8
Полезность: 77

Цитата(Profan @ 28.5.2017, 21:24) *
REKA, Заменил, и кроме пустого окна не чего нет(
ни ошибок ни чего(

Тогда незнаю, жди более опытных людей
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Profan
сообщение 28.5.2017, 20:36
Сообщение #8


Стаж: 10 лет
Город: Сочи

Сообщений: 1317
Благодарностей: 403
Полезность: 698

В начало файла lgsl_class.php
добавил:
Код:
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

Страница пустая. так же включал ошибки в php.ini и не чего(((
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MarVal
сообщение 28.5.2017, 21:22
Сообщение #9


Стаж: 12 лет

Сообщений: 197
Благодарностей: 54
Полезность: 73

Profan, какая страница пустая? Больше конкретики.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Profan
сообщение 28.5.2017, 21:39
Сообщение #10


Стаж: 10 лет
Город: Сочи

Сообщений: 1317
Благодарностей: 403
Полезность: 698

MarVal, Редактировать шаблон: forum_list
после кода:
<xen:hook name="forum_list_nodes">
добавляю (подключаю)
<xen:callback class="LGSL_Monitoring_index" method="getHtml"></xen:callback>
и получаю ошибки те которые описывал выше, если заменить все в lgsl_class.php
mysql_connect -> mysqli_connect
то главная страница форума не работает. она пустая. ошибки в php.ini включены, но не отображаются.

Отредактировал: Profan, - 28.5.2017, 21:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MarVal
сообщение 28.5.2017, 23:22
Сообщение #11


Стаж: 12 лет

Сообщений: 197
Благодарностей: 54
Полезность: 73

в общем в опу это стеренькое творение, набросал другое на @SourceQuery
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Profan
сообщение 29.5.2017, 1:46
Сообщение #12


Стаж: 10 лет
Город: Сочи

Сообщений: 1317
Благодарностей: 403
Полезность: 698

Спасибо MarVal !



Установка мониторинга на XenForo:

1. Качаем Архив и распаковываем содержимое в корень сайта (форума XenForo).

2. Открываем (редактируем) файл index.php путь к файлу /var/www/ваш-домен.ru/library/LGSL/Monitoring и редактируем 6 строку, вписываем свой домен вместо site.ru (Указываем полный путь к файлу)
Код:
include('/var/www/site.ru/srvmon/mon.php');

3. Открываем (редактируем) файл index.php путь к файлу /var/www/ваш-домен.ru/srvmon и редактируем 6 строку, вписываем свой домен вместо site.ru (Указываем полный путь к файлу)
Код:
include('/var/www/site.ru/srvmon/mon.php');

4. Открываем (редактируем) файл mon.php путь к файлу /var/www/ваш-домен.ru/srvmon подключаем инклуды (Указываем полный путь к файлу) Заменяем site.ru на свой домен. С 2 по 6 строку.
Код:
	include('/var/www/site.ru/srvmon/config.php');
include('/var/www/site.ru/srvmon/query/Buffer.php');
include('/var/www/site.ru/srvmon/query/BaseSocket.php');
include('/var/www/site.ru/srvmon/query/Socket.php');
include('/var/www/site.ru/srvmon/query/SourceQuery.php');

Добавление сервера-серверов:


5. Открываем (редактируем) файл config.php путь к файлу /var/www/ваш-домен.ru/srvmon
Код:
'Server Name' => 'ip:port',
'Server Name' => 'ip:port'

Если один сервер удаляем верхний, если более 2-х то ставим запятую у каждого, до предпоследнего сервера.

Подключаем мониторинг к форуму XenForo:


6. Открываем Админку или ищем по фразе forum_list редактируем шаблон, ищем в нем код: <xen:hook name="forum_list_nodes">
и добавляем после него <xen:callback class="LGSL_Monitoring_index" method="getHtml"></xen:callback>
Должно выглядеть так:

Цитата
Файл со стилями лежит в /var/www/ваш-домен.ru/styles название srvmon.css



После чего сохраняем шаблон и радуемся мониторингу.
Как выглядит мониторинг


Отредактировал: Profan, - 29.5.2017, 23:41
Прикрепленные файлы:
Прикрепленный файл  monitoring.7z ( 3,85 килобайт ) Кол-во скачиваний: 64
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Статус пользователя Cannabis
сообщение 28.8.2017, 9:06
Сообщение #13
Стаж: 11 лет

Сообщений: 162
Благодарностей: 42
Полезность: 37

Актуально с ipb 3.4.9, php 5.5.5, mysql 5.7.19.

Код:
Fatal error: Call to undefined function mysql_connect() in C:\Server\data\htdocs\forum\lgsl\lgsl_files\lgsl_class.php on line 130


Код:
$lgsl_database  = mysql_connect($lgsl_config['db']['server'], $lgsl_config['db']['user'], $lgsl_config['db']['pass']) or die(mysql_error());
$lgsl_select_db = mysql_select_db($lgsl_config['db']['db'], $lgsl_database) or die(mysql_error());

Помогите люди добрые..)

или может проще откатить php ? поставить более старую версию..

Отредактировал: Cannabis, - 28.8.2017, 9:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ladders
сообщение 29.10.2018, 19:49
Сообщение #14


Стаж: 17 лет

Сообщений: 440
Благодарностей: 49
Полезность: 117

Че т попробовал просто на сайт закинуть
Заполнил всё
В итоге выдает так:

Forbidden

You don't have permission to access "название дирректории" on this server.

В чем может быть трабл
Гугль пока что не очень помог))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vavarik
сообщение 29.10.2018, 22:08
Сообщение #15


Стаж: 15 лет
Город: Саратов

Сообщений: 942
Благодарностей: 318
Полезность: 143

SarHosting.ru
ladders, .htaccess юзай или с правами поиграйся
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: