• 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!

GESIOR 2012 - Version 1.0.0 BETA

Status
Not open for further replies.
uhm i tried, everything seemed fine until the "accounts sample db" step
where it was supposed to create the sample characters, there was simply no message o_O .. so i kept going to the admin password step, then deleted the install files, and i tried to log in; but then i got a HTTP 500 error.
Using Uniform server btw.

i have to do something else than just follow the install steps ?

- - - Updated - - -

and i want it to work in a 9.10 server im starting with a custom client i made for it..
so yeah i can't make it in 0.2.13, i HAVE to make it in v0.2.11pl2..
or is there anyway to have a 0.2.13+ working as a 9.10 server? i don't really want to update to 9.70+.. yet (since i can't right now)

- - - Updated - - -

Query: SELECT `id`, `name`, `password`, `premdays`, `lastday`, `email`, `key`, `group_id`, `create_ip`, `create_date`, `premium_points`, `page_access`, `location`, `rlname`, `email_new`, `email_new_time`, `email_code`, `next_email`, `last_post`, `flag` FROM `accounts` WHERE `name` = '1'
SQLSTATE: 42S22
Driver code: 1054
Error message: Unknown column 'name' in 'field list'
It shouldn't be big change [remove 'name' from class Account + change 'name' to 'id' in all pages where it's used], but it requires ~30 minutes of work (for me, as I know what is where in acc. maker, for someone else it can be few hours). I don't have time until friday, because I must write few stupid programs for studies, like that:
[CPP]#include<iostream>
using namespace std;

class Element
{
public:
char value;
Element* left;
Element* right;
Element()
{
value = NULL;
left = NULL;
right = NULL;
}
};

void showTree(Element* element)
{
if(element->left)
showTree(element->left);
if(element->right)
showTree(element->right);
cout << element->value;
}

char isOneNode(Element* element)
{
if(element->left && element->right)
return 0;
else if(element->left)
return isOneNode(element->left);
else if(element->right)
return isOneNode(element->right);
else
return 1;
}

char getTheBest(Element* element)
{
char r1 = 0;
char r2 = 0;
if(!element->left && !element->right)
{
return element->value - 70;
}
else
{
if(element->left)
{
r1 = getTheBest(element->left);
}
if(element->right)
{
r2 = getTheBest(element->right);
}
}
if(r1 != 0 && r1 < 90)
{
delete element->left;
element->left = NULL;
r1 = r1 + 70;
}
if(r2 != 0 && r2 < 90)
{
delete element->right;
element->right = NULL;
r2 = r2 + 70;
}
if(r1 > r2)
{
delete element->right;
element->right = NULL;
return r1;
}
else if(r1 < r2)
{
delete element->left;
element->left = NULL;
return r2;
}
return r2;
}

int main()
{
char lastChar;
char tmpChar;
Element* root = new Element();
Element* currentNode = root;
cin >> lastChar;
while(cin >> tmpChar)
{
if(tmpChar == 'L')
{
if(currentNode->left == NULL)
{
currentNode->left = new Element();
}
currentNode = currentNode->left;
}
else if(tmpChar == 'R')
{
if(currentNode->right == NULL)
{
currentNode->right = new Element();
}
currentNode = currentNode->right;
}
else
{
currentNode->value = lastChar;
lastChar = tmpChar;
currentNode = root;
}
}
currentNode->value = lastChar;
while(!isOneNode(root))
{
cout << getTheBest(root);
}
showTree(root);
return 0;
}[/CPP]
 
update: you have to add a column right after the "id" column in the accounts

- - - Updated - - -

update: you have to add a column right after the "id" column in the accounts-

update: debugging after sucessfully logged in ..

