Skrypty & Kody Problem serverinfo.php

Status
Zamknięty.

BuluS

Active User
Zarejestrowany
Dołączył
Październik 27, 2009
Posty
135
Liczba reakcji
2
Witam was. Problem polega na tym i? do gesior 0.3.0 chcia?em jak zawsze doda? serverinfo.php . Wklei?em skrypt do config oraz do serverinfo.php i wyskoczy?y problemy .



Kod:
Warning: Error parsing config/config.ini on line 52 in C:\xampp\htdocs\config-and-functions.php on line 4

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\serverinfo.php on line 8

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\serverinfo.php on line 40


Skrypt serverinfo.php:
PHP:
 <?php
$main_content .= '<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor='.$config['site']['vdarkborder'].'>
<td colspan="2"><b><center>Server Information</center></b></td>
</td align="right"></td></tr>';
        $number_of_stages = 0;
        $stagesLevel = $config['site']['stageLevel'];
        foreach($stagesLevel as $stagelevel => $desc) {
                        if(is_int($number_of_stages / 2))
                    $bgcolor = $config['site']['darkborder'];
                else
                    $bgcolor = $config['site']['lightborder'];
        $number_of_stages++;
        $magic = $config['site']['sInfoMagic'];
        $skills = $config['site']['sInfoSkill'];
        $loot = $config['site']['sInfoLoot'];
        $about = $config['site']['aboutServer'];
        $main_content .= '<tr bgcolor="'.$bgcolor.'">
        <td width="'.$config['site']['serverInfo_width'].'%"><center><b>From Level To Level</b> = '.$stagelevel.'</center></td>
        </tr><tr><td><center>'.$desc.'</center></td></tr>';
        }
        $main_content .= '<tr bgcolor="'.$config['site']['lightborder'].'">
        <td width="100%"><center><b>Magic Rate</b> = '.$magic.'</td></tr>
        <tr bgcolor="'.$config['site']['darkborder'].'">
        <td width="100%"><center><b>Skills Rate</b> = '.$skills.'</td></tr>
        <tr bgcolor="'.$config['site']['lightborder'].'">
        <td width="100%"><center><b>Loot Rate</b> = '.$loot.'</td></tr></table><br>
        <table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor='.$config['site']['vdarkborder'].'>
<td colspan="2"><b><center>About Server</center></b></td>
</td align="right"></td></tr><tr bgcolor="'.$config['site']['darkborder'].'">
<td width="100%"><center>'.$about.'</center></td>';
                 $main_content .= '</table><br>';
$main_content .= '<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr bgcolor='.$config['site']['vdarkborder'].'>
<td colspan="2"><b><center>Player Commands</center></b></td>
</td align="right"></td></tr>';
        $number_of_commands = 0;
        $commands = $config['site']['commands'];
        foreach($commands as $command => $use) {
                        if(is_int($number_of_commands / 2))
                    $bgcolor = $config['site']['darkborder'];
                else
                    $bgcolor = $config['site']['lightborder'];
        $number_of_commands++;
        $main_content .= '<tr bgcolor="'.$bgcolor.'"><td width="'.$config['site']['serverInfo_width'].'%">'.$command.'</td><td>'.$use.'</td></tr>';
        }
        $main_content .= '</table>';
?>


config:
PHP:
news_title_color = "white"
// Created by Kargen(ServerInfo/StagesLevel) & Archez (Player Commands and Idea)
$config['site']['serverInfo_width'] = '15'; // from 0% to 100% (recommended: 15)
$config['site']['aboutServer'] = '
- 24 Hours Fast Dedicated Server<br>
- 35+ Quests!<br>
- 500+ Houses<br>
'; // - New Line<br> (Use if your want make a new line "<br>")
$config['site']['commands'] = array(
  '!save' => 'Save your character so you avoid items or level loss.',
  '!buypremium' => 'Buy 30 days of premium time.',
  '!hunt' => 'Spend some cash with a nice amount for a frag.'
); // 'command' => 'description',
  /* Stage Level */
$config['site']['stageLevel'] = array(
  /* From Level To Level */
  '1-50' => 
  '50x',
  '50-100' => 
  '35x',
  '100~' => 
  '15x'
);/* 'stages Level' => 'ExpRate', */
$config['site']['sInfoMagic'] = '9x';
$config['site']['sInfoSkill'] = '17x';
$config['site']['sInfoLoot'] ='2.5x';

Wiadomo trzeba doda? skrypt do config ,?eby by?y informacje o serwerze .


Prosz? o szybk? pomoc Reput.
 
Odp: Problem serverinfo.php

Spr?buj zmieni?:
PHP:
$config['site']['aboutServer'] = ' 
- 24 Hours Fast Dedicated Server<br> 
- 35+ Quests!<br> 
- 500+ Houses<br> 
'; // - New Line<br> (Use if your want make a new line "<br>")

na

PHP:
$config['site']['aboutServer'] = '- 24 Hours Fast Dedicated Server<br>- 35+ Quests!<br>- 500+ Houses<br>'; // - New Line<br> (Use if your want make a new line "<br>")

