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

[WEBSITE] Block Names

Sir Gabriiel

New Member
Joined
Mar 24, 2012
Messages
88
Reaction score
2
I would like to add this code below in my file (createaccount.php) on the creation of Chares to do the verification in accordance with the code below, this code was in the file (AccountManagement.php) which also makes verification.

Code
Code:
<script type="text/javascript">  
                var nameHttp;  
                function checkName()  
                {  
                    if(document.getElementById("newcharname").value=="")  
                    {  
                        document.getElementById("name_check").innerhtml = \'<b><font color="red">Please enter new character name.</font></b>\';  
                        return;  
                    }  
                    nameHttp=GetXmlHttpObject();  
                    if (nameHttp==null)  
                    {  
                        return;  
                    }  
                    var newcharname = document.getElementById("newcharname").value;  
                    var url="ajax/check_name.php?name=" + newcharname + "&uid="+Math.random();  
                    nameHttp.onreadystatechange=NameStateChanged;  
                    nameHttp.open("GET",url,true);  
                    nameHttp.send(null);  
                }  
                function NameStateChanged()  
                {  
                    if (nameHttp.readyState==4)  
                    {  
                        document.getElementById("name_check").innerhtml=nameHttp.responseText;  
                    }  
                }  
            </script>

CreateAccount.php
Code:
<b>
<?php
$location = array(
	'GER' =>'Europe',
//	'USA' =>'North America'
);
$default = 'all';

$worlds = array();
$worlds[0] = array('GER', 'open');
/*
$worlds[1] = array('GER', 'optional');
$worlds[2] = array('GER', 'hardcore');
$worlds[3] = array('USA', 'open');
$worlds[4] = array('USA', 'optional');
$worlds[5] = array('USA', 'hardcore');
*/

$voc = array(); // if empty, Rook Sample will be used
$voc[1] = 'Sorcerer';
$voc[2] = 'Druid';
$voc[3] = 'Paladin';
$voc[4] = 'Knight';

$suggestname = NULL; // not available
$version = '860'; // for download link

foreach($worlds as $k =>$v) // remove invalid worlds
	if(!isset($location[$v[0]]) || !isset($config['site']['worlds'][$k]))
		unset($worlds[$k]);

$tmp = array();
foreach($location as $k =>$v) // remove invalid/unused locations
	foreach($worlds as $i =>$j)
		if($j[0] == $k) {
			$tmp[$k] = $v;
			break;
		}
$location = $tmp; unset($tmp);

