• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Serwer Status PHP/C++

Piechu

New Member
Joined
Oct 10, 2008
Messages
113
Reaction score
0
Location
Poland/Jasło
Helo i Have problem with THEBEST031a_for_TFS_02 it doesn't check serwer status ... Serwer is online but in acc maker : Offline... Where is the problem ? Please Fix That .
 
<?PHP
// ###################### CONFIG ########################
//load page config file
$config['site'] = parse_ini_file('config/config.ini');
//load server config
// ###### INSTALATOR ####
if(file_exists($config['site']['server_path'].'config.lua') && !empty($config['site']['OTS_version']))
$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
else
{
if(isset($_POST['newpath']))
{
$config['site']['OTS_version'] = $_POST['serverversion'];
$config['site']['server_path'] = $_POST['newpath'];
$config['site']['server_path'] = trim($config['site']['server_path'])."\\";
$config['site']['server_path'] = str_replace("\\\\", "/", $config['site']['server_path']);
$config['site']['server_path'] = str_replace("\\", "/", $config['site']['server_path']);
$config['site']['server_path'] = str_replace("//", "/", $config['site']['server_path']);
saveconfig_ini($config['site']);
}
if(file_exists($config['site']['server_path'].'config.lua'))
$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
else
{
echo 'ERROR: <b>'.$config['site']['server_path'].'config.lua</b> doesn\'t exist!<br />';
$install_manager = true;
}
if(empty($config['site']['OTS_version']))
{
echo 'ERROR: Server version not set in <b>config.ini</b> select one from list below!<br />';
$install_manager = true;
}
if($install_manager)
{
echo '<form action="index.php" method="post" ><span><b>Server path:</b></span><input type="text" name="newpath" SIZE="120" maxlength="350" value="'.$config['site']['server_path'].'"><br />
<b>Server version:</b><br />';
if($config['site']['OTS_version'] == 'tfs03gesior')
echo '<input type="radio" name="serverversion" value="tfs03gesior" checked="checked" />TFS 0.3 beta + Gesior acc. maker for TFS 0.3 is installed in this database<br />';
else
echo '<input type="radio" name="serverversion" value="tfs03gesior" />TFS 0.3 beta + Gesior acc. maker for TFS 0.3 is installed in this database<br />';
if($config['site']['OTS_version'] == 'tfs03')
echo '<input type="radio" name="serverversion" value="tfs03" checked="checked" />TFS 0.3 beta<br />';
else
echo '<input type="radio" name="serverversion" value="tfs03" />TFS 0.3 beta<br />';
if($config['site']['OTS_version'] == 'tfs02gesior')
echo '<input type="radio" name="serverversion" value="tfs02gesior" checked="checked" />TFS from version 0.2.6 to 0.2.13 + Gesior acc. maker for TFS 0.2 is installed in this database<br />';
else
echo '<input type="radio" name="serverversion" value="tfs02gesior" />TFS from version 0.2.6 to 0.2.13 + Gesior acc. maker for TFS 0.2 is installed in this database<br />';
if($config['site']['OTS_version'] == 'tfs02')
echo '<input type="radio" name="serverversion" value="tfs02" checked="checked" />TFS from version 0.2.6 to 0.2.13 OR [8.1]
SQL:
The Best War by Gesior<br />';
		else
			echo '<input type="radio" name="serverversion" value="tfs02" />TFS from version 0.2.6 to 0.2.13 OR [8.1][code=sql]The Best War by Gesior<br />';
		echo '<br /><input type="submit" value="Set new path and server version">
			</form>Put here you OTS folder path like: <b><i>C:/mygreatOTS/</i></b>';
		exit;
	}
}
// ############### CONFIG FOR SERVER ####################
if(strtolower($config['site']['OTS_version']) == 'tfs03gesior')
{
	//account database config
	$config['dbmanager'] = array();
	$config['dbmanager']['account_premdays'] = true;
	$config['dbmanager']['account_premdays_field'] = 'premdays';
	$config['dbmanager']['account_type'] = false;
	$config['dbmanager']['account_type_field'] = 'type';
	$config['dbmanager']['account_key'] = true;
	$config['dbmanager']['account_key_field'] = 'key';
	$config['dbmanager']['account_rlname'] = true;
	$config['dbmanager']['account_rlname_field'] = 'rlname';
	$config['dbmanager']['account_location'] = true;
	$config['dbmanager']['account_location_field'] = 'location';
	$config['dbmanager']['account_pageaccess'] = true;
	$config['dbmanager']['account_pageaccess_field'] = 'page_access';
	$config['dbmanager']['account_premiumpoints'] = true;
	$config['dbmanager']['account_premiumpoints_field'] = 'premium_points';
	$config['dbmanager']['player_balance'] = true;
	$config['dbmanager']['player_balance_field'] = 'balance';
	$config['dbmanager']['player_loss_experience'] = true;
	$config['dbmanager']['player_loss_experience_field'] = 'loss_experience';
	$config['dbmanager']['player_loss_mana'] = true;
	$config['dbmanager']['player_loss_mana_field'] = 'loss_mana';
	$config['dbmanager']['player_loss_skills'] = true;
	$config['dbmanager']['player_loss_skills_field'] = 'loss_skills';
	$config['dbmanager']['player_loss_items'] = true;
	$config['dbmanager']['player_loss_items_field'] = 'loss_items';
	$config['dbmanager']['player_online'] = true;
	$config['dbmanager']['player_online_field'] = 'online';
	$config['dbmanager']['player_comment'] = true;
	$config['dbmanager']['player_comment_field'] = 'comment';
	$config['dbmanager']['group_customflags'] = true;
	$config['dbmanager']['group_customflags_field'] = 'customflags';
	$config['dbmanager']['group_violationaccess'] = true;
	$config['dbmanager']['group_violationaccess_field'] = 'violationaccess';
	// files config
	$config['site']['vocationXML_file_subdir'] = "data/XML/vocations.xml";
	// database config
	$pot_catalog = 'POT-0.1.4';
	$sql_connection_type = strtolower($config['server']['sqlType']);
	$mysqlhost = $config['server']['mysqlHost'];
	$mysqluser = $config['server']['mysqlUser'];
	$mysqlpass = $config['server']['mysqlPass'];
	$mysqldatabase = $config['server']['mysqlDatabase'];
	$sqlitefile = $config['server']['sqliteDatabase'];
	$passwordency = '';
	if(strtolower($config['server']['passwordType']) == 'md5')
	{
		$passwordency = 'md5';
	}
	elseif(strtolower($config['server']['passwordType']) == 'sha1')
	{
		$passwordency = 'sha1';
	}
}
elseif(strtolower($config['site']['OTS_version']) == 'tfs03')
{
	//account database config
	$config['dbmanager'] = array();
	$config['dbmanager']['account_premdays'] = true;
	$config['dbmanager']['account_premdays_field'] = 'premdays';
	$config['dbmanager']['account_type'] = false;
	$config['dbmanager']['account_type_field'] = 'type';
	$config['dbmanager']['account_key'] = true;
	$config['dbmanager']['account_key_field'] = 'key';
	$config['dbmanager']['account_rlname'] = false;
	$config['dbmanager']['account_rlname_field'] = 'rlname';
	$config['dbmanager']['account_location'] = false;
	$config['dbmanager']['account_location_field'] = 'location';
	$config['dbmanager']['account_pageaccess'] = false;
	$config['dbmanager']['account_pageaccess_field'] = 'page_access';
	$config['dbmanager']['player_balance'] = true;
	$config['dbmanager']['player_balance_field'] = 'balance';
	$config['dbmanager']['player_loss_experience'] = true;
	$config['dbmanager']['player_loss_experience_field'] = 'loss_experience';
	$config['dbmanager']['player_loss_mana'] = true;
	$config['dbmanager']['player_loss_mana_field'] = 'loss_mana';
	$config['dbmanager']['player_loss_skills'] = true;
	$config['dbmanager']['player_loss_skills_field'] = 'loss_skills';
	$config['dbmanager']['player_loss_items'] = true;
	$config['dbmanager']['player_loss_items_field'] = 'loss_items';
	$config['dbmanager']['player_online'] = true;
	$config['dbmanager']['player_online_field'] = 'online';
	$config['dbmanager']['player_comment'] = false;
	$config['dbmanager']['player_comment_field'] = 'comment';
	$config['dbmanager']['group_customflags'] = true;
	$config['dbmanager']['group_customflags_field'] = 'customflags';
	$config['dbmanager']['group_violationaccess'] = true;
	$config['dbmanager']['group_violationaccess_field'] = 'violationaccess';
	// files config
	$config['site']['vocationXML_file_subdir'] = "data/XML/vocations.xml";
	// database config
	$pot_catalog = 'POT-0.1.4';
	$sql_connection_type = strtolower($config['server']['sqlType']);
	$mysqlhost = $config['server']['mysqlHost'];
	$mysqluser = $config['server']['mysqlUser'];
	$mysqlpass = $config['server']['mysqlPass'];
	$mysqldatabase = $config['server']['mysqlDatabase'];
	$sqlitefile = $config['server']['sqliteDatabase'];
	$passwordency = '';
	if(strtolower($config['server']['passwordType']) == 'md5')
	{
		$passwordency = 'md5';
	}
	elseif(strtolower($config['server']['passwordType']) == 'sha1')
	{
		$passwordency = 'sha1';
	}
}
elseif(strtolower($config['site']['OTS_version']) == 'tfs02')
{
	//account database config
	$config['dbmanager'] = array();
	$config['dbmanager']['account_premdays'] = true;
	$config['dbmanager']['account_premdays_field'] = 'premdays';
	$config['dbmanager']['account_type'] = true;
	$config['dbmanager']['account_type_field'] = 'type';
	$config['dbmanager']['account_key'] = true;
	$config['dbmanager']['account_key_field'] = 'key';
	$config['dbmanager']['account_rlname'] = false;
	$config['dbmanager']['account_rlname_field'] = 'rlname';
	$config['dbmanager']['account_location'] = false;
	$config['dbmanager']['account_location_field'] = 'location';
	$config['dbmanager']['account_pageaccess'] = false;
	$config['dbmanager']['account_pageaccess_field'] = 'page_access';
	$config['dbmanager']['player_balance'] = false;
	$config['dbmanager']['player_balance_field'] = 'balance';
	$config['dbmanager']['player_loss_experience'] = false;
	$config['dbmanager']['player_loss_experience_field'] = 'loss_experience';
	$config['dbmanager']['player_loss_mana'] = false;
	$config['dbmanager']['player_loss_mana_field'] = 'loss_mana';
	$config['dbmanager']['player_loss_skills'] = false;
	$config['dbmanager']['player_loss_skills_field'] = 'loss_skills';
	$config['dbmanager']['player_loss_items'] = false;
	$config['dbmanager']['player_loss_items_field'] = 'loss_items';
	$config['dbmanager']['player_online'] = true;
	$config['dbmanager']['player_online_field'] = 'online';
	$config['dbmanager']['player_comment'] = false;
	$config['dbmanager']['player_comment_field'] = 'comment';
	$config['dbmanager']['group_customflags'] = false;
	$config['dbmanager']['group_customflags_field'] = 'customflags';
	$config['dbmanager']['group_violationaccess'] = false;
	$config['dbmanager']['group_violationaccess_field'] = 'violationaccess';
	// files config
	$config['site']['vocationXML_file_subdir'] = "data/XML/vocations.xml";
	// database config
	$pot_catalog = 'POT-0.1.0';
	$sql_connection_type = strtolower($config['server']['sqlType']);
	$mysqlhost = $config['server']['mysqlHost'];
	$mysqluser = $config['server']['mysqlUser'];
	$mysqlpass = $config['server']['mysqlPass'];
	$mysqldatabase = $config['server']['mysqlDatabase'];
	$sqlitefile = $config['server']['sqliteDatabase'];
	$passwordency = '';
	if(strtolower($config['server']['passwordType']) == 'md5')
	{
		$passwordency = 'md5';
	}
	elseif(strtolower($config['server']['passwordType']) == 'sha1')
	{
		$passwordency = 'sha1';
	}
}
elseif(strtolower($config['site']['OTS_version']) == 'tfs02gesior')
{
	//account database config
	$config['dbmanager'] = array();
	$config['dbmanager']['account_premdays'] = true;
	$config['dbmanager']['account_premdays_field'] = 'premdays';
	$config['dbmanager']['account_type'] = true;
	$config['dbmanager']['account_type_field'] = 'type';
	$config['dbmanager']['account_key'] = true;
	$config['dbmanager']['account_key_field'] = 'key';
	$config['dbmanager']['account_rlname'] = false;
	$config['dbmanager']['account_rlname_field'] = 'rlname';
	$config['dbmanager']['account_location'] = false;
	$config['dbmanager']['account_location_field'] = 'location';
	$config['dbmanager']['account_pageaccess'] = true;
	$config['dbmanager']['account_pageaccess_field'] = 'page_access';
	$config['dbmanager']['account_premiumpoints'] = true;
	$config['dbmanager']['account_premiumpoints_field'] = 'premium_points';
	$config['dbmanager']['player_balance'] = false;
	$config['dbmanager']['player_balance_field'] = 'balance';
	$config['dbmanager']['player_loss_experience'] = false;
	$config['dbmanager']['player_loss_experience_field'] = 'loss_experience';
	$config['dbmanager']['player_loss_mana'] = false;
	$config['dbmanager']['player_loss_mana_field'] = 'loss_mana';
	$config['dbmanager']['player_loss_skills'] = false;
	$config['dbmanager']['player_loss_skills_field'] = 'loss_skills';
	$config['dbmanager']['player_loss_items'] = false;
	$config['dbmanager']['player_loss_items_field'] = 'loss_items';
	$config['dbmanager']['player_online'] = true;
	$config['dbmanager']['player_online_field'] = 'online';
	$config['dbmanager']['player_comment'] = true;
	$config['dbmanager']['player_comment_field'] = 'comment';
	$config['dbmanager']['group_customflags'] = false;
	$config['dbmanager']['group_customflags_field'] = 'customflags';
	$config['dbmanager']['group_violationaccess'] = false;
	$config['dbmanager']['group_violationaccess_field'] = 'violationaccess';
	// files config
	$config['site']['vocationXML_file_subdir'] = "data/XML/vocations.xml";
	// database config
	$pot_catalog = 'POT-0.1.0';
	$sql_connection_type = strtolower($config['server']['sqlType']);
	$mysqlhost = $config['server']['mysqlHost'];
	$mysqluser = $config['server']['mysqlUser'];
	$mysqlpass = $config['server']['mysqlPass'];
	$mysqldatabase = $config['server']['mysqlDatabase'];
	$sqlitefile = $config['server']['sqliteDatabase'];
	$passwordency = '';
	if(strtolower($config['server']['passwordType']) == 'md5')
	{
		$passwordency = 'md5';
	}
	elseif(strtolower($config['server']['passwordType']) == 'sha1')
	{
		$passwordency = 'sha1';
	}
}