Wydaje mi si?, ?e nie mo?esz robi? "enter?w" w edytorze tekstu pomi?dzy ' i ';.

#edit
A jak nie dzia?a to daj ca?y plik configu z usuni?tymi has?ami, poniewa? da?e? tylko fragment, a b??d jest na linii czwartej.
 
Ostatnia edycja:
Odp: Problem serverinfo.php

Og?lnie to dzi?ki ?e pomagasz :D Ale zmieni?em i nie pomog?o :/

Jaki config zwyk?y czy config and functions ?

Kod:
install = "no"
server_path = "C:/Users/Tomasz/Desktop/ots/"
houseXML_file_subdir = "/data\world\Evolutions-housestore.xml"
vocationXML_file_subdir = "data\XML\vocations.xml"
page_path = "http://127.0.0.1"
forum_link = "http://www.galanaot.pun.pl/"
logo_monster = "Demon"
default_layout = "cyber"
layouts = "Tibia.com,cyber"
user_select_layout = "no"
send_emails = "yes"
mail_address = "gesiormail@wp.pl"
smtp_enabled = "yes"
smtp_host = "smtp.wp.pl"
smtp_port = "25"
smtp_auth = "yes"
smtp_user = "gesiormail"
smtp_pass = "gesior123"
email_lai_sec_interval = "300"
one_email = "yes"
account_number = "custom"
email_days_to_change = "1"
max_players_per_account = "1"
char_type = "main"
char_vocations = "None,:Sorcerer,Sorcerer Sample:Druid,Druid Sample:Paladin,Paladin Sample:Knight,Knight Sample:Master Sorcerer,:Elder Druid,:Royal Paladin,:Elite Knight,"
towns_list = "1,Galana"
show_mlvl = "0"
show_creationdate = "0"
guild_need_level = "100"
guild_need_pacc = "yes"
guild_image_size_kb = "100"
guild_description_chars_limit = "1000"
guild_description_lines_limit = "6"
guild_motd_chars_limit = "150"
access_tickers = "1"
access_news = "2"
access_admin_panel = "3"
last_deaths_limit = "30"
news_ticks_limit = "5"
news_big_limit = "3"
vocations_list = "Sorcerer,Druid,Paladin,Knight"
vocations_short_list = "Sorcerer,Druid,Paladin,Knight"
darkborder = "#202229"
lightborder = "#1b1e26"
vdarkborder = "#20222c"
verify_code = "yes"
players_group_id_block = "2"
shop_system = "1"
download_page = "0"
serverinfo_page = "1"
news_title_color = "white"
// Created by Kargen(ServerInfo/StagesLevel) & Archez (Player Commands and Idea)
$config['site']['serverInfo_width'] = '15'; // from 0% to 100% (recommended: 15)
$config['site']['aboutServer'] = '- 24 Hours Fast Dedicated Server<br>- 35+ Quests!<br>- 500+ Houses<br>'; // - New Line<br> (Use if your want make a new line "<br>") 
$config['site']['commands'] = array(
  '!save' => 'Save your character so you avoid items or level loss.',
  '!buypremium' => 'Buy 30 days of premium time.',
  '!hunt' => 'Spend some cash with a nice amount for a frag.'
); // 'command' => 'description',
  /* Stage Level */
$config['site']['stageLevel'] = array(
  /* From Level To Level */
  '1-50' => 
  '50x',
  '50-100' => 
  '35x',
  '100~' => 
  '15x'
);/* 'stages Level' => 'ExpRate', */
$config['site']['sInfoMagic'] = '9x';
$config['site']['sInfoSkill'] = '17x';
$config['site']['sInfoLoot'] ='2.5x';

Kod:
<?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 config
foreach(explode(";", $config['site']['layouts']) as $toexplo)
{
	$layouts_1 = explode(",", $toexplo);
	$layout_array[$layouts_1['0']] = $layouts_1['1'];
}
$layout_name = $config['site']['default_layout'];
if(isset($_COOKIE['layout']))
{
	if(in_array($_COOKIE['layout'], $layout_array))
	{
		$layout_name = $_COOKIE['layout'];
	}
}
if(!in_array($layout_name, $layout_array))
{
	echo '<h1>CAN\'T LOAD LAYOUT. CONTACT WITH ADMIN</h1>';
	exit;
}
$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:
	$first_words_blocked = array('gm ','cm ', 'god ', "'", '-');
	//name can't contain:
	$words_blocked = array('gamemaster', '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;
	foreach($words_blocked as $word)
	{
		if (strpos($name_to_check, $word) === false) {}
		else
			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;
	}
	$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 creature name?
function check_creature($name)
{
  $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789 ");
  if ($temp != strlen($name)) {
	return false;
  }
  else
  {
	$ok = "/[a-zA-Z0-9 ]{1,255}/";
	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'])));
}

//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); 
} 


?>


Ale powiem ci tak ?e s? problemy z tym acc maker mia?em wcze?niej taki sam i 0 problem?w dokleja?em skrypty i pi?knie wszystko gra?o zdaje mi si? ?e ten acc maker jest jaki? nie doje ..
 
Ostatnia edycja:
Status
Zamknięty.
Back
Do góry