Query: SELECT `id`, `name`, `password`, `premdays`, `lastday`, `email`, `key`, `group_id`, `create_ip`, `create_date`, `premium_points`, `page_access`, `location`, `rlname`, `email_new`, `email_new_time`, `email_code`, `next_email`, `last_post`, `flag` FROM `accounts` WHERE `name` = 'ex'
SQLSTATE: 00000
Driver code:
Error message:
Query: SELECT `players`.`id`, `players`.`name`, `players`.`group_id`, `players`.`account_id`, `players`.`level`, `players`.`vocation`, `players`.`health`, `players`.`healthmax`, `players`.`experience`, `players`.`lookbody`, `players`.`lookfeet`, `players`.`lookhead`, `players`.`looklegs`, `players`.`looktype`, `players`.`lookaddons`, `players`.`maglevel`, `players`.`mana`, `players`.`manamax`, `players`.`manaspent`, `players`.`soul`, `players`.`town_id`, `players`.`posx`, `players`.`posy`, `players`.`posz`, `players`.`conditions`, `players`.`cap`, `players`.`sex`, `players`.`lastlogin`, `players`.`lastip`, `players`.`save`, `players`.`skull`, `players`.`skulltime`, `players`.`rank_id`, `players`.`guildnick`, `players`.`lastlogout`, `players`.`blessings`, `players`.`balance`, `players`.`direction`, `players`.`loss_experience`, `players`.`loss_mana`, `players`.`loss_skills`, `players`.`premend`, `players`.`online`, `players`.`deleted`, `players`.`description`, `players`.`create_ip`, `players`.`create_date`, `players`.`comment`, `players`.`hide_char` FROM `players` WHERE `account_id` = '1' ORDER BY `name` ASC
SQLSTATE: 42S22
Driver code: 1054
Error message: Unknown column 'players.skull' in 'field list'

- - - Updated - - -

update-

just added the columns manually.... had to add myself:
name column in accounts
in the player class php edited the "skull" for "redskull"
then manually added a balance column

now the site works perfectly, although im not sure how might it bevahe with all the functions, neither im sure how will it behave with the server, seems like this have a lack of queries that should be added 0.0 ..

- - - Updated - - -

update-

wow fk it ... which version should i use for TFS 0.2 (tibia 9.10) ...

- - - Updated - - -

Error ID: #C-5
More info: ERROR: #C-5 : Class::ConfigPHP - Key passwordType doesn't exist.

File: A:\Users\FDO\Desktop\DreamQuest\Web\www\classes/configphp.php Line: 96
File: A:\Users\FDO\Desktop\DreamQuest\Web\www/install.php Line: 199
 
i have problem on TFS 0.3.6 ;/
Error ID:
More info: ERROR: #C-1 : Class::ConfigLUA - Line 24 of LUA config file is not valid [key: noDamageToGuildMates]
someone can help me?

- - - Updated - - -

and next problem with installation on :[8.62] The Forgotten Server v0.2.8 (Mystic Spirit)
Error ID: #C-5
More info: ERROR: #C-5 : Class::ConfigPHP - Key encryptionType doesn't exist.

File: D:\OTS\xampp\htdocs\classes/configphp.php Line: 96
File: D:\OTS\xampp\htdocs/install.php Line: 220
 
i have problem on TFS 0.3.6 ;/
Error ID:
More info: ERROR: #C-1 : Class::ConfigLUA - Line 24 of LUA config file is not valid [key: noDamageToGuildMates]

someone can help me?
Please show me your config.lua file.
and next problem with installation on :[8.62] The Forgotten Server v0.2.8 (Mystic Spirit)
Error ID: #C-5
More info: ERROR: #C-5 : Class::ConfigPHP - Key encryptionType doesn't exist.
Looks like you use 0.3.6 or 0.4 acc. maker. Acc. maker 0.2.13+ use other config field to define encryption:
passwordType
if you dont have that field in config.lua add it to config.lua with same value as your encryption.
 
AJAX doesn't work for me when creating a new account.

createaccount.php
PHP:
<?php
if(!defined('INITIALIZED'))
	exit;