// loads #####POT mainfile#####
include($pot_catalog.'/OTS.php');
// PDO and POT connects to database
$ots = POT::getInstance();
if($sql_connection_type == "mysql")
{
	//connect to MySQL database
	$loaded_db_name = $mysqldatabase;
	try
	{
		$ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) );
	}
	catch(PDOException $error)
	{
	    echo 'Database error - can\'t connect to MySQL database. Possible reasons:<br>1. MySQL server is not running on host.<br>2. MySQL user, password, database or host isn\'t configured in: <b>'.$config['site']['server_path'].'config.lua</b> .<br>3. MySQL user, password, database or host is wrong.';
		exit;
	}
}
elseif($sql_connection_type == "sqlite")
{
	//connect to SQLite database
	$loaded_db_name = $sqlitefile;
	$link_to_sqlitedatabase = $config['site']['server_path'].$sqlitefile;
	try
	{
		$ots->connect(POT::DB_SQLITE, array('database' => $link_to_sqlitedatabase));
	}
	catch(PDOException $error)
	{
	    echo 'Database error - can\'t open SQLite database. Possible reasons:<br><b>'.$link_to_sqlitedatabase.'</b> - file isn\'t valid SQLite database.<br><b>'.$link_to_sqlitedatabase.'</b> - doesn\'t exist.<br><b>Your web server isn\'t configured to work with SQLite databases</b>';
		exit;
	}
}
else
{
	echo 'Database error. Unknown database type in <b>'.$config['site']['server_path'].'config.lua</b> . Maybe you selected wrong OTS in config? Must be equal to: "<b>mysql</b>" or "<b>sqlite</b>". Now is: "<b>'.$sql_connection_type.'"</b>';
	exit;
}
$SQL = POT::getInstance()->getDBHandle();
$ots_vocations_xml = simplexml_load_file($config['site']['server_path'].$config['site']['vocationXML_file_subdir']);
$vocations_skills = array();
foreach($ots_vocations_xml as $vocationz)
{
	foreach($vocationz as $skill)
		$vocations_skills[(int) $vocationz['id']][(int) $skill['id']] =  $skill['multiplier'];
	$ots_vocations[(int) $vocationz['id']] = $vocationz;
}
$filter_operators = array('' => 3, '0' => 3, 'equal' => 1, 'lower' => 2, 'higher' => 3, 'notequal' => 4, 'higherorequal' => 5, 'lowerorequal' => 6, 'like' => 7, 'notlike' => 8);
//###################### FUNCTIONS ######################