if(isset($_POST['step']) && $_POST['step'] == 'docreate') {
	$e = array();
	$s = isset($_POST['accountname']) ? $_POST['accountname'] : '';
	if($s == '')
		$e['acc'] = 'Please enter an account name!';
	elseif(strlen($s) < 6)
		$e['acc'] = 'This account name is too short!';
	elseif(strlen($s) > 30)
		$e['acc'] = 'This account name is too long!';
	else {
		$s = strtoupper($s);

		if(!ctype_alnum($s))
			$e['acc'] = 'This account name has an invalid format. Your account name may only consist of numbers 0-9 and letters A-Z!';
		elseif(!preg_match('/[A-Z]/', $s))
			$e['acc'] = 'Your account name must include at least one letter A-Z!';
		else {
			$con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.');
			mysql_select_db($config['server']['sqlDatabase']);

			if(mysql_num_rows(mysql_query('SELECT id FROM accounts WHERE name=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0)
				$e['acc'] = 'This account name is already used. Please select another one!';
		}
	}
	
	$s = isset($_POST['name']) ? trim($_POST['name']) : '';

	if(empty($s))
		$e['name'] = 'Please enter a name for your character!';
	elseif(strlen($s) < 2 || strlen($s) > 29)
		$e['name'] = 'A name must have at least 2 but no more than 29 letters!';
	elseif(preg_match('/[^a-zA-Z ]/', $s))
		$e['name'] = 'This name contains invalid letters. Please use only A-Z, a-z and space!';
	elseif(!ctype_upper($s[0]))
		$e['name'] = 'The first letter of a name has to be a capital letter!';
	elseif(strpos($s, '  ') !== false)
		$e['name'] = 'This name contains more than one space between words. Please use only one space between words!';
	else {
		foreach(explode(' ', $s) as $k =>$v) {
			$words[$k] = str_split($v);
			$len = strlen($v);
			if($len == 1) {
				$e['name'] = 'This name contains a word with only one letter. Please use more than one letter for each word!';
				break;
			}
			elseif($len > 14) {
				$e['name'] = 'This name contains a word that is too long. Please use no more than 14 letters for each word!';
				break;
			}
		}
		if(!isset($e['name'])) {
			$total=0;
			foreach($words as $k =>$p) {
				if(isset($e['name']))
					break;
				$total++;
				if($total > 3) {
					$e['name'] = 'This name contains more than 3 words. Please choose another name!';
					break;
				}
				$len=0;
				foreach($p as $i =>$j) {
					$len++;
					if($i != 0 && ctype_upper($j)) {
						$e['name'] = 'In names capital letters are only allowed at the beginning of a word!';
						break;
					}
					elseif($i == $len-1) {
						$ff=null;
						for($h=0;$h<strlen($v); $h++) {
							if(in_array(strtolower($v[$h]), array('a','e','i','o','u')) !== false) {
								$ff=true;
								break;
							}
						}
						if(!$ff) {
							$e['name'] = 'This name contains a word without vowels. Please choose another name!';
							break;
						}
					}
				}
			}
			if(!isset($e['name'])) {
				$s = strtolower($s);
				for($i = 0; $i < strlen($s); $i++)
					if($s[$i] == $s[($i+1)] && $s[$i] == $s[($i+2)]) {
						$e['name'] = 'This character name is already used. Please select another one!';
						break;
					}
				if(!isset($e['name'])) {
					foreach(array('aa ', 'ee', 'ii', 'oo', 'uu', 'gm','cm', 'aff ', 'god ', 'abc', 'tutor', 'game', 'admin', 'the ') as $v)
						if($v == substr($s, 0, strlen($v))) {
							$e['name'] = 'This character name is already used. Please select another one!';
							break;
						}
					if(!isset($e['name'])) {
						foreach(array('game', 'customer', 'support','elynnia', 'fuck', 'haha', 'sux', ' abc', 'suck', 'noob', 'tutor', 'admin', 'account', 'gay', 'password', 'manager') as $v)
							if(strpos($s, $v) !== false) {
								$e['name'] = 'This character name is already used. Please select another one!';
								break;
							}
						if(!isset($e['name'])) {
							if(!isset($con)) {
								$con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.');
								mysql_select_db($config['server']['sqlDatabase']);
							}
							if(mysql_num_rows(mysql_query('SELECT id FROM players WHERE name=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0)
								$e['name'] = 'This character name is already used. Please select another one!';
						}
					}
				}
			}
		}
	}

	if(!isset($_POST['world']) || empty($_POST['world']))
		$e['world'] = 'Please select a game world for your character!';

	if(!isset($_POST['sex']) || ($_POST['sex'] != 'male' && $_POST['sex'] != 'female'))
		$e['sex'] = 'Please select the sex for your character!';

	if(count($voc) != 0 && (!isset($_POST['vocation']) || !is_numeric($_POST['vocation']) || !isset($voc[$_POST['vocation']])))
		$e['vocation'] = 'Please select the vocation for your character!';

	$s = isset($_POST['email']) ? $_POST['email'] : '';

	if($s == '')
		$e['email'] = 'Please enter your email address!';
	elseif(strlen($s) > 49)
		$e['email'] = 'Your email address is too long!';
	elseif(!filter_var($s, FILTER_VALIDATE_EMAIL))
		$e['email'] = 'This email address has an invalid format. Please enter a correct email address!';
	else {
		if(!isset($con)) {
			$con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.');
			mysql_select_db($config['server']['sqlDatabase']);
		}
		if(mysql_num_rows(mysql_query('SELECT id FROM accounts WHERE email=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0)
			$e['email'] = 'This email address is already used. Please enter another email address!';
	}

	$s1 = isset($_POST['password1']) ? $_POST['password1'] : '';
	$s2 = isset($_POST['password2']) ? $_POST['password2'] : '';

	if(empty($s2))
		$e['pass'] = 'Please enter the password again!';
	elseif($s1 != $s2)
		$e['pass'] = 'The two passwords do not match!';
	else {
		$err = array();
		if(strlen($s1) < 8 || strlen($s1) > 29)
			$err[] = 'The password must have at least 8 and less than 30 letters!';
		if(!ctype_alnum($s1))
			$err[] = 'The password contains invalid letters!';
		if(!preg_match('/[a-zA-Z]/', $s1))
			$err[] = 'The password must contain at least one letter A-Z or a-z!';
		elseif(!preg_match('/[0-9]/', $s1))
			$err[] = 'The password must contain at least one letter other than A-Z or a-z!';

		if(count($err) != 0) {
			$e['pass'] = '';
			for($i=0; $i < count($err); $i++)
				$e['pass'] .= ($i == 0 ? '' : '<br/>').$err[$i];
		}
	}

	if(!isset($_POST['agreerules']) || empty($_POST['agreerules']))
		$e['rules'] = 'You have to agree to the Tibia Rules in order to create an account!';

	if(count($e) == 0) {
		$worldid = NULL;
		foreach($config['site']['worlds'] as $id =>$name)
			if($worlds[$id] && $name == $_POST['world']) {
				$worldid = $id;
				break;
			}
		if($worldid === FALSE)
			$e['world'] = 'Please select a valid game world.';
	}

	if(count($e) != 0) {
		$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($e as $error) $main_content .= $error.'<br/>';
		$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/>';
	}
	else {
		$random = rand(1, 9999999);
		$n = $random;
		$cur = array();

		$q = mysql_query('SELECT id FROM accounts');
		while ($r = mysql_fetch_array($q, MYSQL_NUM))
			$cur[] = $r[0];

		while(true)
		{
			if(!in_array($n, $cur))
				break;

			$n++;

			if($n > 9999999)
				$n = 1;

			if($n == $random)
				die('Failed to create account.');
		}

		if(mysql_query("INSERT INTO accounts (id,name,password,email,created) VALUES($n,'".$_POST['accountname']."','".($config['server']['encryptionType'] == 'plain' ? $_POST['password1'] : hash($config['server']['encryptionType'], $_POST['password1']))."','".$_POST['email']."',".time().")") === true) {
			$sample = (count($voc) == 0 ? 'Rook' : $voc[$_POST['vocation']]).' Sample';
			$q = mysql_query("SELECT id,vocation,town_id,experience,level,maglevel,health,healthmax,mana,manamax,soul,lookbody,lookfeet,lookhead,looklegs,lookaddons,cap,save,posx,posy,posz FROM players WHERE name='$sample' LIMIT 1");
			if(mysql_num_rows($q) != 1)
				die('Missing sample character ('.$sample.')');

			$q = mysql_fetch_array($q);
			mysql_query('INSERT INTO players (name,world_id,account_id,level,vocation,health,healthmax,experience,lookbody,lookfeet,lookhead,looklegs,looktype,lookaddons,maglevel,mana,manamax,soul,town_id,posx,posy,posz,cap,sex,created) VALUES(\''.$_POST['name'].'\','.$worldid.','.$n.','.$q['level'].','.$q['vocation'].','.$q['health'].','.$q['healthmax'].','.$q['experience'].','.$q['lookbody'].','.$q['lookfeet'].','.$q['lookhead'].','.$q['looklegs'].','.($_POST['sex'] == 'female' ? 136 : 128).','.$q['lookaddons'].','.$q['maglevel'].','.$q['mana'].','.$q['manamax'].','.$q['soul'].','.$q['town_id'].','.$q['posx'].','.$q['posy'].','.$q['posz'].','.$q['cap'].','.($_POST['sex'] == 'female' ? 0 : 1).','.time().')');
		}
		else die('Failed to create account.');
		$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="Message"><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><table><tr><td style="width:100%"><p>Sua Account no Elynnia Server foi criada com sucesso. <br />Anote seu Login e Senha e guarde com segurança.<br /><br />Seu login é <u><b>'.$_POST['accountname'].'</b></u> <br /> Sua senha é <b><u>'.$_POST['password1'].'</u></b>.</td></tr></table></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)"/></h1></div></td></tr><br/><center><h1><img src="images/logo.png"></h1></center></br></table></div></table></div></td></tr>';
		return;
	}
} else $_POST['step'] = '';

$main_content .= '<script type="text/javascript" src="account/jquery.js"></script>
<script type="text/javascript" src="account/create_character.js"></script>
<script type="text/javascript">var PreselectServerLocation="'.$default.'";var g_FormName="CreateAccountAndCharacter";var g_FieldName="accountname";document.getElementById("ActiveSubmenuItemIcon_createaccount").style.visibility = "visible";';
foreach($worlds as $k =>$v) // create dynamic server list
	$main_content .= 'ServerList.push(new Array(\''.$config['site']['worlds'][$k].'\', \''.$v[0].'\', \''.$v[1].'\'));';
$main_content .= '</script><div style="position:relative;top:0px;left:0px"><form action="/index.php?subtopic=createaccount" method=post name="CreateAccountAndCharacter"><div class="TableContainer"><table class="Table5" cellpadding="0" cellspacing="0"><div class="CaptionContainer"><div class="CaptionInnerContainer"><span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif)"></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"></span><div class="Text">Create New Account</div><span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif)"></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></span></div></div><tr><td><div class="InnerTableContainer"><table style="width:100%"><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td class="LabelV150"><span id="accountname_label"'.(isset($e['acc']) ? ' class="red"' : '').'>Account Name:</span></td><td><input id="accountname" name="accountname" class="CipAjaxInput" style="width:206px;float:left" value="'.(isset($_POST['accountname']) ? htmlspecialchars(substr($_POST['accountname'], 0, 30)) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_accountname.php\',PostData: \'a_AccountName=\'+this.value,Method: \'POST\'})"/><div id="accountname_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['acc']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td></td><td><span id="accountname_errormessage" class="FormFieldError">'.(isset($e['acc']) ? $e['acc'] : '').'</span></td></tr><tr><td class="LabelV150"><span id="email_label"'.(isset($e['email']) ? ' class="red"' : '').'>Email Address:</span></td><td><input id="email" name="email" class="CipAjaxInput" style="width:206px;float:left" value="'.(isset($_POST['email']) ? htmlspecialchars(substr($_POST['email'], 0, 50)) : '').'" autocomplete="off" size="30" maxlength="50" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_email.php\',PostData: \'a_EMail=\'+this.value,Method: \'POST\'})"/><div id="email_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['email']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td></td><td><span id="email_errormessage" class="FormFieldError">'.(isset($e['email']) ? $e['email'] : '').'</span></td></tr><tr><td class="LabelV150"><span id="password1_label"'.(isset($e['pass']) ? ' class="red"' : '').'>Password:</span></td><td><input id="password1" type="password" autocomplete="off" name="password1" style="width:206px;float:left" value="'.(isset($_POST['password1']) ? htmlspecialchars(substr($_POST['password1'], 0, 30)) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_password.php\',PostData: \'a_Password1=\'+getElementById(\'password1\').value+\'&a_Password2=\'+getElementById(\'password2\').value,Method: \'POST\'})"/><div id="password1_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['pass']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td class="LabelV150"><span id="password2_label"'.(isset($e['pass']) ? ' class="red"' : '').'>Password Again:</span></td><td><input id="password2" type="password" name="password2" style="width:206px;float:left" value="'.(isset($_POST['password2']) ? htmlspecialchars(substr($_POST['password2'], 0, 30)) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_password.php\',PostData: \'a_Password1=\'+getElementById(\'password1\').value+\'&a_Password2=\'+getElementById(\'password2\').value,Method: \'POST\'})"/><div id="password2_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['pass']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td></td><td><span id="password_errormessage" class="FormFieldError">'.(isset($e['pass']) ? $e['pass'] : '').'</span></td></tr></table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td class="LabelV150"><span id="charactername_label"'.(isset($e['name']) ? ' class="red"' : '').'>Character Name:</span></td><td><input id="charactername" name="name" class="CipAjaxInput" style="width:206px;float:left;position:relative" style="float:left" value="'.(isset($_POST['name']) ? htmlspecialchars(str_replace('+', ' ', substr(trim($_POST['name']), 0, 30))) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_charactername.php\',PostData: \'a_CharacterName=\'+this.value,Method: \'POST\'})"/><div id="charactername_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['name']) ? 'n' : '').'ok.gif)"></div>';
if($suggestname)
	$main_content .= '<br/><small>[<a class="CipAjaxLink" href="https://secure.tibia.com/account/content/ajax_suggestname.php" ajaxcip="true" ajaxcip_datatype="Container">suggest name</a>]</small>';
$main_content .= '</td></tr><tr><td></td><td><span id="charactername_errormessage" class="FormFieldError">'.(isset($e['name']) ? $e['name'] : '').'</span></td></tr><tr><td class="LabelV150"><span'.(isset($e['sex']) ? ' class="red"' : '').'>Sex:</span></td><td><table width="100%"><tr><td><span style="margin-right:75px" class="OptionContainer"><label for="sex_male"><span class="OptionContainer"><input id="sex_male" type="radio" name="sex" value="male"'.(($_POST['sex'] == 'male' || $_POST['step'] != 'docreate') ? ' checked="checked"' : '').'/><label for="sex_male">male</label></span></label></span><span class="OptionContainer"><label for="sex_female"><span class="OptionContainer"><input id="sex_female" type="radio" name="sex" value="female"'.($_POST['sex'] == 'female' ? ' checked="checked"' : '').'/><label for="sex_female">female</label></span></label></span></td><td></td></tr></table></td></tr>'.(isset($e['sex']) ? '<tr><td></td><td><span class="FormFieldError">'.$e['sex'].'</span></td></tr>' : '');
if(count($voc) != 0) {
	$main_content .= '<tr><td class="LabelV150"><span'.(isset($e['vocation']) ? ' class="red"' : '').'>Vocation:</span></td><td><table width="100%"><tr><td>';
	foreach($voc as $k => $v)
		$main_content .= '<span style="margin-right:15px" class="OptionContainer"><label for="vocation_'.$k.'">
	<span class="OptionContainer"><input id="vocation_'.$k.'" type="radio" name="vocation" value="'.$k.'"'.($_POST['vocation'] == $k ? ' checked="checked"' : '').'/><label for="vocation_'.$k.'">'.$v.'</label></span></label></span>';
	$main_content .= '</td><td></td></tr></table></td></tr>'.(isset($e['vocation']) ? '<tr><td></td><td><span class="FormFieldError">'.$e['vocation'].'</span></td></tr>' : '');
}
$main_content .= '</table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%">';
if(count($location)>1) { // show server location filter
	$main_content .= '<tr id="filterbox_location"><td class="LabelV150"><span'.(isset($e['world']) ? ' class="red"' : '').'>World Location:</span></td><td><table width="100%"><tr><td width="33%" valign="top"><script>CreateFilterOption(\'server_location\', \'all\', \'all\')</script>&nbsp;&nbsp;</td>';
	$i=0;
	foreach($location as $k =>$v) {
		$i++;
		$main_content .= '<td '.($i == count($location) ? '' : 'width="33%" ').'valign="top"><script>CreateFilterOption(\'server_location\', \''.$k.'\', \''.$v.'\')</script>&nbsp;&nbsp;</td>';
	}
	$main_content .= '</tr></table></td></tr>';
}
$main_content .= '<tr id="filterbox_pvp"><td class="LabelV150"><span'.(isset($e['world']) ? ' class="red"' : '').'>World Type:</span></td><td><div>';

$optional=true; $open=true; $hardcore=true;

foreach($worlds as $k =>$v) { // remove selection if there's no valid worlds
	if($optional && $v[1] == 'optional')
		unset($optional);
	elseif($open && $v[1] == 'open')
		unset($open);
	elseif($hardcore && $v[1] == 'hardcore')
		unset($hardcore);
	elseif(!$optional && !$open && !$hardcore)
		break;
}

$n = 0;
foreach(array($optional, $open, $hardcore) as $k)
	if(!$k)
		$n++;
$main_content .= '<table width="'.round(33.33 *  $n).'%"><tr>';
if(!$optional)
	$main_content .= '<td width="'.(100 / $n).'%" align="center" valign="top"><b><script>CreateFilterOption(\'server_pvp_type\', \'optional\', \'Optional PvP\')</script></b>&nbsp;&nbsp;Only if both sides agree, characters can be fought<br/><br/></td>';
if(!$open)
	$main_content .= '<td width="'.(100 / $n).'%" align="center" valign="top"><b><script>CreateFilterOption(\'server_pvp_type\', \'open\', \'Open PvP\')</script></b>&nbsp;&nbsp;Killing other characters is possible, but restricted<br/><br/></td>';
if(!$hardcore)
	$main_content .= '<td align="center" valign="top"><b><script>CreateFilterOption(\'server_pvp_type\', \'hardcore\', \'Hardcore PvP\')</script></b>&nbsp;&nbsp;Killing other characters is not restricted at all<br/><br/></td>';

$main_content .= '';
foreach($worlds as $k =>$v)
	$main_content .= '<input id="server_static_'.$config['site']['worlds'][$k].'" type="radio" name="world" value="'.$config['site']['worlds'][$k].'"'.($config['site']['worlds'][$k] == $_POST['world'] ? ' checked="checked"' : '').'><label for="server_static_'.$config['site']['worlds'][$k].'">'.$config['site']['worlds'][$k].'</label><br/>';
$main_content .= '</td></tr></table></td></tr>'.(isset($e['world']) ? '<tr><td></td><td><span class="FormFieldError">'.$e['world'].'</span></td></tr>' : '').'</table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td><b>Please select all of the following check boxes:</b></td></tr><tr><td><span id="agreeagreement_errormessage" class="FormFieldError">'.(isset($e['agreement']) ? $e['agreement'] : '').'</span></td></tr><tr><td><input type="checkbox" name="agreerules" value="true"  onClick="if(this.checked == true) {  document.getElementById(\'agreerules_errormessage\').innerhtml = \'\';} else {  document.getElementById(\'agreerules_errormessage\').innerhtml = \'You have to agree to the Tibia Rules in order to create an account!\';}"'.($_POST['step'] == 'docreate' && !isset($e['rules']) ? ' checked="checked"' : '').'/>I agree to the <a href="/index.php?subtopic=serverrules" target="_blank">Tibia Rules</a>.</td></tr><tr><td><span id="agreerules_errormessage" class="FormFieldError">'.(isset($e['rules']) ? $e['rules'] : '').'</span></td></tr><tr><td><span id="agreeprivacy_errormessage" class="FormFieldError">'.(isset($e['privacy']) ? $e['privacy'] : '').'</span></td></tr></table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr><script type="text/javascript">PreselectWorld="';
if(isset($_POST['world']) && !empty($_POST['world']))
	foreach($config['site']['worlds'] as $id =>$name)
		if($worlds[$id] && $name == $_POST['world']) {
			$main_content .= $name;
			break;
		}
$main_content .= '";InitializeCharacterCreator(PreselectServerLocation, \''.(!$optional ? 'optional' : (!$open ? 'open' : 'hardcore')).'\')</script></table></div></table></div></td></tr><br/></div><center><table border="0" cellspacing="0" cellpadding="0"><tr><td style="border:0px"><input type="hidden" name=step value=docreate><input type="hidden" name=noframe value=""><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)"><div onMouseOver="MouseOverBigButton(this)" onMouseOut="MouseOutBigButton(this)"><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif)"></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif"></div></div></td><tr></form></table></center><script type="text/javascript" language="javascript">document.forms[\'CreateAccountAndCharacter\'].elements[\'accountname\'].focus();</script><script type="text/javascript" src="account/generic.js"></script><script type="text/javascript" src="account/ajaxcip.js"></script>';
 
Last edited:
I would like to add this code below in my file (createaccount.php) on the creation of Chares to do the verification in accordance with the code below, this code was in the file (AccountManagement.php) which also makes verification.

Code
Code:
<script type="text/javascript">  
                var nameHttp;  
                function checkName()  
                {  
                    if(document.getElementById("newcharname").value=="")  
                    {  
                        document.getElementById("name_check").innerhtml = \'<b><font color="red">Please enter new character name.</font></b>\';  
                        return;  
                    }  
                    nameHttp=GetXmlHttpObject();  
                    if (nameHttp==null)  
                    {  
                        return;  
                    }  
                    var newcharname = document.getElementById("newcharname").value;  
                    var url="ajax/check_name.php?name=" + newcharname + "&uid="+Math.random();  
                    nameHttp.onreadystatechange=NameStateChanged;  
                    nameHttp.open("GET",url,true);  
                    nameHttp.send(null);  
                }  
                function NameStateChanged()  
                {  
                    if (nameHttp.readyState==4)  
                    {  
                        document.getElementById("name_check").innerhtml=nameHttp.responseText;  
                    }  
                }  
            </script>

CreateAccount.php
Code:
<b>
<?php
$location = array(
	'GER' =>'Europe',
//	'USA' =>'North America'
);
$default = 'all';

$worlds = array();
$worlds[0] = array('GER', 'open');
/*
$worlds[1] = array('GER', 'optional');
$worlds[2] = array('GER', 'hardcore');
$worlds[3] = array('USA', 'open');
$worlds[4] = array('USA', 'optional');
$worlds[5] = array('USA', 'hardcore');
*/

$voc = array(); // if empty, Rook Sample will be used
$voc[1] = 'Sorcerer';
$voc[2] = 'Druid';
$voc[3] = 'Paladin';
$voc[4] = 'Knight';

$suggestname = NULL; // not available
$version = '860'; // for download link

foreach($worlds as $k =>$v) // remove invalid worlds
	if(!isset($location[$v[0]]) || !isset($config['site']['worlds'][$k]))
		unset($worlds[$k]);

$tmp = array();
foreach($location as $k =>$v) // remove invalid/unused locations
	foreach($worlds as $i =>$j)
		if($j[0] == $k) {
			$tmp[$k] = $v;
			break;
		}
$location = $tmp; unset($tmp);

if(isset($_POST['step']) && $_POST['step'] == 'docreate') {
	$e = array();
	$s = isset($_POST['accountname']) ? $_POST['accountname'] : '';
	if($s == '')
		$e['acc'] = 'Please enter an account name!';
	elseif(strlen($s) < 6)
		$e['acc'] = 'This account name is too short!';
	elseif(strlen($s) > 30)
		$e['acc'] = 'This account name is too long!';
	else {
		$s = strtoupper($s);

		if(!ctype_alnum($s))
			$e['acc'] = 'This account name has an invalid format. Your account name may only consist of numbers 0-9 and letters A-Z!';
		elseif(!preg_match('/[A-Z]/', $s))
			$e['acc'] = 'Your account name must include at least one letter A-Z!';
		else {
			$con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.');
			mysql_select_db($config['server']['sqlDatabase']);

			if(mysql_num_rows(mysql_query('SELECT id FROM accounts WHERE name=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0)
				$e['acc'] = 'This account name is already used. Please select another one!';
		}
	}
	
	$s = isset($_POST['name']) ? trim($_POST['name']) : '';

	if(empty($s))
		$e['name'] = 'Please enter a name for your character!';
	elseif(strlen($s) < 2 || strlen($s) > 29)
		$e['name'] = 'A name must have at least 2 but no more than 29 letters!';
	elseif(preg_match('/[^a-zA-Z ]/', $s))
		$e['name'] = 'This name contains invalid letters. Please use only A-Z, a-z and space!';
	elseif(!ctype_upper($s[0]))
		$e['name'] = 'The first letter of a name has to be a capital letter!';
	elseif(strpos($s, '  ') !== false)
		$e['name'] = 'This name contains more than one space between words. Please use only one space between words!';
	else {
		foreach(explode(' ', $s) as $k =>$v) {
			$words[$k] = str_split($v);
			$len = strlen($v);
			if($len == 1) {
				$e['name'] = 'This name contains a word with only one letter. Please use more than one letter for each word!';
				break;
			}
			elseif($len > 14) {
				$e['name'] = 'This name contains a word that is too long. Please use no more than 14 letters for each word!';
				break;
			}
		}
		if(!isset($e['name'])) {
			$total=0;
			foreach($words as $k =>$p) {
				if(isset($e['name']))
					break;
				$total++;
				if($total > 3) {
					$e['name'] = 'This name contains more than 3 words. Please choose another name!';
					break;
				}
				$len=0;
				foreach($p as $i =>$j) {
					$len++;
					if($i != 0 && ctype_upper($j)) {
						$e['name'] = 'In names capital letters are only allowed at the beginning of a word!';
						break;
					}
					elseif($i == $len-1) {
						$ff=null;
						for($h=0;$h<strlen($v); $h++) {
							if(in_array(strtolower($v[$h]), array('a','e','i','o','u')) !== false) {
								$ff=true;
								break;
							}
						}
						if(!$ff) {
							$e['name'] = 'This name contains a word without vowels. Please choose another name!';
							break;
						}
					}
				}
			}
			if(!isset($e['name'])) {
				$s = strtolower($s);
				for($i = 0; $i < strlen($s); $i++)
					if($s[$i] == $s[($i+1)] && $s[$i] == $s[($i+2)]) {
						$e['name'] = 'This character name is already used. Please select another one!';
						break;
					}
				if(!isset($e['name'])) {
					foreach(array('aa ', 'ee', 'ii', 'oo', 'uu', 'gm','cm', 'aff ', 'god ', 'abc', 'tutor', 'game', 'admin', 'the ') as $v)
						if($v == substr($s, 0, strlen($v))) {
							$e['name'] = 'This character name is already used. Please select another one!';
							break;
						}
					if(!isset($e['name'])) {
						foreach(array('game', 'customer', 'support','elynnia', 'fuck', 'haha', 'sux', ' abc', 'suck', 'noob', 'tutor', 'admin', 'account', 'gay', 'password', 'manager') as $v)
							if(strpos($s, $v) !== false) {
								$e['name'] = 'This character name is already used. Please select another one!';
								break;
							}
						if(!isset($e['name'])) {
							if(!isset($con)) {
								$con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.');
								mysql_select_db($config['server']['sqlDatabase']);
							}
							if(mysql_num_rows(mysql_query('SELECT id FROM players WHERE name=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0)
								$e['name'] = 'This character name is already used. Please select another one!';
						}
					}
				}
			}
		}
	}

	if(!isset($_POST['world']) || empty($_POST['world']))
		$e['world'] = 'Please select a game world for your character!';

	if(!isset($_POST['sex']) || ($_POST['sex'] != 'male' && $_POST['sex'] != 'female'))
		$e['sex'] = 'Please select the sex for your character!';

	if(count($voc) != 0 && (!isset($_POST['vocation']) || !is_numeric($_POST['vocation']) || !isset($voc[$_POST['vocation']])))
		$e['vocation'] = 'Please select the vocation for your character!';

	$s = isset($_POST['email']) ? $_POST['email'] : '';

	if($s == '')
		$e['email'] = 'Please enter your email address!';
	elseif(strlen($s) > 49)
		$e['email'] = 'Your email address is too long!';
	elseif(!filter_var($s, FILTER_VALIDATE_EMAIL))
		$e['email'] = 'This email address has an invalid format. Please enter a correct email address!';
	else {
		if(!isset($con)) {
			$con = mysql_pconnect($config['server']['sqlHost'], $config['server']['sqlUser'], $config['server']['sqlPass']) or die('MySQL connection error.');
			mysql_select_db($config['server']['sqlDatabase']);
		}
		if(mysql_num_rows(mysql_query('SELECT id FROM accounts WHERE email=\''.mysql_escape_string($s).'\' LIMIT 1')) != 0)
			$e['email'] = 'This email address is already used. Please enter another email address!';
	}

	$s1 = isset($_POST['password1']) ? $_POST['password1'] : '';
	$s2 = isset($_POST['password2']) ? $_POST['password2'] : '';

	if(empty($s2))
		$e['pass'] = 'Please enter the password again!';
	elseif($s1 != $s2)
		$e['pass'] = 'The two passwords do not match!';
	else {
		$err = array();
		if(strlen($s1) < 8 || strlen($s1) > 29)
			$err[] = 'The password must have at least 8 and less than 30 letters!';
		if(!ctype_alnum($s1))
			$err[] = 'The password contains invalid letters!';
		if(!preg_match('/[a-zA-Z]/', $s1))
			$err[] = 'The password must contain at least one letter A-Z or a-z!';
		elseif(!preg_match('/[0-9]/', $s1))
			$err[] = 'The password must contain at least one letter other than A-Z or a-z!';

		if(count($err) != 0) {
			$e['pass'] = '';
			for($i=0; $i < count($err); $i++)
				$e['pass'] .= ($i == 0 ? '' : '<br/>').$err[$i];
		}
	}

	if(!isset($_POST['agreerules']) || empty($_POST['agreerules']))
		$e['rules'] = 'You have to agree to the Tibia Rules in order to create an account!';

	if(count($e) == 0) {
		$worldid = NULL;
		foreach($config['site']['worlds'] as $id =>$name)
			if($worlds[$id] && $name == $_POST['world']) {
				$worldid = $id;
				break;
			}
		if($worldid === FALSE)
			$e['world'] = 'Please select a valid game world.';
	}

	if(count($e) != 0) {
		$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($e as $error) $main_content .= $error.'<br/>';
		$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/>';
	}
	else {
		$random = rand(1, 9999999);
		$n = $random;
		$cur = array();

		$q = mysql_query('SELECT id FROM accounts');
		while ($r = mysql_fetch_array($q, MYSQL_NUM))
			$cur[] = $r[0];

		while(true)
		{
			if(!in_array($n, $cur))
				break;

			$n++;

			if($n > 9999999)
				$n = 1;

			if($n == $random)
				die('Failed to create account.');
		}

		if(mysql_query("INSERT INTO accounts (id,name,password,email,created) VALUES($n,'".$_POST['accountname']."','".($config['server']['encryptionType'] == 'plain' ? $_POST['password1'] : hash($config['server']['encryptionType'], $_POST['password1']))."','".$_POST['email']."',".time().")") === true) {
			$sample = (count($voc) == 0 ? 'Rook' : $voc[$_POST['vocation']]).' Sample';
			$q = mysql_query("SELECT id,vocation,town_id,experience,level,maglevel,health,healthmax,mana,manamax,soul,lookbody,lookfeet,lookhead,looklegs,lookaddons,cap,save,posx,posy,posz FROM players WHERE name='$sample' LIMIT 1");
			if(mysql_num_rows($q) != 1)
				die('Missing sample character ('.$sample.')');

			$q = mysql_fetch_array($q);
			mysql_query('INSERT INTO players (name,world_id,account_id,level,vocation,health,healthmax,experience,lookbody,lookfeet,lookhead,looklegs,looktype,lookaddons,maglevel,mana,manamax,soul,town_id,posx,posy,posz,cap,sex,created) VALUES(\''.$_POST['name'].'\','.$worldid.','.$n.','.$q['level'].','.$q['vocation'].','.$q['health'].','.$q['healthmax'].','.$q['experience'].','.$q['lookbody'].','.$q['lookfeet'].','.$q['lookhead'].','.$q['looklegs'].','.($_POST['sex'] == 'female' ? 136 : 128).','.$q['lookaddons'].','.$q['maglevel'].','.$q['mana'].','.$q['manamax'].','.$q['soul'].','.$q['town_id'].','.$q['posx'].','.$q['posy'].','.$q['posz'].','.$q['cap'].','.($_POST['sex'] == 'female' ? 0 : 1).','.time().')');
		}
		else die('Failed to create account.');
		$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="Message"><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><table><tr><td style="width:100%"><p>Sua Account no Elynnia Server foi criada com sucesso. <br />Anote seu Login e Senha e guarde com segurança.<br /><br />Seu login é <u><b>'.$_POST['accountname'].'</b></u> <br /> Sua senha é <b><u>'.$_POST['password1'].'</u></b>.</td></tr></table></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)"/></h1></div></td></tr><br/><center><h1><img src="http://otland.net/images/logo.png"></h1></center></br></table></div></table></div></td></tr>';
		return;
	}
} else $_POST['step'] = '';

$main_content .= '<script type="text/javascript" src="account/jquery.js"></script>
<script type="text/javascript" src="account/create_character.js"></script>
<script type="text/javascript">var PreselectServerLocation="'.$default.'";var g_FormName="CreateAccountAndCharacter";var g_FieldName="accountname";document.getElementById("ActiveSubmenuItemIcon_createaccount").style.visibility = "visible";';
foreach($worlds as $k =>$v) // create dynamic server list
	$main_content .= 'ServerList.push(new Array(\''.$config['site']['worlds'][$k].'\', \''.$v[0].'\', \''.$v[1].'\'));';
$main_content .= '</script><div style="position:relative;top:0px;left:0px"><form action="/index.php?subtopic=createaccount" method=post name="CreateAccountAndCharacter"><div class="TableContainer"><table class="Table5" cellpadding="0" cellspacing="0"><div class="CaptionContainer"><div class="CaptionInnerContainer"><span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif)"></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"></span><div class="Text">Create New Account</div><span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif)"></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif)"></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif)"></span></div></div><tr><td><div class="InnerTableContainer"><table style="width:100%"><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td class="LabelV150"><span id="accountname_label"'.(isset($e['acc']) ? ' class="red"' : '').'>Account Name:</span></td><td><input id="accountname" name="accountname" class="CipAjaxInput" style="width:206px;float:left" value="'.(isset($_POST['accountname']) ? htmlspecialchars(substr($_POST['accountname'], 0, 30)) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_accountname.php\',PostData: \'a_AccountName=\'+this.value,Method: \'POST\'})"/><div id="accountname_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['acc']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td></td><td><span id="accountname_errormessage" class="FormFieldError">'.(isset($e['acc']) ? $e['acc'] : '').'</span></td></tr><tr><td class="LabelV150"><span id="email_label"'.(isset($e['email']) ? ' class="red"' : '').'>Email Address:</span></td><td><input id="email" name="email" class="CipAjaxInput" style="width:206px;float:left" value="'.(isset($_POST['email']) ? htmlspecialchars(substr($_POST['email'], 0, 50)) : '').'" autocomplete="off" size="30" maxlength="50" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_email.php\',PostData: \'a_EMail=\'+this.value,Method: \'POST\'})"/><div id="email_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['email']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td></td><td><span id="email_errormessage" class="FormFieldError">'.(isset($e['email']) ? $e['email'] : '').'</span></td></tr><tr><td class="LabelV150"><span id="password1_label"'.(isset($e['pass']) ? ' class="red"' : '').'>Password:</span></td><td><input id="password1" type="password" autocomplete="off" name="password1" style="width:206px;float:left" value="'.(isset($_POST['password1']) ? htmlspecialchars(substr($_POST['password1'], 0, 30)) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_password.php\',PostData: \'a_Password1=\'+getElementById(\'password1\').value+\'&a_Password2=\'+getElementById(\'password2\').value,Method: \'POST\'})"/><div id="password1_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['pass']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td class="LabelV150"><span id="password2_label"'.(isset($e['pass']) ? ' class="red"' : '').'>Password Again:</span></td><td><input id="password2" type="password" name="password2" style="width:206px;float:left" value="'.(isset($_POST['password2']) ? htmlspecialchars(substr($_POST['password2'], 0, 30)) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_password.php\',PostData: \'a_Password1=\'+getElementById(\'password1\').value+\'&a_Password2=\'+getElementById(\'password2\').value,Method: \'POST\'})"/><div id="password2_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['pass']) ? 'n' : '').'ok.gif)"></div></td></tr><tr><td></td><td><span id="password_errormessage" class="FormFieldError">'.(isset($e['pass']) ? $e['pass'] : '').'</span></td></tr></table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td class="LabelV150"><span id="charactername_label"'.(isset($e['name']) ? ' class="red"' : '').'>Character Name:</span></td><td><input id="charactername" name="name" class="CipAjaxInput" style="width:206px;float:left;position:relative" style="float:left" value="'.(isset($_POST['name']) ? htmlspecialchars(str_replace('+', ' ', substr(trim($_POST['name']), 0, 30))) : '').'" size="30" maxlength="30" onBlur="SendAjaxCip({DataType: \'Container\'}, {Href: \'account/ajax_charactername.php\',PostData: \'a_CharacterName=\'+this.value,Method: \'POST\'})"/><div id="charactername_indicator" class="InputIndicator" style="background-image:url(account/'.($_POST['step'] != 'docreate' || isset($e['name']) ? 'n' : '').'ok.gif)"></div>';
if($suggestname)
	$main_content .= '<br/><small>[<a class="CipAjaxLink" href="https://secure.tibia.com/account/content/ajax_suggestname.php" ajaxcip="true" ajaxcip_datatype="Container">suggest name</a>]</small>';
$main_content .= '</td></tr><tr><td></td><td><span id="charactername_errormessage" class="FormFieldError">'.(isset($e['name']) ? $e['name'] : '').'</span></td></tr><tr><td class="LabelV150"><span'.(isset($e['sex']) ? ' class="red"' : '').'>Sex:</span></td><td><table width="100%"><tr><td><span style="margin-right:75px" class="OptionContainer"><label for="sex_male"><span class="OptionContainer"><input id="sex_male" type="radio" name="sex" value="male"'.(($_POST['sex'] == 'male' || $_POST['step'] != 'docreate') ? ' checked="checked"' : '').'/><label for="sex_male">male</label></span></label></span><span class="OptionContainer"><label for="sex_female"><span class="OptionContainer"><input id="sex_female" type="radio" name="sex" value="female"'.($_POST['sex'] == 'female' ? ' checked="checked"' : '').'/><label for="sex_female">female</label></span></label></span></td><td></td></tr></table></td></tr>'.(isset($e['sex']) ? '<tr><td></td><td><span class="FormFieldError">'.$e['sex'].'</span></td></tr>' : '');
if(count($voc) != 0) {
	$main_content .= '<tr><td class="LabelV150"><span'.(isset($e['vocation']) ? ' class="red"' : '').'>Vocation:</span></td><td><table width="100%"><tr><td>';
	foreach($voc as $k => $v)
		$main_content .= '<span style="margin-right:15px" class="OptionContainer"><label for="vocation_'.$k.'">
	<span class="OptionContainer"><input id="vocation_'.$k.'" type="radio" name="vocation" value="'.$k.'"'.($_POST['vocation'] == $k ? ' checked="checked"' : '').'/><label for="vocation_'.$k.'">'.$v.'</label></span></label></span>';
	$main_content .= '</td><td></td></tr></table></td></tr>'.(isset($e['vocation']) ? '<tr><td></td><td><span class="FormFieldError">'.$e['vocation'].'</span></td></tr>' : '');
}
$main_content .= '</table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%">';
if(count($location)>1) { // show server location filter
	$main_content .= '<tr id="filterbox_location"><td class="LabelV150"><span'.(isset($e['world']) ? ' class="red"' : '').'>World Location:</span></td><td><table width="100%"><tr><td width="33%" valign="top"><script>CreateFilterOption(\'server_location\', \'all\', \'all\')</script>&nbsp;&nbsp;</td>';
	$i=0;
	foreach($location as $k =>$v) {
		$i++;
		$main_content .= '<td '.($i == count($location) ? '' : 'width="33%" ').'valign="top"><script>CreateFilterOption(\'server_location\', \''.$k.'\', \''.$v.'\')</script>&nbsp;&nbsp;</td>';
	}
	$main_content .= '</tr></table></td></tr>';
}
$main_content .= '<tr id="filterbox_pvp"><td class="LabelV150"><span'.(isset($e['world']) ? ' class="red"' : '').'>World Type:</span></td><td><div>';

$optional=true; $open=true; $hardcore=true;

foreach($worlds as $k =>$v) { // remove selection if there's no valid worlds
	if($optional && $v[1] == 'optional')
		unset($optional);
	elseif($open && $v[1] == 'open')
		unset($open);
	elseif($hardcore && $v[1] == 'hardcore')
		unset($hardcore);
	elseif(!$optional && !$open && !$hardcore)
		break;
}

$n = 0;
foreach(array($optional, $open, $hardcore) as $k)
	if(!$k)
		$n++;
$main_content .= '<table width="'.round(33.33 *  $n).'%"><tr>';
if(!$optional)
	$main_content .= '<td width="'.(100 / $n).'%" align="center" valign="top"><b><script>CreateFilterOption(\'server_pvp_type\', \'optional\', \'Optional PvP\')</script></b>&nbsp;&nbsp;Only if both sides agree, characters can be fought<br/><br/></td>';
if(!$open)
	$main_content .= '<td width="'.(100 / $n).'%" align="center" valign="top"><b><script>CreateFilterOption(\'server_pvp_type\', \'open\', \'Open PvP\')</script></b>&nbsp;&nbsp;Killing other characters is possible, but restricted<br/><br/></td>';
if(!$hardcore)
	$main_content .= '<td align="center" valign="top"><b><script>CreateFilterOption(\'server_pvp_type\', \'hardcore\', \'Hardcore PvP\')</script></b>&nbsp;&nbsp;Killing other characters is not restricted at all<br/><br/></td>';

$main_content .= '';
foreach($worlds as $k =>$v)
	$main_content .= '<input id="server_static_'.$config['site']['worlds'][$k].'" type="radio" name="world" value="'.$config['site']['worlds'][$k].'"'.($config['site']['worlds'][$k] == $_POST['world'] ? ' checked="checked"' : '').'><label for="server_static_'.$config['site']['worlds'][$k].'">'.$config['site']['worlds'][$k].'</label><br/>';
$main_content .= '</td></tr></table></td></tr>'.(isset($e['world']) ? '<tr><td></td><td><span class="FormFieldError">'.$e['world'].'</span></td></tr>' : '').'</table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr><tr><td><div class="TableShadowContainerRightTop"><div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif)"></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif)"><div class="TableContentContainer"><table class="TableContent" width="100%"><tr><td><b>Please select all of the following check boxes:</b></td></tr><tr><td><span id="agreeagreement_errormessage" class="FormFieldError">'.(isset($e['agreement']) ? $e['agreement'] : '').'</span></td></tr><tr><td><input type="checkbox" name="agreerules" value="true"  onClick="if(this.checked == true) {  document.getElementById(\'agreerules_errormessage\').innerhtml = \'\';} else {  document.getElementById(\'agreerules_errormessage\').innerhtml = \'You have to agree to the Tibia Rules in order to create an account!\';}"'.($_POST['step'] == 'docreate' && !isset($e['rules']) ? ' checked="checked"' : '').'/>I agree to the <a href="/index.php?subtopic=serverrules" target="_blank">Tibia Rules</a>.</td></tr><tr><td><span id="agreerules_errormessage" class="FormFieldError">'.(isset($e['rules']) ? $e['rules'] : '').'</span></td></tr><tr><td><span id="agreeprivacy_errormessage" class="FormFieldError">'.(isset($e['privacy']) ? $e['privacy'] : '').'</span></td></tr></table></div></div><div class="TableShadowContainer"><div class="TableBottomShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bm.gif)"><div class="TableBottomLeftShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-bl.gif)"></div><div class="TableBottomRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-br.gif)"></div></div></div></td></tr><script type="text/javascript">PreselectWorld="';
if(isset($_POST['world']) && !empty($_POST['world']))
	foreach($config['site']['worlds'] as $id =>$name)
		if($worlds[$id] && $name == $_POST['world']) {
			$main_content .= $name;
			break;
		}
$main_content .= '";InitializeCharacterCreator(PreselectServerLocation, \''.(!$optional ? 'optional' : (!$open ? 'open' : 'hardcore')).'\')</script></table></div></table></div></td></tr><br/></div><center><table border="0" cellspacing="0" cellpadding="0"><tr><td style="border:0px"><input type="hidden" name=step value=docreate><input type="hidden" name=noframe value=""><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)"><div onMouseOver="MouseOverBigButton(this)" onMouseOut="MouseOutBigButton(this)"><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif)"></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif"></div></div></td><tr></form></table></center><script type="text/javascript" language="javascript">document.forms[\'CreateAccountAndCharacter\'].elements[\'accountname\'].focus();</script><script type="text/javascript" src="account/generic.js"></script><script type="text/javascript" src="account/ajaxcip.js"></script>';

- - - Updated - - -

Bump

- - - Updated - - -

Please Delete this post
 
Last edited:
Back
Top