//CREATE ACCOUNT FORM PAGE
if($action == "")
{
	$main_content .= '<script type="text/javascript">

var accountHttp;

function checkAccount()
{
	if(document.getElementById("account_name").value=="")
	{
		document.getElementById("acc_name_check").innerHTML = \'<b><font color="red">Please enter account name.</font></b>\';
		return;
	}
	accountHttp=GetXmlHttpObject();
	if (accountHttp==null)
	{
		return;
	}
	var account = document.getElementById("account_name").value;
	var url="?subtopic=ajax_check_account&account=" + account + "&uid="+Math.random();
	accountHttp.onreadystatechange=AccountStateChanged;
	accountHttp.open("GET",url,true);
	accountHttp.send(null);
} 

function AccountStateChanged() 
{ 
	if (accountHttp.readyState==4)
	{ 
		document.getElementById("acc_name_check").innerHTML=accountHttp.responseText;
	}
}

var emailHttp;

//sprawdza czy dane konto istnieje czy nie
function checkEmail()
{
	if(document.getElementById("email").value=="")
	{
		document.getElementById("email_check").innerHTML = \'<b><font color="red">Please enter e-mail.</font></b>\';
		return;
	}
	emailHttp=GetXmlHttpObject();
	if (emailHttp==null)
	{
		return;
	}
	var email = document.getElementById("email").value;
	var url="?subtopic=ajax_check_email&email=" + email + "&uid="+Math.random();
	emailHttp.onreadystatechange=EmailStateChanged;
	emailHttp.open("GET",url,true);
	emailHttp.send(null);
} 

function EmailStateChanged() 
{
	if (emailHttp.readyState==4)
	{
		document.getElementById("email_check").innerHTML=emailHttp.responseText;
	}
}

	function validate_required(field,alerttxt)
	{
		with (field)
			{
			if (value==null||value==""||value==" ")
			{
				alert(alerttxt);
				return false;
			}
			else
			{
				return true;
			}
		}
	}

	function validate_email(field,alerttxt)
	{
		with (field)
		{
			apos=value.indexOf("@");
			dotpos=value.lastIndexOf(".");
			if (apos<1||dotpos-apos<2) 
			{
				alert(alerttxt);
				return false;
			}
			else
			{
				return true;
			}
		}
	}

	function validate_form(thisform)
	{
		with (thisform)
		{
			if(validate_required(account_name,"Please enter name of new account!")==false)
			{
				account_name.focus();
				return false;
			}
			if(validate_required(email,"Please enter your e-mail!")==false)
			{
				email.focus();
				return false;
			}
			if(validate_email(email,"Invalid e-mail format!")==false)
			{
				email.focus();
				return false;
			}
			if(verifpass==1)
			{
				if(validate_required(passor,"Please enter password!")==false)
				{
					passor.focus();
					return false;
				}
				if (validate_required(passor2,"Please repeat password!")==false)
				{
					passor2.focus();
					return false;
				}
				if(passor2.value!=passor.value)
				{
					alert(\'Repeated password is not equal to password!\');
					return false;
				}
			}
			if(verifya==1)
			{
				if (validate_required(verify,"Please enter verification code!")==false)
				{
					verify.focus();return false;
				}
			}
			if(rules.checked==false)
			{
				alert(\'To create account you must accept server rules!\');
				return false;
			}
		}
	}
	</script>';
	$main_content .= 'To play on '.htmlspecialchars($config['server']['serverName']).' you need an account. 
						All you have to do to create your new account is to enter your email address, password to new account, verification code from picture and to agree to the terms presented below. 
						If you have done so, your account name, password and e-mail address will be shown on the following page and your account and password will be sent 
						to your email address along with further instructions.<BR><BR>
						<FORM ACTION="?subtopic=createaccount&action=saveaccount" onsubmit="return validate_form(this)" METHOD=post>
						<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
						<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Create an '.htmlspecialchars($config['server']['serverName']).' Account</B></TD></TR>
						<TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLSPACING=8 CELLPADDING=0>
						  <TR><TD>
						    <TABLE BORDER=0 CELLSPACING=5 CELLPADDING=0>';
	$main_content .= '<TR><TD width="150" valign="top"><B>Account name: </B></TD><TD colspan="2"><INPUT id="account_name" NAME="reg_name" onkeyup="checkAccount();" VALUE="" SIZE=30 MAXLENGTH=50><BR><font size="1" face="verdana,arial,helvetica">(Please enter your new account name)</font></TD></TR>
					  <TR><TD width="150"><b>Name status:</b></TD><TD colspan="2"><b><div id="acc_name_check">Please enter your account name.</div></b></TD></TR>
					<TR><TD width="150" valign="top"><B>Email address: </B></TD><TD colspan="2"><INPUT id="email" NAME="reg_email" onkeyup="checkEmail();" VALUE="" SIZE=30 MAXLENGTH=50><BR><font size="1" face="verdana,arial,helvetica">(Your email address is required to recovery an '.htmlspecialchars($config['server']['serverName']).' account)</font></TD></TR>
					  <TR><TD width="150"><b>Email status:</b></TD><TD colspan="2"><b><div id="email_check">Please enter your e-mail.</div></b></TD></TR>';
	if(!$config['site']['create_account_verify_mail'])
	$main_content .= '<script type="text/javascript">var verifpass=1;</script>
						<TR><TD width="150" valign="top"><B>Password: </B></TD><TD colspan="2"><INPUT TYPE="password" id="passor" NAME="reg_password" VALUE="" SIZE=30 MAXLENGTH=50><BR><font size="1" face="verdana,arial,helvetica">(Here write your password to new account on '.htmlspecialchars($config['server']['serverName']).')</font></TD></TR>
					  <TR><TD width="150" valign="top"><B>Repeat password: </B></TD><TD colspan="2"><INPUT TYPE="password" id="passor2" NAME="reg_password2" VALUE="" SIZE=30 MAXLENGTH=50><BR><font size="1" face="verdana,arial,helvetica">(Repeat your password)</font></TD></TR>';
	else
		$main_content .= '<script type="text/javascript">var verifpass=0;</script>';
	if($config['site']['verify_code'])
		$main_content .= '<script type="text/javascript">var verifya=1;</script><TR><TD width="150"><B>Code: </B></TD><TD colspan="2"><img src="?subtopic=imagebuilder&image_refresher='.mt_rand(1,99999).'" border="0" alt="Image Verification is missing, please contact the administrator"></TD></TR>
						  <TR><TD width="150" valign="top"><B>Verification Code: </B></TD><TD colspan="2"><INPUT id="verify" NAME="reg_code" VALUE="" SIZE=30 MAXLENGTH=50><BR><font size="1" face="verdana,arial,helvetica">(Here write verification code from picture)</font></TD></TR>';
	else
		$main_content .= '<script type="text/javascript">var verifya=0;</script>';
	$main_content .= '</TABLE>
					  </TD></TR>
					  <TR><TD>
					    <TABLE BORDER=0 CELLSPACING=5 CELLPADDING=0><TR><TD>
					       Please review the following terms and state your agreement below.
					    </TD></TR>
					    <TR><TD>
					      <B>'.htmlspecialchars($config['server']['serverName']).' Rules</B><BR>
					      <TEXTAREA ROWS="16" WRAP="physical" COLS="75" READONLY="true">';
	//load server rules from file
	include("pages/tibiarules.php");
	$main_content .= '</TEXTAREA>
					    </TD></TR></TABLE>
					  </TD></TR>
					  <TR><TD>
					    <TABLE BORDER=0 CELLSPACING=5 CELLPADDING=0>
					    <TR><TD>
					      <INPUT TYPE="checkbox" NAME="rules" id="rules" value="true" /><label for="rules"><u> I agree to the '.htmlspecialchars($config['server']['serverName']).' Rules.</u></lable><BR>
					    </TD></TR>
					    <TR><TD>
					      If you fully agree to these terms, click on the "I Agree" button in order to create an '.htmlspecialchars($config['server']['serverName']).' account.<BR>
					      If you do not agree to these terms or do not want to create an '.htmlspecialchars($config['server']['serverName']).' account, please click on the "Cancel" button.
					    </TD></TR></TABLE>
					  </TD></TR>
					</TABLE></TD></TR>
					</TABLE>
					<BR>
					<TABLE BORDER=0 WIDTH=100%>
					  <TR><TD ALIGN=center>
					    <IMG SRC="'.$layout_name.'/images/blank.gif" WIDTH=120 HEIGHT=1 BORDER=0><BR>
					  </TD><TD ALIGN=center VALIGN=top>
					    <INPUT TYPE=image NAME="I Agree" SRC="'.$layout_name.'/images/buttons/sbutton_iagree.gif" BORDER=0 WIDTH=120 HEIGHT=18>
					    </FORM>
					  </TD><TD ALIGN=center>
					    <FORM  ACTION="?subtopic=latestnews" METHOD=post>
					    <INPUT TYPE=image NAME="Cancel" SRC="'.$layout_name.'/images/buttons/sbutton_cancel.gif" BORDER=0 WIDTH=120 HEIGHT=18>
					    </FORM>
					  </TD><TD ALIGN=center>
					    <IMG SRC="/images/blank.gif" WIDTH=120 HEIGHT=1 BORDER=0><BR>
					  </TD></TR>
					</TABLE>
					</TD>
					<TD><IMG SRC="'.$layout_name.'/images/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD>
					</TR>
					</TABLE>';
}
//CREATE ACCOUNT PAGE (save account in database)
if($action == "saveaccount")
{
	$reg_name = strtoupper(trim($_POST['reg_name']));
	$reg_email = trim($_POST['reg_email']);
	$reg_password = trim($_POST['reg_password']);
	$reg_code = trim($_POST['reg_code']);
	//FIRST check
	//check e-mail
	if(empty($reg_name))
		$reg_form_errors[] = "Please enter account name.";
	elseif(!check_account_name($reg_name))
		$reg_form_errors[] = "Invalid account name format. Use only A-Z and numbers 0-9.";
	if(empty($reg_email))
		$reg_form_errors[] = "Please enter your email address.";
	else
	{
		if(!check_mail($reg_email))
			$reg_form_errors[] = "E-mail address is not correct.";
	}
	if($config['site']['verify_code'])
	{
		//check verification code
		$string = strtoupper($_SESSION['string']);
		$userstring = strtoupper($reg_code);
		session_destroy();
		if(empty($string))
			$reg_form_errors[] = "Information about verification code in session is empty.";
		else
		{
			if(empty($userstring))
				$reg_form_errors[] = "Please enter verification code.";
			else
			{
				if($string != $userstring)
					$reg_form_errors[] = "Verification code is incorrect.";
			}
		}
	}
	//check password
	if(empty($reg_password) && !$config['site']['create_account_verify_mail'])
		$reg_form_errors[] = "Please enter password to your new account.";
	elseif(!$config['site']['create_account_verify_mail'])
	{
		if(!check_password($reg_password))
			$reg_form_errors[] = "Password contains illegal chars (a-z, A-Z and 0-9 only!) or lenght.";
	}
	//SECOND check
	//check e-mail address in database
	if(empty($reg_form_errors))
	{
		if($config['site']['one_email'])
		{
			$test_email_account = new Account();
			//load account with this e-mail
			$test_email_account->findByEmail($reg_email);
			if($test_email_account->isLoaded())
				$reg_form_errors[] = "Account with this e-mail address already exist in database.";
		}
		$account_db = new Account();
		$account_db->find($reg_name);
		if($account_db->isLoaded())
			$reg_form_errors[] = 'Account with this name already exist.';
	}
	// ----------creates account-------------(save in database)
	if(empty($reg_form_errors))
	{
		//create object 'account' and generate new acc. number
		if($config['site']['create_account_verify_mail'])
		{
			$reg_password = '';
			for ($i = 1; $i <= 6; $i++)
				$reg_password .= mt_rand(0,9);
		}
		$reg_account = new Account();
		// saves account information in database
		$reg_account->setName($reg_name);
		$reg_account->setPassword($reg_password);
		$reg_account->setEMail($reg_email);
		$reg_account->setGroupID(1);
		$reg_account->setCreateDate(time());
		$reg_account->setCreateIP(Visitor::getIP());
		$reg_account->setFlag(Website::getCountryCode(long2ip(Visitor::getIP())));
		if(isset($config['site']['newaccount_premdays']) && $config['site']['newaccount_premdays'] > 0)
		{
			$reg_account->set("premdays", $config['site']['newaccount_premdays']);
			$reg_account->set("lastday", time());
		}
		$reg_account->save();
		//show information about registration
		if($config['site']['send_emails'] && $config['site']['create_account_verify_mail'])
		{
			$mailBody = '<html>
			<body>
			<h3>Your account name and password!</h3>
			<p>You or someone else registred on server <a href="'.$config['server']['url'].'"><b>'.htmlspecialchars($config['server']['serverName']).'</b></a> with this e-mail.</p>
			<p>Account name: <b>'.htmlspecialchars($reg_name).'</b></p>
			<p>Password: <b>'.htmlspecialchars(trim($reg_password)).'</b></p>
			<br />
			<p>After login you can:</p>
			<li>Create new characters
			<li>Change your current password
			<li>Change your current e-mail
			</body>
			</html>';
			$mail = new PHPMailer();
			if ($config['site']['smtp_enabled'])
			{
				$mail->IsSMTP();
				$mail->Host = $config['site']['smtp_host'];
				$mail->Port = (int)$config['site']['smtp_port'];
				$mail->SMTPAuth = $config['site']['smtp_auth'];
				$mail->Username = $config['site']['smtp_user'];
				$mail->Password = $config['site']['smtp_pass'];
			}
			else
				$mail->IsMail();
			$mail->IsHTML(true);
			$mail->From = $config['site']['mail_address'];
			$mail->AddAddress($reg_email);
			$mail->Subject = $config['server']['serverName']." - Registration";
			$mail->Body = $mailBody;
			if($mail->Send())
			{
				$main_content .= 'Your account has been created. Check your e-mail. See you in Tibia!<BR><BR>';
				$main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
				<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Account Created</B></TD></TR>
				<TR><TD BGCOLOR="'.$config['site']['darkborder'].'">
				  <TABLE BORDER=0 CELLPADDING=1><TR><TD>
				    <BR>Your account name is <b>'.$reg_name.'</b>.
					<BR><b><i>You will receive e-mail (<b>'.htmlspecialchars($reg_email).'</b>) with your password.</b></i><br>';
				$main_content .= 'You will need the account name and your password to play on '.htmlspecialchars($config['server']['serverName']).'.
				    Please keep your account name and password in a safe place and
				    never give your account name or password to anybody.<BR><BR>';
				$main_content .= '<br /><small>These informations were send on email address <b>'.htmlspecialchars($reg_email).'</b>. Please check your inbox/spam folder.';
			}
			else
			{
				$main_content .= '<br /><small>An error occorred while sending email! Account not created. Try again.</small>';
				$reg_account->delete();
			}
		}
		else
		{
			$main_content .= 'Your account has been created. Now you can login and create your first character. See you in Tibia!<BR><BR>';
			$main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
			<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Account Created</B></TD></TR>
			<TR><TD BGCOLOR="'.$config['site']['darkborder'].'">
			  <TABLE BORDER=0 CELLPADDING=1><TR><TD>
			    <BR>Your account name is <b>'.htmlspecialchars($reg_name).'</b><br>You will need the account name and your password to play on '.htmlspecialchars($config['server']['serverName']).'.
			    Please keep your account name and password in a safe place and
			    never give your account name or password to anybody.<BR><BR>';
			if($config['site']['send_emails'] && $config['site']['send_register_email'])
			{
				$mailBody = '<html>
				<body>
				<h3>Your account name and password!</h3>
				<p>You or someone else registred on server <a href="'.$config['server']['url'].'"><b>'.htmlspecialchars($config['server']['serverName']).'</b></a> with this e-mail.</p>
				<p>Account name: <b>'.htmlspecialchars($reg_name).'</b></p>
				<p>Password: <b>'.htmlspecialchars(trim($reg_password)).'</b></p>
				<br />
				<p>After login you can:</p>
				<li>Create new characters
				<li>Change your current password
				<li>Change your current e-mail
				</body>
				</html>';
				$mail = new PHPMailer();
				if ($config['site']['smtp_enabled'])
				{
					$mail->IsSMTP();
					$mail->Host = $config['site']['smtp_host'];
					$mail->Port = (int)$config['site']['smtp_port'];
					$mail->SMTPAuth = $config['site']['smtp_auth'];
					$mail->Username = $config['site']['smtp_user'];
					$mail->Password = $config['site']['smtp_pass'];
				}
				else
					$mail->IsMail();
				$mail->IsHTML(true);
				$mail->From = $config['site']['mail_address'];
				$mail->AddAddress($reg_email);
				$mail->Subject = $config['server']['serverName']." - Registration";
				$mail->Body = $mailBody;
				if($mail->Send())
					$main_content .= '<br /><small>These informations were send on email address <b>'.htmlspecialchars($reg_email).'</b>.';
				else
					$main_content .= '<br /><small>An error occorred while sending email (<b>'.htmlspecialchars($reg_email).'</b>)!</small>';
			}
		}
		$main_content .= '</TD></TR></TABLE></TD></TR></TABLE><BR><BR>';
	}
	else
	{
		//SHOW ERRORs if data from form is wrong
		$main_content .= '<div class="SmallBox" >  <div class="MessageContainer" >    <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div>    <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div>    <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div>    <div class="ErrorMessage" >      <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div>      <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div>      <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>';
		foreach($reg_form_errors as $show_msg)
		{
					$main_content .= '<li>'.$show_msg.'</li>';
		}
		$main_content .= '</div>    <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div>    <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div>    <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div>  </div></div><br/>
		<BR>
		<CENTER>
		<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION=?subtopic=createaccount METHOD=post><TR><TD>
		<INPUT TYPE=hidden NAME=email VALUE="">

		<INPUT TYPE=image NAME="Back" ALT="Back" SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" BORDER=0 WIDTH=120 HEIGHT=18>
		</TD></TR></FORM></TABLE>
		</CENTER>';
	}
}

ajax_check_account.php
PHP:
<?php
<?php
if(!defined('INITIALIZED'))
	exit;

echo '<?xml version="1.0" encoding="utf-8" standalone="yes"?>';
$account = strtoupper(trim($_REQUEST['account']));
if(empty($account))
{
	echo '<font color="red">Please enter an account number.</font>';
	exit;
}
if(strlen($account) < 32)
{
	if(!check_account_name($account))
	{
		echo '<font color="red">Invalid account name format. Use only A-Z and numbers 0-9.</font>';
		exit;
	}
	$account_db = new Account();
	$account_db->find($account);
	if($account_db->isLoaded())
		echo '<font color="red">Account with this name already exist.</font>';
	else
		echo '<font color="green">Good account name ( '.htmlspecialchars($account).' ). You can create account.</font>';
}
else
	echo '<font color="red">Account name is too long (max. 32 chars).</font>';
exit;

ajax_check_email.php:
PHP:
<?php
if(!defined('INITIALIZED'))
	exit;

$ok = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}/";
echo '<?xml version="1.0" encoding="utf-8" standalone="yes"?>';
$email = trim($_REQUEST['email']);
if(empty($email))
{
	echo '<font color="red">Please enter an e-mail.</font>';
	exit;
}
if(strlen($email) < 255)
{
	if(preg_match($ok, $email))
	{
		if($config['site']['one_email'])
		{
			$email_db = new Account();
			$email_db->findByEMail($email);
			if($email_db->isLoaded())
				echo '<font color="red">Account with this e-mail already exist.</font>';
			else
				echo '<font color="green">Good e-mail.</font>';
		}
		else
			echo '<font color="green">Good e-mail.</font>';
	}
	else
		echo '<font color="red">Wrong e-mail format.</font>';
}
else
	echo '<font color="red">E-mail is too long (max. 255 chars).</font>';
exit;

ajax_check_name.php:
PHP:
<?php
if(!defined('INITIALIZED'))
	exit;

echo '<?xml version="1.0" encoding="utf-8" standalone="yes"?>';
$name = strtolower(trim($_REQUEST['name']));
if(empty($name))
{
	echo '<font color="red">Please enter new character name.</font>';
	exit;
}

//first word can't be:
$first_words_blocked = array('gm ','cm ', 'god ','tutor ', "'", '-');
//names blocked:
$names_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');
$temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM- '");
if($temp != strlen($name))
{
	echo '<font color="red">Name contains illegal letters. Use only: <b>qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM- \'</b></font>';
	exit;
}
if(strlen($name) > 25)
{
	echo '<font color="red">Too long name. Max. lenght <b>25</b> letters.</font>';
	exit;
}
foreach($names_blocked as $word)
	if($word == $name)
	{
		echo '<font color="red">Blocked names:<b> '.$names_blocked[0];
		if(count($names_blocked) > 1)
			foreach($names_blocked as $word)
				if($word != $names_blocked[0])
					echo ','.$word;
		echo '</b></font>';
		exit;
	}
foreach($first_words_blocked as $word)
	if($word == substr($name, 0, strlen($word)))
	{
		echo '<font color="red">First letters in name can\'t be:<b> '.$first_words_blocked[0];
		if(count($first_words_blocked) > 1)
			foreach($first_words_blocked as $word)
				if($word != $first_words_blocked[0])
					echo ','.$word;
		echo '</b></font>';
		exit;
	}
if(substr($name, -1) == "'" || substr($name, -1) == "-")
{
	echo '<font color="red">Last letter can\'t be <b>\'</b> and <b>-</b></font>';
	exit;
}
foreach($words_blocked as $word)
	if (!(strpos($name, $word) === false))
	{
		echo '<font color="red">Name can\'t cointain words:<b> '.$words_blocked[0];
		if(count($words_blocked) > 1)
			foreach($words_blocked as $word)
				if($word != $words_blocked[0])
					echo ','.$word;
		echo '</b></font>';
		exit;
	}
for($i = 0; $i < strlen($name); $i++)
	if($name[$i] == $name[($i+1)] && $name[$i] == $name[($i+2)])
	{
		echo '<font color="red">Name can\'t contain 3 same letters one by one.</font><br /><font color="green"><u>Good:</u> M<b>oo</b>nster</font><font color="red"><br />Wrong: M<b>ooo</b>nster</font>';
		exit;
	}
for($i = 0; $i < strlen($name); $i++)
	if($name[$i-1] == ' ' && $name[$i+1] == ' ')
	{
		echo '<font color="red">Use normal name format.</font><br /><font color="green"><u>Good:</u> <b>Gesior</b></font><font color="red"><br />Wrong: <b>G e s ior</b></font>';
		exit;
	}
if(substr($name, 1, 1) == ' ')
{
	echo '<font color="red">Use normal name format.</font><br /><font color="green"><u>Good:</u> <b>Gesior</b></font><font color="red"><br />Wrong: <b>G esior</b></font>';
	exit;
}
if(substr($name, -2, 1) == " ")
{
	echo '<font color="red">Use normal name format.</font><br /><font color="green"><u>Good:</u> <b>Gesior</b></font><font color="red"><br />Wrong: <b>Gesio r</b></font>';
	exit;
}
$name_db = new Player();
$name_db->find($name);
if($name_db->isLoaded())
	echo '<font color="red"><b>Player with this name already exist.</b></font>';
else
	echo '<font color="green">Good. Your name will be:<br />"<b>'.htmlspecialchars(ucwords($name)).'</b>"</font>';
exit;
 
Well, maybe could you add option which will allow you to choose "custom account number" or "automatic account number"
 
You could use '.rand(111111, 999999).' for random account numbers.
 
Last edited:
Last edited:
I am a linux user, how do I give the PHP permisions? I use ubuntu

Informations
Welcome to Gesior Account Maker installer. After 5 simple steps account maker will be ready to use!
CANNOT WRITE TO FILE: config/config.php - edit file access for PHP [on linux: chmod]
CANNOT WRITE TO FILE: cache - edit file access for PHP [on linux: chmod]
CANNOT WRITE TO FILE: cache/flags - edit file access for PHP [on linux: chmod]
CANNOT WRITE TO FILE: cache/DONT_EDIT_usercounter.txt - edit file access for PHP [on linux: chmod]
CANNOT WRITE TO FILE: cache/DONT_EDIT_serverstatus.txt - edit file access for PHP [on linux: chmod]
CANNOT WRITE TO FILE: custom_scripts - edit file access for PHP [on linux: chmod]
CANNOT WRITE TO FILE: install.txt - edit file access for PHP [on linux: chmod]
 
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Xampp\htdocs\config\config.php on line 4

What wrong?
 
private-serverlist.com is not a existing domain hurr durr
 
private-serverlist.com is not a existing domain hurr durr
Where does it show 'private-serverlist.com'? It should be 'private-servlist.com'. Tell me where it's wrong and I will fix tommorow in all acc. maker versions.
 
Status
Not open for further replies.
Back
Top