function show_operators_list($selected_value)
{
	if($selected_value == 'higher')
		$to_return .= '<option value="higher" selected="selected" >></option>';
	else
		$to_return .= '<option value="higher" >></option';
	if($selected_value == 'equal')
		$to_return .= '<option value="equal" selected="selected" >=</option>';
	else
		$to_return .= '<option value="equal" >=</option>';
	if($selected_value == 'lower')
		$to_return .= '<option value="lower" selected="selected" ><</option>';
	else
		$to_return .= '<option value="lower" ><</option>';
	if($selected_value == 'lowerorequal')
		$to_return .= '<option value="lowerorequal" selected="selected" ><=</option>';
	else
		$to_return .= '<option value="lowerorequal" ><=</option>';
	if($selected_value == 'higherorequal')
		$to_return .= '<option value="higherorequal" selected="selected" >>=</option>';
	else
		$to_return .= '<option value="higherorequal" >>=</option>';
	return $to_return;
}
function show_pages_links($page, $results_count, $results_per_page, $href)
{	
	if($page > 1 && $page-100 >= 1)
		$to_return .= '<a href="'.$href.($page-100).'">'. ($page-100) .'</a> ';
	if($page > 1 && $page-50 >= 1)
		$to_return .= '<a href="'.$href.($page-50).'">'. ($page-50) .'</a> ';
	if($page > 1 && $page-40 >= 1)
		$to_return .= '<a href="'.$href.($page-40).'">'. ($page-40) .'</a> ';
	if($page > 1 && $page-30 >= 1)
		$to_return .= '<a href="'.$href.($page-30).'">'. ($page-30) .'</a> ';
	if($page > 1 && $page-20 >= 1)
		$to_return .= '<a href="'.$href.($page-20).'">'. ($page-20) .'</a> ';
	if($page > 1 && $page-10 >= 1)
		$to_return .= '<a href="'.$href.($page-10).'">'. ($page-10) .'</a> ';
	if($page > 1 && $page-9 >= 1)
		$to_return .= '<a href="'.$href.($page-9).'">'. ($page-9) .'</a> ';
	if($page > 1 && $page-8 >= 1)
		$to_return .= '<a href="'.$href.($page-8).'">'. ($page-8) .'</a> ';
	if($page > 1 && $page-7 >= 1)
		$to_return .= '<a href="'.$href.($page-7).'">'. ($page-7) .'</a> ';
	if($page > 1 && $page-6 >= 1)
		$to_return .= '<a href="'.$href.($page-6).'">'. ($page-6) .'</a> ';
	if($page > 1 && $page-5 >= 1)
		$to_return .= '<a href="'.$href.($page-5).'">'. ($page-5) .'</a> ';
	if($page > 1 && $page-4 >= 1)
		$to_return .= '<a href="'.$href.($page-4).'">'. ($page-4) .'</a> ';
	if($page > 1 && $page-3 >= 1)
		$to_return .= '<a href="'.$href.($page-3).'">'. ($page-3) .'</a> ';
	if($page > 1 && $page-2 >= 1)
		$to_return .= '<a href="'.$href.($page-2).'">'. ($page-2) .'</a> ';
	if($page > 1 && $page-1 >= 1)
		$to_return .= '<a href="'.$href.($page-1).'">'. ($page-1) .'</a> ';
	$to_return .= '<b> '.$page.' </b>';
	if($results_count > $page * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+1).'">'. ($page+1) .'</a>';
	if($results_count > ($page+1) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+2).'">'. ($page+2) .'</a>';
	if($results_count > ($page+2) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+3).'">'. ($page+3) .'</a>';
	if($results_count > ($page+3) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+4).'">'. ($page+4) .'</a>';
	if($results_count > ($page+4) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+5).'">'. ($page+5) .'</a>';
	if($results_count > ($page+5) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+6).'">'. ($page+6) .'</a>';
	if($results_count > ($page+6) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+7).'">'. ($page+7) .'</a>';
	if($results_count > ($page+7) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+8).'">'. ($page+8) .'</a>';
	if($results_count > ($page+8) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+9).'">'. ($page+9) .'</a>';
	if($results_count > ($page+9) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+10).'">'. ($page+10) .'</a>';
	if($results_count > ($page+19) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+20).'">'. ($page+20) .'</a>';
	if($results_count > ($page+29) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+30).'">'. ($page+30) .'</a>';
	if($results_count > ($page+39) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+40).'">'. ($page+40) .'</a>';
	if($results_count > ($page+49) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+50).'">'. ($page+50) .'</a>';
	if($results_count > ($page+99) * $results_per_page)
		$to_return .= ' <a href="'.$href.($page+100).'">'. ($page+100) .'</a>';
	
	return $to_return;
}
//return password "to db"
function password_ency($password)
{
	$ency = $GLOBALS['passwordency'];
	if($ency == 'sha1')
	{
		return sha1($password);
	}
	elseif($ency == 'md5')
	{
		return md5($password);
	}
	else
	{
		return $password;
	}
}

function getIPrange($ip)
{
	$url = 'http://ripe.net/fcgi-bin/whois?form_type=advanced&full_query_string=&searchtext='.$ip;
	$url.= '&inverse_attributes=None&ip_search_lvl=Default&recursive=ON&domain_name_referral=ON';
	$url.= '&alt_database=RIPE&object_type=domain&object_type=inet6num&object_type=inetnum';
	$url.= '&Simple+search=Simple+search';
	$url_data = implode("", file($url));
	$a = preg_match("@Information related to '(.*?)'</i>@", $url_data, $ips);
	return explode(" - ", $ips[1]);
}

function convert_long2ip($long)
{
	// Valid range: 0.0.0.0 -> 255.255.255.255
	if ($long < 0 || $long > 4294967295) return 0;
	$ip = "";
	for ($i=3;$i>=0;$i--) {
	$ip = (int)($long / pow(256,$i)).$ip;
	$long -= (int)($long / pow(256,$i))*pow(256,$i);
	if ($i>0) $ip = ".".$ip;
	}
    return $ip;
}


//is it valid nick?
function check_name($name)
{
  $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM- [ ] '");
  if ($temp != strlen($name)) {
	return false;
  }
  else
  {
	$ok = "/[a-zA-Z ']{1,25}/";
	return (preg_match($ok, $name))? true: false;
  }
}
//is it valid password?
function check_password($pass)
{
  $temp = strspn("$pass", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890");
  if ($temp != strlen($pass))
  {
	return false;
  }
  else
  {
	  $ok = "/[a-zA-Z0-9]{1,40}/";
	  return (preg_match($ok, $pass))? true: false;
  }
}

function delete_player($name)
{
	$SQL = $GLOBALS['SQL'];
	$player = new OTS_Player();
	$player->find($name);
	if($player->isLoaded()) {
		try { $SQL->query("DELETE FROM player_skills WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM guild_invites WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_items WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_depotitems WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_spells WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_storage WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_viplist WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_deaths WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_deaths WHERE killed_by = '".str_replace("'", "\'", $player->getName())."';"); } catch(PDOException $error) {}
		$rank = $player->getRank();
		if(!empty($rank)) {
			$guild = $rank->getGuild();
			if($guild->getOwner()->getId() == $player->getId()) {
				$rank_list = $guild->getGuildRanksList();
				if(count($rank_list) > 0) {
					$rank_list->orderBy('level');
					foreach($rank_list as $rank_in_guild) {
						$players_with_rank = $rank_in_guild->getPlayersList();
						$players_with_rank->orderBy('name');
						$players_with_rank_number = count($players_with_rank);
						if($players_with_rank_number > 0) {
							foreach($players_with_rank as $player_in_guild) {
								$player_in_guild->setRank();
								$player_in_guild->save();
							}
						}
						$rank_in_guild->delete();
					}
					$guild->delete();
				}
			}
		}
		$player->delete();
		return TRUE;
	}
}
function saveconfig_ini($config)
{
	$file = fopen("config/config.ini", "w");
	foreach($config as $param => $data)
	{
$file_data .= $param.' = "'.str_replace('"', '', $data).'"
';
	}
	rewind($file);
	fwrite($file, $file_data);
	fclose($file);
}
?>[/QUOTE]




2 config and function

[QUOTE]<?PHP
// ###################### CONFIG ########################
//load page config file
$config['site'] = parse_ini_file('config/config.ini');
//check install
if($config['site']['install'] != "no") {
	header("Location: install.php");
	exit;
}
//parse data from page config file
$vocations_from_config = explode(":", $config['site']['char_vocations']);
foreach(explode(":", $config['site']['char_vocations']) as $value)
{
	$char_vocations_add = explode(",", $value);
	$config['char_vocations'][$char_vocations_add['0']] = $char_vocations_add['1'];
}
if($config['site']['char_type'] != "main") {
	$config['char_vocations']['Rook'] = $config['site']['char_rook_name'];
}
foreach(explode(":", $config['site']['towns_list']) as $value)
{
	$add_town = explode(",", $value);
	$towns_list[$add_town['0']] = $add_town['1'];
}
$config_vocations = explode(",", $config['site']['vocations_list']);
$config_vocations_short = explode(",", $config['site']['vocations_short_list']);
//load server config
$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
if(isset($config['server']['mysqlHost']))
{
	//new (0.2.6+) ots config.lua file
	$mysqlhost = $config['server']['mysqlHost'];
	$mysqluser = $config['server']['mysqlUser'];
	$mysqlpass = $config['server']['mysqlPass'];
	$mysqldatabase = $config['server']['mysqlDatabase'];
}
elseif(isset($config['server']['sqlHost']))
{
	//old (0.2.4) ots config.lua file
	$mysqlhost = $config['server']['sqlHost'];
	$mysqluser = $config['server']['sqlUser'];
	$mysqlpass = $config['server']['sqlPass'];
	$mysqldatabase = $config['server']['sqlDatabase'];
}
$sqlitefile = $config['server']['sqliteDatabase'];
$passwordency = '';
if(strtolower($config['server']['useMD5Passwords']) == 'yes' || strtolower($config['server']['passwordType']) == 'md5')
{
	$passwordency = 'md5';
}
if(strtolower($config['server']['passwordType']) == 'sha1')
{
	$passwordency = 'sha1';
}
// loads #####POT mainfile#####
include('pot/OTS.php');
// PDO and POT connects to database
$ots = POT::getInstance();
if(strtolower($config['server']['sqlType']) == "mysql")
{
	//connect to MySQL database
	try
	{
		$ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) );
	}
	catch(PDOException $error)
	{
	    echo 'Database error - can\'t connect to MySQL database. Possible reasons:<br>1. MySQL server is not running on host.<br>2. MySQL user, password, database or host isn\'t configured in: <b>'.$config['site']['server_path'].'config.lua</b> .<br>3. MySQL user, password, database or host is wrong.';
		exit;
	}
}
elseif(strtolower($config['server']['sqlType']) == "sqlite")
{
	//connect to SQLite database
	$link_to_sqlitedatabase = $config['site']['server_path'].$sqlitefile;
	try
	{
		$ots->connect(POT::DB_SQLITE, array('database' => $link_to_sqlitedatabase));
	}
	catch(PDOException $error)
	{
	    echo 'Database error - can\'t open SQLite database. Possible reasons:<br><b>'.$link_to_sqlitedatabase.'</b> - file isn\'t valid SQLite database.<br><b>'.$link_to_sqlitedatabase.'</b> - doesn\'t exist.<br><font color="red">Wrong PHP configuration. Default PHP does not work with SQLite databases!</font>';
		exit;
	}
}
else
{
	echo 'Database error. Unknown database type in <b>'.$config['site']['server_path'].'config.lua</b> . Must be equal to: "<b>mysql</b>" or "<b>sqlite</b>". Now is: "<b>'.strtolower($config['server']['sqlType']).'"</b>';
	exit;
}

$SQL = POT::getInstance()->getDBHandle();
$layout_name = "layouts/".$layout_name = $config['site']['layout'];;
$layout_ini = parse_ini_file($layout_name.'/layout_config.ini');
foreach($layout_ini as $key => $value)
	$config['site'][$key] = $value;
//###################### FUNCTIONS ######################
//save config in ini file
function saveconfig_ini($config)
{
	$file = fopen("config/config.ini", "w");
	foreach($config as $param => $data)
	{
$file_data .= $param.' = "'.str_replace('"', '', $data).'"
';
	}
	rewind($file);
	fwrite($file, $file_data);
	fclose($file);
}
//return password to db
function password_ency($password) {
	$ency = $GLOBALS['passwordency'];
	if($ency == 'sha1')
		return sha1($password);
	elseif($ency == 'md5')
		return md5($password);
	elseif($ency == '')
		return $password;
}
//delete player with name
function delete_player($name) {
	$SQL = $GLOBALS['SQL'];
	$player = new OTS_Player();
	$player->find($name);
	if($player->isLoaded()) {
		try { $SQL->query("DELETE FROM player_skills WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM guild_invites WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_items WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_depotitems WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_spells WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_storage WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_viplist WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_deaths WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
		try { $SQL->query("DELETE FROM player_deaths WHERE killed_by = '".str_replace("'", "\'", $player->getName())."';"); } catch(PDOException $error) {}
		$rank = $player->getRank();
		if(!empty($rank)) {
			$guild = $rank->getGuild();
			if($guild->getOwner()->getId() == $player->getId()) {
				$rank_list = $guild->getGuildRanksList();
				if(count($rank_list) > 0) {
					$rank_list->orderBy('level');
					foreach($rank_list as $rank_in_guild) {
						$players_with_rank = $rank_in_guild->getPlayersList();
						$players_with_rank->orderBy('name');
						$players_with_rank_number = count($players_with_rank);
						if($players_with_rank_number > 0) {
							foreach($players_with_rank as $player_in_guild) {
								$player_in_guild->setRank();
								$player_in_guild->save();
							}
						}
						$rank_in_guild->delete();
					}
					$guild->delete();
				}
			}
		}
		$player->delete();
		return TRUE;
	}
}

//delete account with id, nto ready
function delete_account($id) {

}

//delete guild with id
function delete_guild($id) {
	$guild = new OTS_Guild();
	$guild->load($id);
	if($guild->isLoaded()) {
		$rank_list = $guild->getGuildRanksList();
		if(count($rank_list) > 0) {
			$rank_list->orderBy('level');
			foreach($rank_list as $rank_in_guild) {
				$players_with_rank = $rank_in_guild->getPlayersList();
				if(count($players_with_rank) > 0) {
					foreach($players_with_rank as $player_in_guild) {
						$player_in_guild->setRank();
						$player_in_guild->save();
					}
				}
				$rank_in_guild->delete();
			}
		}
		$guild->delete();
		return TRUE;
	}
	else
		return FALSE;
}

//is it valid nick?
function check_name($name)//sprawdza name
{
  $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM- [ ] '");
  if ($temp != strlen($name)) {
	return false;
  }
  else
  {
	$ok = "/[a-zA-Z ']{1,25}/";
	return (preg_match($ok, $name))? true: false;
  }
}

//is it valid nick for new char?
function check_name_new_char($name)//sprawdza name
{
	$name_to_check = strtolower($name);
	//first word can't be:
	//names blocked:
	$names_blocked = array('gm','cm', 'god', 'tutor');
	$first_words_blocked = array('gm ','cm ', 'god ','tutor ', "'", '-');
	//name can't contain:
	$words_blocked = array('gamemaster', 'game master', 'game-master', "game'master", '--', "''","' ", " '", '- ', ' -', "-'", "'-", 'fuck', 'sux', 'suck', 'noob', 'tutor');
	foreach($first_words_blocked as $word)
		if($word == substr($name_to_check, 0, strlen($word)))
			return false;
	if(substr($name_to_check, -1) == "'" || substr($name_to_check, -1) == "-")
		return false;
	if(substr($name_to_check, 1, 1) == ' ')
		return false;
	if(substr($name_to_check, -2, 1) == " ")
		return false;
foreach($names_blocked as $word)
	if($word == $name)
		return false;
	for($i = 0; $i < strlen($name_to_check); $i++)
		if($name_to_check[$i-1] == ' ' && $name_to_check[$i+1] == ' ')
			return false;
	foreach($words_blocked as $word)
		if (!(strpos($name_to_check, $word) === false))
			return false;
	for($i = 0; $i < strlen($name_to_check); $i++)
		if($name_to_check[$i] == $name_to_check[($i+1)] && $name_to_check[$i] == $name_to_check[($i+2)])
			return false;
	for($i = 0; $i < strlen($name_to_check); $i++)
		if($name_to_check[$i-1] == ' ' && $name_to_check[$i+1] == ' ')
			return false;
	$temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM- '");
	if ($temp != strlen($name))
		return false;
	else
	{
		$ok = "/[a-zA-Z ']{1,25}/";
		return (preg_match($ok, $name))? true: false;
	}
}

//is rank name valid?
function check_rank_name($name)//sprawdza name
{
  $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789-[ ] ");
  if ($temp != strlen($name)) {
	return false;
  }
  else
  {
	$ok = "/[a-zA-Z ]{1,60}/";
	return (preg_match($ok, $name))? true: false;
  }
}
//is guild name valid?
function check_guild_name($name)
{
  $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789- ");
  if ($temp != strlen($name)) {
	return false;
  }
  else
  {
	$ok = "/[a-zA-Z ]{1,60}/";
	return (preg_match($ok, $name))? true: false;
  }
}
//is it valid password?
function check_password($pass)//sprawdza haslo
{
  $temp = strspn("$pass", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890");
  if ($temp != strlen($pass)) {
  return false;
  }
  else
  {
  $ok = "/[a-zA-Z0-9]{1,40}/";
  return (preg_match($ok, $pass))? true: false;
  }
}
//is it valid e-mail?
function check_mail($email)//sprawdza mail
{
  $ok = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}/";
  return (preg_match($ok, $email))? true: false;
}

//################### DISPLAY FUNCTIONS #####################
//return shorter text (news ticker)
function short_text($text, $chars_limit) 
{
  if (strlen($text) > $chars_limit) 
    return substr($text, 0, strrpos(substr($text, 0, $chars_limit), " ")).'...';
  else return $text;
}
//return text to news msg
function news_place() {
if($GLOBALS['subtopic'] == "latestnews") {
//add tickers to site - without it tickers will not be showed
//$news .= $GLOBALS['news_content'];
/*
//featured article
$layout_name = $GLOBALS['layout_name'];
$news .= '  <div id="featuredarticle" class="Box">
    <div class="Corner-tl" style="background-image:url('.$layout_name.'/images/content/corner-tl.gif);"></div>
    <div class="Corner-tr" style="background-image:url('.$layout_name.'/images/content/corner-tr.gif);"></div>
    <div class="Border_1" style="background-image:url('.$layout_name.'/images/content/border-1.gif);"></div>
    <div class="BorderTitleText" style="background-image:url('.$layout_name.'/images/content/title-background-green.gif);"></div>
    <img class="Title" src="'.$layout_name.'/images/strings/headline-featuredarticle.gif" alt="Contentbox headline" />
    <div class="Border_2">
      <div class="Border_3">
        <div class="BoxContent" style="background-image:url('.$layout_name.'/images/content/scroll.gif);">
<div id=\'TeaserThumbnail\'><img src="'.$layout_name.'/images/news/features.jpg" width=150 height=100 border=0 alt="" /></div><div id=\'TeaserText\'><div style="position: relative; top: -2px; margin-bottom: 2px;" >
<b>Tutaj wpisz tytul</b></div>
tutaj wpisz tresc newsa<br>
zdjecie laduje sie w <i>tibiacom/images/news/features.jpg</i><br>
skad sie laduje mozesz zmienic linijke ponad komentarzem
</div>        </div>
      </div>
    </div>
    <div class="Border_1" style="background-image:url('.$layout_name.'/images/content/border-1.gif);"></div>
    <div class="CornerWrapper-b"><div class="Corner-bl" style="background-image:url('.$layout_name.'/images/content/corner-bl.gif);"></div></div>
    <div class="CornerWrapper-b"><div class="Corner-br" style="background-image:url('.$layout_name.'/images/content/corner-br.gif);"></div></div>
  </div>';
 */
}
return $news;
}
//set monster of week
function logo_monster() {
	return str_replace(" ", "", trim(mb_strtolower($GLOBALS['config']['site']['logo_monster'])));
}
$statustimeout = 1;
foreach(explode("*", str_replace(" ", "", $config['server']['statusTimeout'])) as $status_var)
	if($status_var > 0)
		$statustimeout = $statustimeout * $status_var;
$statustimeout = $statustimeout / 1000;
$config['status'] = parse_ini_file('config/serverstatus');
if($config['status']['serverStatus_lastCheck']+$statustimeout < time())
{
	$config['status']['serverStatus_checkInterval'] = $statustimeout+3;
	$config['status']['serverStatus_lastCheck'] = time();
	$info = chr(6).chr(0).chr(255).chr(255).'info';
	$sock = @fsockopen("127.0.0.1", $config['server']['port'], $errno, $errstr, 1);
	if ($sock)
	{
		fwrite($sock, $info); 
		$data=''; 
		while (!feof($sock))
			$data .= fgets($sock, 1024);
		fclose($sock);
		preg_match('/players online="(\d+)" max="(\d+)"/', $data, $matches);
		$config['status']['serverStatus_online'] = 1;
		$config['status']['serverStatus_players'] = $matches[1];
		$config['status']['serverStatus_playersMax'] = $matches[2];
		preg_match('/uptime="(\d+)"/', $data, $matches);
		$h = floor($matches[1] / 3600);
		$m = floor(($matches[1] - $h*3600) / 60);
		$config['status']['serverStatus_uptime'] = $h.'h '.$m.'m';
		preg_match('/monsters total="(\d+)"/', $data, $matches);
		$config['status']['serverStatus_monsters'] = $matches[1];
	}
	else
	{
		$config['status']['serverStatus_online'] = 0;
		$config['status']['serverStatus_players'] = 0;
		$config['status']['serverStatus_playersMax'] = 0;
	}
	$file = fopen("config/serverstatus", "w");
	foreach($config['status'] as $param => $data)
	{
$file_data .= $param.' = "'.str_replace('"', '', $data).'"
';
	}
	rewind($file);
	fwrite($file, $file_data);
	fclose($file);
}

//PAGE VIEWS COUNTER :)
$views_counter = "usercounter.dat";
// checking if the file exists
if (file_exists($views_counter)) {
    // het bestand bestaat, waarde + 1
    $actie = fopen($views_counter, "r+"); 
    $page_views = fgets($actie, 9); 
    $page_views++; 
    rewind($actie); 
    fputs($actie, $page_views, 9); 
    fclose($actie); 
}
else
{ 
    // the file doesn't exist, creating a new one with value 1
    $actie = fopen($views_counter, "w"); 
    $page_views = 1; 
    fputs($actie, $page_views, 9); 
    fclose($actie); 
} 


?>[/QUOTE]
 
Use .
Code:
 code [/.code] next time better to see or php

and change this line
[php]
$sock = @fsockopen("127.0.0.1", $config['server']['port'], $errno, $errstr, 1);
to 
$sock = @fsockopen("127.0.0.1", $config['server']['statusport'], $errno, $errstr, 1);
[/php]
 
Back
Top