Ir para conteúdo
  • Cadastre-se

Modern AAC Avisos ao criar contas no Modern AAC v3 Avuenja


Posts Recomendados

Spoiler

Screenshot_17.png

 

Original

Spoiler

asdasdasada.png

 

 

account.php

Spoiler

<?php
/* 
+I.D.E ENGINE+
Controller of Account for Modern AAC - Powered by IDE Engine.
A lot of new functionality and variables can be hard-coded here.
If you do NOT understand the code, do NOT change anything in here.
*/
	
	class Account extends Controller {
	
		/* Main index of Account controllers, also work as a __construct(); It is called by engine as a default. */
		function index($action = ) {
			if($action == 1) success("Your new character has been created!");
			if($action == 2) success("Your nickname has been set! Thank you!");
			if($action == 3) success("You have exceded the maximum amount of characters per account.");
			if($action == 4) success("Your profile has been updated.");
			if($action == 5) success("Your avatar has been updated!");
			$this->load->model("Account_model");
			if(empty($_SESSION['account_id'])) $_SESSION['account_id'] = $this->Account_model->getAccountID();
			$ide = new IDE;
			$ide->requireLogin();
			if(empty($_SESSION['nickname'])) $ide->redirect(WEBSITE."/index.php/account/setNickname");
			$data = array();
			$data['loggedUser'] = $_SESSION['name'];
			$data['characters'] = $this->Account_model->getCharacters();
			$data['messages'] = $this->Account_model->checkMessages();
			$ots = POT::getInstance();
			$ots->connect(POT::DB_MYSQL, connection());
			$account = $ots->createObject('Account');
			try { $account->find($_SESSION['name']); } catch(Exception $e) {show_error('There was a problem during loading account. Err code: 220212072010 Futher details: '.$e->getMessage());}
			$data['account'] = $account;
			$data['acc'] = $this->Account_model->load($_SESSION['account_id']);
			$recovery_key = $this->Account_model->getRecoveryKey($_SESSION['name']);
			if($recovery_key === "") alert("You don't have recovery key set up. Click <a href='".WEBSITE."/index.php/account/generate_recovery_key'><b>here</b></a> to create one. We strongly recommend to create one now for security reasons.");
			/* Load view of account page and send data to it. */
			$this->load->view('account', $data);
		}
		
		/*
		Function to check if account with this name already exists, it is used by create controller as a callaback in form validation. 
		It should be made as an abstract class of database in Model, but I don't think there is point of it.
		*/
		function _account_exists($name) {
			$ots = POT::getInstance();
			$ots->connect(POT::DB_MYSQL, connection());
			$account = new OTS_Account();
			try { $account->find($name); } catch(Exception $e) {show_error('There was a problem during loading account. Err code: 220512072010 Futher details: '.$e->getMessage());}
			if($account->isLoaded()) { $this->form_validation->set_message('_account_exists', 'Account with this name already exists.');return false;} else return true;
		}
		
		function _checkCaptcha($word) {
			if(strtolower($word) == strtolower($_SESSION['captcha']) && !empty($_SESSION['captcha'])) {
				return true;
			}
			else {
				$this->form_validation->set_message('_checkCaptcha', 'Captcha word is incorrect.');
				return false;
			}
		}
		
		function _nicknameExists($name) {
			$this->load->model("account_model");
			if($this->account_model->nicknameExists($name)) {
				$this->form_validation->set_message('_nicknameExists', 'This nickname already exists!.');
				return false;
			}
			else
				return true;
		}
		function _emailExists($email) {
			$this->load->model("account_model");
			if($this->account_model->emailExists($email)) {
				$this->form_validation->set_message('_emailExists', 'This email is already used by another account already exists!');
				return false;
			}
			else
				return true;
		}
		
		function _characterExists($name) {
			$this->load->model("character_model");
			if($this->character_model->characterExists($name)) {
				$this->form_validation->set_message('_characterExists', 'This character name already exists, please choose another one!');
				return false;
			}
			else
				return true;
		}
		
		function _checkDelay() {
			global $config;
			if(!isset($_SESSION['accountDelay'])) $_SESSION['accountDelay'] = ;
			if($config['accountDelay']) {
				if(@(time()-$_SESSION['accountDelay']) > 240) {
					return true;
				}
				else {
					$this->form_validation->set_message('_checkDelay', 'You cannot create another account just after another. Please wait few minutes.');
					return false;
				}
			}
			else
				return true;
		}
		
	function _checkCity($id) {
		$this->config->load('create_character.php');
		if(!array_key_exists($id, $this->config->item('cities'))) {
			$this->form_validation->set_message('_checkCity', 'Unknown City');
			return false;
		}
		else
			return true;
	}
	
	function _checkWorld($id) {
		$this->config->load('create_character.php');
		if(!array_key_exists($id, $this->config->item('worlds'))) {
			$this->form_validation->set_message('_checkWorld', 'Unknown World');
			return false;
		}
		else
			return true;
	}
	
	function _checkVocation($id) {
		$this->config->load('create_character.php');
		if(!array_key_exists($id, $this->config->item('vocations'))) {
			$this->form_validation->set_message('_checkVocation', 'Unknown Vocation');
			return false;
		}
		else
			return true;
	}
	
	function _checkSex($id) {
		if($id !=  and $id != 1) {
			$this->form_validation->set_message('_checkSex', 'Unknown Sex');
			return false;
		}
		else
			return true;
	}
	
	function _validName($name) {
		require("config.php");
		$name = explode(" ", $name);
			foreach($name as $unit) {
				if(in_array(strtolower($unit), $config['invalidNameTags'])) {
					$this->form_validation->set_message('_validName', 'Invalid Name');
					return false;
				}
				else if(strlen($unit) == 1) {
					$this->form_validation->set_message('_validName', 'Invalid Name');
					return false;
				}
				else
					continue;
			}
	}
	
	// Function which make the player more real by tatu hunter
	// Eg: elder'Druid = Elder'Druid
	//	   elder'druid = Elder'druid
	//     druid theMaster = Druid themaster
	function strFirst($name) {
		$name = explode(' ', trim($name));
		for($i=, $t = sizeof($name); $i<$t; ++$i)
			for($j=, $l=strlen($name[$i]); $j<$l; ++$j)
				!$j ? 
				($name[$i][$j] = !$i ? ($name[$i][$j] == strtoupper($name[$i][$j]) ? $name[$i][$j] : strtoupper($name[$i][$j])): $name[$i][$j])  : 
				($name[$i][$j] = ($name[$i][$j-1] == '\'' ? $name[$i][$j] : 
				strtolower($name[$i][$j])));
	
		$ret = '';
		foreach($name as $k)
			$ret .= $k . ' ';
	
		return trim($ret);
	}

		/* Controller of creating new account. New values can be hard-coded here. (only experienced users) */
		function create($ajax = ) {
			require_once("system/application/config/create_character.php");
			$ide = new IDE;
			global $config;
			if($ajax == 1 && $ide->isLogged()) exit;
			if($ide->isLogged()) $ide->redirect(WEBSITE.'/index.php/account');
			$this->load->plugin('captcha');
			$this->load->helper('form');
			
			$vals = array(
					'word'		 => '',
					'img_path'	 => 'system/captcha/',
					'img_url'	 => WEBSITE.'/system/captcha/',
					'font_path'	 => WEBSITE.'/system/fonts/texb.ttf',
					'img_width'	 => '156',
					'img_height' => 30,
					'expiration' => 120
				);
			if(!$_POST && $ajax == ) {
				$cap = create_captcha($vals);	
			}
			if($_POST) {
				$this->load->library('form_validation');
				$_POST['nickname'] = ucfirst(strtolower($_POST['nickname']));
				$this->form_validation->set_rules('name', 'Account Name', 'required|min_length[4]|max_length[32]|callback__account_exists|alpha_numeric|callback__checkDelay');
				$this->form_validation->set_rules('nickname', 'Nickname', 'required|min_length[4]|max_length[32]|callback__nicknameExists');
				$this->form_validation->set_rules('password', 'Password', 'required|matches[repeat]|min_length[4]|max_length[255]');
				$this->form_validation->set_rules('email', 'Email', 'required|valid_email|callback__emailExists');
				$this->form_validation->set_rules('character_name', 'Character Name', 'required|min_length[4]|max_length[32]|nickname|callback__characterExists|callback__validName');
				$this->form_validation->set_rules('city', 'City', 'required|integer|callback__checkCity');
				$this->form_validation->set_rules('world', 'World', 'required|integer|callback__checkWorld');
				$this->form_validation->set_rules('vocation', 'Vocation', 'required|integer|callback__checkVocation');
				$this->form_validation->set_rules('sex', 'Sex', 'required|integer|callback__checkSex');
				$this->form_validation->set_rules('captcha', 'Captcha', 'required|callback__checkCaptcha');
				if($this->form_validation->run() == TRUE) {
					require(APPPATH.'config/ide_default.php');
					$ots = POT::getInstance();
					$ots->connect(POT::DB_MYSQL, connection());
					$account = new OTS_Account();
					$name = $account->createNamed($_POST['name']);
					$account->setPassword(sha1($_POST['password']));
					$account->setEmail($_POST['email']);
					$account->setCustomField('nickname', $_POST['nickname']);
					$account->setCustomField('premdays', PREMDAYS);
					$account->setCustomField('lastday', $_SERVER['REQUEST_TIME']);
					try {
						$account->save();
						unset($account);
						$_SESSION['logged'] = 1;
						$_SESSION['name'] = $_POST['name'];
						$_SESSION['nickname'] = $_POST['nickname'];
						$_SESSION['accountDelay'] = time();
						
						$account = $ots->createObject('Account');
						$account->find($_POST['name']);
						
						$sample = new OTS_Player();
						$sample->find($config['newchar_vocations'][$_POST['world']][$_POST['vocation']]);
						if(!$sample->isLoaded()) {	show_error('Sample character could not be found!'); }
						
						// Create new character
						$player = $ots->createObject('Player');
						$player->setName($this->strFirst($_POST['character_name']));
                		$player->setAccount($account);
						$player->setWorld($_POST['world']);
                		$player->setGroup($sample->getGroup());
                		$player->setSex($_POST['sex']);
                		$player->setVocation($sample->getVocation());
                		$player->setConditions($sample->getConditions());
               		 	$player->setRank($sample->getRank());
               		 	$player->setLookAddons($sample->getLookAddons());
                		$player->setTownId($_POST['city']);
                		$player->setExperience($sample->getExperience());
                		$player->setLevel($sample->getLevel());
                		$player->setMagLevel($sample->getMagLevel());
                		$player->setHealth($sample->getHealth());
                		$player->setHealthMax($sample->getHealthMax());
                		$player->setMana($sample->getMana());
                		$player->setManaMax($sample->getManaMax());
                		$player->setManaSpent($sample->getManaSpent());
                		$player->setSoul($sample->getSoul());
                		$player->setDirection($sample->getDirection());
                		$player->setLookBody($sample->getLookBody());
                		$player->setLookFeet($sample->getLookFeet());
                		$player->setLookHead($sample->getLookHead());
                		$player->setLookLegs($sample->getLookLegs());
                		$player->setLookType($sample->getLookType());
                		$player->setCap($sample->getCap());
						$player->setPosX($startPos['x']);
               			$player->setPosY($startPos['y']);
                		$player->setPosZ($startPos['z']);
                		$player->setLossExperience($sample->getLossExperience());
                		$player->setLossMana($sample->getLossMana());
                		$player->setLossSkills($sample->getLossSkills());
                		$player->setLossItems($sample->getLossItems());
						$player->setLossContainers($sample->getLossContainers());
                		$player->save();
						$_SESSION['characterDelay'] = $_SERVER['REQUEST_TIME'];
						unset($player);
                		$player = $ots->createObject('Player');
                		$player->find($_POST['character_name']);
						if($player->isLoaded())
                		{
                    		$player->setSkill(,$sample->getSkill());
                    		$player->setSkill(1,$sample->getSkill(1));
                    		$player->setSkill(2,$sample->getSkill(2));
                    		$player->setSkill(3,$sample->getSkill(3));
                    		$player->setSkill(4,$sample->getSkill(4));
                    		$player->setSkill(5,$sample->getSkill(5));
                    		$player->setSkill(6,$sample->getSkill(6));
                    		$player->save();
							$SQL = POT::getInstance()->getDBHandle();
                    		$loaded_items_to_copy = $SQL->query("SELECT * FROM player_items WHERE player_id = ".$sample->getId()."");
                    		foreach($loaded_items_to_copy as $save_item)
								$SQL->query("INSERT INTO `player_items` (`player_id` ,`pid` ,`sid` ,`itemtype`, `count`, `attributes`) VALUES ('".$player->getId()."', '".$save_item['pid']."', '".$save_item['sid']."', '".$save_item['itemtype']."', '".$save_item['count']."', '".$save_item['attributes']."');");
						
							if($ajax == )
								$ide->redirect(WEBSITE.'/index.php/account');
							else
								$ide->criticalRedirect(WEBSITE.'/index.php/account');
						}
					}
					catch(Exception $e) {
						error($e->getMessage());
					}
				}
				else {
					if($ajax == ) $cap = create_captcha($vals);
				}
			}
			if($ajax == ) {
				$_SESSION['captcha'] = $cap['word'];
				$data['captcha'] = $cap['image'];
			}
			#Load view of creating account
			if($ajax == 1) {
				echo error(validation_errors());
				$ide->system_stop();
			}
			else {
				$this->load->view('create', $data);
			}
		}
		
		/* Function to check if passed login and password are correct, it uses abstract database model. */
		function _check_login() {
			$this->load->model("Account_model");
			if($this->Account_model->check_login() == false) {
				$this->form_validation->set_message("_check_login", "Account name or password are incorrect.");
				return false;
			}
			else
				return true;
		}
		
		/* Login controller  */
		function login($action = ) {
			if((int) $action == 1) success("You have been logged out.");
			if((int) $action == 2) success("Your account has been recovered. You may login now.");
			$ide = new IDE;
			$this->load->helper("form");
			$this->load->library("form_validation");
			if($_POST) {
				$this->form_validation->set_rules('name', 'Account Name', 'required|callback__check_login');
				$this->form_validation->set_rules('pass', 'Password', 'required');
				if(in_array($_POST['name'], $GLOBALS['config']['restrictedAccounts']))
					error("The account you try to access is restricted!");
				else {
					if($this->form_validation->run() == true) {
						$_SESSION['logged'] = 1;
						$_SESSION['name'] = $_POST['name'];
						if(!empty($_SESSION['forward'])) {
							$forward = $_SESSION['forward'];
							$_SESSION['forward'] = "";
							$ide->redirect($forward);
						}
						else 
							$ide->redirect(WEBSITE.'/index.php/account');
					
					}
				}
			}
			/* Load view of login page. */
			$this->load->view("login");
			
		}
		/* Function to logout from account. */
		function logout() {
			$ide = new IDE;
			$_SESSION['logged'] = '';
			$_SESSION['account_id'] = '';
			$_SESSION['name'] = '';
			$_SESSION['admin'] = ;
			$_SESSION['forward'] = "";
			$ide->redirect('login/1');
		}
		
		/* Controller to generate random recovery key and save it, accessed by user, only once per account. */
		function generate_recovery_key() {
			$this->load->helper("form");
			$ide = new IDE;
			$ide->requireLogin();
			$this->load->model("Account_model");
			if($_POST) {
				$data['info'] = '';
				$key = $this->Account_model->generateKey($_SESSION['name']);
				success("<center><font size='4'>$key</font></center>");
				alert("<b>Save this recovery key, you see this key only once! You will never see it again, don't refresh or move away from this website until you save it!</b>");
			}
			else
			$data['info'] = '<center id=\'info\'><b>Press this button to generate your unique recovery key. <br>Remember! You can do this only once! Your recovery key will be shown only once! Write it down, for security reasons we recommend to not save it on computers hard drive!</b></center><br><center><input type=\'submit\' value=\'Generate\' name=\'submit\'></center>';
			/* Load view of generating new recovery key. */
			$this->load->view('generate_recovery_key', $data);
		
		}
		
		function _checkCurrentPassword($pass) {
			$this->load->model("account_model");
			if($this->account_model->checkPassword($pass)) 
				return true;
			else {
				$this->form_validation->set_message("_checkCurrentPassword", "Current password is incorrect.");
				return false;
			}
		}
		
		function changepassword() {
			$ide = new IDE;
			$ide->requireLogin();
			$this->load->helper("form_helper");
			if($_POST) {
				$this->load->library("form_validation");
				$this->form_validation->set_rules('current', 'Current Password', 'required|callback__checkCurrentPassword');
				$this->form_validation->set_rules('password', 'Password', 'required|matches[repeat]|min_length[4]|max_length[255]');
				if($this->form_validation->run() == true) {
					$this->load->model("account_model");
					$this->account_model->changePassword($_POST['password'], $_SESSION['name']);
					success("Your password has been changed.");
					$ide->redirect(WEBSITE."/index.php/account", 2);
				}
			}
			$this->load->view("changepassword");
		}
		
		function editcomment($id) {
			$ide = new IDE;
			$ide->requireLogin();
			if(empty($id)) $ide->redirect(WEBSITE."/index.php/account");
			$this->load->model("account_model");
			if(!$this->account_model->isUserPlayer($id)) $ide->redirect(WEBSITE."/index.php/account");
			$data['id'] = $id;
				if($_POST) {
					$this->load->library("form_validation");
						$this->form_validation->set_rules('comment', 'Comment', 'max_length[255]|alpha_ide');
					if($this->form_validation->run() == true) {
						if(@$_POST['hide'] == 1)
							$this->account_model->changeComment($id, $_POST['comment'], true);
						else
							$this->account_model->changeComment($id, $_POST['comment'], false);
						success("Your comment has been changed.");
						$ide->redirect(WEBSITE."/index.php/account", 2);
					}
				}
			$data['comment'] = $this->account_model->getPlayerComment($id);
			$this->load->helper("form_helper");
			$this->load->view("edit_comment", $data);
		}
		
		function deletePlayer($id) {
			$ide = new IDE;
			$ide->requireLogin();
			$id = (int)$id;
			if(empty($id)) $ide->redirect(WEBSITE."/index.php/account");
			$this->load->model("account_model");
			if(!$this->account_model->isUserPlayer($id)) $ide->redirect(WEBSITE."/index.php/account");
			$this->account_model->deletePlayer($id);
			$ide->redirect(WEBSITE."/index.php/account");
		}
		
		public function setNickname() {
			$ide = new IDE;
			$ide->requireLogin();
			if(!empty($_SESSION['nickname'])) $ide->goPrevious();
			$this->load->helper("form_helper");
				if($_POST) {
					$_POST['nickname'] = ucfirst(strtolower($_POST['nickname']));
					$this->load->library("form_validation");
					$this->form_validation->set_rules('nickname', 'Nickname', 'required|min_length[4]|max_length[32]|nickname|callback__nicknameExists');
					$this->form_validation->set_rules('rules', 'Rules', 'required');
					if($this->form_validation->run()) {
						$this->load->model("account_model");
						$this->account_model->setNickname($ide->loggedAccountId(), $_POST['nickname']);
						$_SESSION['nickname'] = $_POST['nickname'];
						$ide->redirect(WEBSITE."/index.php/account/index/2");
					}
				}
			$this->load->view("setNickname");
			
		}
		
		function _validKey($key) {
			$this->load->model("account_model");
			$_POST['key'] = str_replace("-", "", $_POST['key']);
			if($this->account_model->checkKey($_POST['key'], $_POST['email'])) {
				return true;
			}
			else {
				$this->form_validation->set_message("_validKey", "Could not change password. Make sure email and recovery key are valid.");
				return false;
			}
		}
		
		public function lost() {
			$ide = new IDE;
			$this->load->helper("form_helper");
				if($_POST) {
					$_POST['key'] = str_replace("-", "", $_POST['key']);
				
					$this->load->library("form_validation");
					$this->form_validation->set_rules('password', 'Password', 'required|matches[repeat]|min_length[4]|max_length[255]');
					$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
					$this->form_validation->set_rules('key', 'Recovery Key', 'required|callback__validKey');
					
					if($this->form_validation->run()) {
						$this->load->model("account_model");
						$this->account_model->recoveryAccount($_POST['key'], $_POST['email'], $_POST['password']);
						$ide->redirect(WEBSITE."/index.php/account/login/2");
					}
				}
			$this->load->view("account_lost");
		}
		
	}

?>

 

 

Toda vez que confirmo o registro da criação de conta, aparece esse aviso.

E quando teclo "F5" e Tento criar a account de novo... Ele vai.

Como eu retiro esse aviso para criar account com só um click?

Desde Já! agradeço...

REP+

 

Editado por Storm Night (veja o histórico de edições)
"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites

Tenta agora e me diz se deu certo. 

Spoiler

<?php
/* 
+I.D.E ENGINE+
Controller of Account for Modern AAC - Powered by IDE Engine.
A lot of new functionality and variables can be hard-coded here.
If you do NOT understand the code, do NOT change anything in here.
*/
	
	class Account extends Controller {
	
		/* Main index of Account controllers, also work as a __construct(); It is called by engine as a default. */
		function index($action = ) {
			if($action == 1) success("Your new character has been created!");
			if($action == 2) success("Your nickname has been set! Thank you!");
			if($action == 3) success("You have exceded the maximum amount of characters per account.");
			if($action == 4) success("Your profile has been updated.");
			if($action == 5) success("Your avatar has been updated!");
			$this->load->model("Account_model");
			if(empty($_SESSION['account_id'])) $_SESSION['account_id'] = $this->Account_model->getAccountID();
			$ide = new IDE;
			$ide->requireLogin();
			if(empty($_SESSION['nickname'])) $ide->redirect(WEBSITE."/index.php/account/setNickname");
			$data = array();
			$data['loggedUser'] = $_SESSION['name'];
			$data['characters'] = $this->Account_model->getCharacters();
			$data['messages'] = $this->Account_model->checkMessages();
			$ots = POT::getInstance();
			$ots->connect(POT::DB_MYSQL, connection());
			$account = $ots->createObject('Account');
			try { $account->find($_SESSION['name']); } catch(Exception $e) {show_error('There was a problem during loading account. Err code: 220212072010 Futher details: '.$e->getMessage());}
			$data['account'] = $account;
			$data['acc'] = $this->Account_model->load($_SESSION['account_id']);
			$recovery_key = $this->Account_model->getRecoveryKey($_SESSION['name']);
			if($recovery_key === "") alert("You don't have recovery key set up. Click <a href='".WEBSITE."/index.php/account/generate_recovery_key'><b>here</b></a> to create one. We strongly recommend to create one now for security reasons.");
			/* Load view of account page and send data to it. */
			$this->load->view('account', $data);
		}
		
		/*
		Function to check if account with this name already exists, it is used by create controller as a callaback in form validation. 
		It should be made as an abstract class of database in Model, but I don't think there is point of it.
		*/
		function _account_exists($name) {
			$ots = POT::getInstance();
			$ots->connect(POT::DB_MYSQL, connection());
			$account = new OTS_Account();
			try { $account->find($name); } catch(Exception $e) {show_error('There was a problem during loading account. Err code: 220512072010 Futher details: '.$e->getMessage());}
			if($account->isLoaded()) { $this->form_validation->set_message('_account_exists', 'Account with this name already exists.');return false;} else return true;
		}
		
		function _checkCaptcha($word) {
			if(strtolower($word) == strtolower($_SESSION['captcha']) && !empty($_SESSION['captcha'])) {
				return true;
			}
			else {
				$this->form_validation->set_message('_checkCaptcha', 'Captcha word is incorrect.');
				return false;
			}
		}
		
		function _nicknameExists($name) {
			$this->load->model("account_model");
			if($this->account_model->nicknameExists($name)) {
				$this->form_validation->set_message('_nicknameExists', 'This nickname already exists!.');
				return false;
			}
			else
				return true;
		}
		function _emailExists($email) {
			$this->load->model("account_model");
			if($this->account_model->emailExists($email)) {
				$this->form_validation->set_message('_emailExists', 'This email is already used by another account already exists!');
				return false;
			}
			else
				return true;
		}
		
		function _characterExists($name) {
			$this->load->model("character_model");
			if($this->character_model->characterExists($name)) {
				$this->form_validation->set_message('_characterExists', 'This character name already exists, please choose another one!');
				return false;
			}
			else
				return true;
		}
		
		function _checkDelay() {
			global $config;
			if(!isset($_SESSION['accountDelay'])) $_SESSION['accountDelay'] = ;
			if($config['accountDelay']) {
				if(@(time()-$_SESSION['accountDelay']) > 240) {
					return true;
				}
				else {
					$this->form_validation->set_message('_checkDelay', 'You cannot create another account just after another. Please wait few minutes.');
					return false;
				}
			}
			else
				return true;
		}
		
	function _checkCity($id) {
		$this->config->load('create_character.php');
		if(!array_key_exists($id, $this->config->item('cities'))) {
			$this->form_validation->set_message('_checkCity', 'Unknown City');
			return false;
		}
		else
			return true;
	}
	
	function _checkWorld($id) {
		$this->config->load('create_character.php');
		if(!array_key_exists($id, $this->config->item('worlds'))) {
			$this->form_validation->set_message('_checkWorld', 'Unknown World');
			return false;
		}
		else
			return true;
	}
	
	function _checkVocation($id) {
		$this->config->load('create_character.php');
		if(!array_key_exists($id, $this->config->item('vocations'))) {
			$this->form_validation->set_message('_checkVocation', 'Unknown Vocation');
			return false;
		}
		else
			return true;
	}
	
	function _checkSex($id) {
		if($id !=  and $id != 1) {
			$this->form_validation->set_message('_checkSex', 'Unknown Sex');
			return false;
		}
		else
			return true;
	}
	
	function _validName($name) {
		require("config.php");
		$name = explode(" ", $name);
			foreach($name as $unit) {
				if(in_array(strtolower($unit), $config['invalidNameTags'])) {
					$this->form_validation->set_message('_validName', 'Invalid Name');
					return false;
				}
				else if(strlen($unit) == 1) {
					$this->form_validation->set_message('_validName', 'Invalid Name');
					return false;
				}
				else
					continue;
			}
	}
	
	// Function which make the player more real by tatu hunter
	// Eg: elder'Druid = Elder'Druid
	//	   elder'druid = Elder'druid
	//     druid theMaster = Druid themaster
	function strFirst($name) {
		$name = explode(' ', trim($name));
		for($i=, $t = sizeof($name); $i<$t; ++$i)
			for($j=, $l=strlen($name[$i]); $j<$l; ++$j)
				!$j ? 
				($name[$i][$j] = !$i ? ($name[$i][$j] == strtoupper($name[$i][$j]) ? $name[$i][$j] : strtoupper($name[$i][$j])): $name[$i][$j])  : 
				($name[$i][$j] = ($name[$i][$j-1] == '\'' ? $name[$i][$j] : 
				strtolower($name[$i][$j])));
	
		$ret = '';
		foreach($name as $k)
			$ret .= $k . ' ';
	
		return trim($ret);
	}

		/* Controller of creating new account. New values can be hard-coded here. (only experienced users) */
		function create($ajax = ) {
			require_once("system/application/config/create_character.php");
			$ide = new IDE;
			global $config;
			if($ajax == 1 && $ide->isLogged()) exit;
			if($ide->isLogged()) $ide->redirect(WEBSITE.'/index.php/account');
			$this->load->plugin('captcha');
			$this->load->helper('form');
			
			$vals = array(
					'word'		 => '',
					'img_path'	 => 'system/captcha/',
					'img_url'	 => WEBSITE.'/system/captcha/',
					'font_path'	 => WEBSITE.'/system/fonts/texb.ttf',
					'img_width'	 => '156',
					'img_height' => 30,
					'expiration' => 120
				);
			if(!$_POST && $ajax == ) {
				$cap = create_captcha($vals);	
			}
			if($_POST) {
				$this->load->library('form_validation');
				$_POST['nickname'] = ucfirst(strtolower($_POST['nickname']));
				$this->form_validation->set_rules('name', 'Account Name', 'required|min_length[4]|max_length[32]|callback__account_exists|alpha_numeric|callback__checkDelay');
				$this->form_validation->set_rules('nickname', 'Nickname', 'required|min_length[4]|max_length[32]|callback__nicknameExists');
				$this->form_validation->set_rules('password', 'Password', 'required|matches[repeat]|min_length[4]|max_length[255]');
				$this->form_validation->set_rules('email', 'Email', 'required|valid_email|callback__emailExists');
				$this->form_validation->set_rules('character_name', 'Character Name', 'required|min_length[4]|max_length[32]|nickname|callback__characterExists|callback__validName');
				$this->form_validation->set_rules('city', 'City', 'required|integer|callback__checkCity');
				$this->form_validation->set_rules('world', 'World', 'required|integer|callback__checkWorld');
				$this->form_validation->set_rules('vocation', 'Vocation', 'required|integer|callback__checkVocation');
				$this->form_validation->set_rules('sex', 'Sex', 'required|integer|callback__checkSex');
				$this->form_validation->set_rules('captcha', 'Captcha', 'required|callback__checkCaptcha');
				if($this->form_validation->run() == TRUE) {
					require(APPPATH.'config/ide_default.php');
					$ots = POT::getInstance();
					$ots->connect(POT::DB_MYSQL, connection());
					$account = new OTS_Account();
					$name = $account->createNamed($_POST['name']);
					$account->setPassword(sha1($_POST['password']));
					$account->setEmail($_POST['email']);
					$account->setCustomField('nickname', $_POST['nickname']);
					$account->setCustomField('premdays', PREMDAYS);
					$account->setCustomField('lastday', $_SERVER['REQUEST_TIME']);
					try {
						$account->save();
						unset($account);
						$_SESSION['logged'] = 1;
						$_SESSION['name'] = $_POST['name'];
						$_SESSION['nickname'] = $_POST['nickname'];
						$_SESSION['accountDelay'] = time();
						
						$account = $ots->createObject('Account');
						$account->find($_POST['name']);
						
						$sample = new OTS_Player();
						$sample->find($config['newchar_vocations'][$_POST['world']][$_POST['vocation']]);
						if(!$sample->isLoaded()) {	show_error('Sample character could not be found!'); }
						
						// Create new character
						$player = $ots->createObject('Player');
						$player->setName($this->strFirst($_POST['character_name']));
                		$player->setAccount($account);
						$player->setWorld($_POST['world']);
                		$player->setGroup($sample->getGroup());
                		$player->setSex($_POST['sex']);
                		$player->setVocation($sample->getVocation());
                		$player->setConditions($sample->getConditions());
               		 	$player->setRank($sample->getRank());
               		 	$player->setLookAddons($sample->getLookAddons());
                		$player->setTownId($_POST['city']);
                		$player->setExperience($sample->getExperience());
                		$player->setLevel($sample->getLevel());
                		$player->setMagLevel($sample->getMagLevel());
                		$player->setHealth($sample->getHealth());
                		$player->setHealthMax($sample->getHealthMax());
                		$player->setMana($sample->getMana());
                		$player->setManaMax($sample->getManaMax());
                		$player->setManaSpent($sample->getManaSpent());
                		$player->setSoul($sample->getSoul());
                		$player->setDirection($sample->getDirection());
                		$player->setLookBody($sample->getLookBody());
                		$player->setLookFeet($sample->getLookFeet());
                		$player->setLookHead($sample->getLookHead());
                		$player->setLookLegs($sample->getLookLegs());
                		$player->setLookType($sample->getLookType());
                		$player->setCap($sample->getCap());
						$player->setPosX($startPos['x']);
               			$player->setPosY($startPos['y']);
                		$player->setPosZ($startPos['z']);
                		$player->setLossExperience($sample->getLossExperience());
                		$player->setLossMana($sample->getLossMana());
                		$player->setLossSkills($sample->getLossSkills());
                		$player->setLossItems($sample->getLossItems());
						$player->setLossContainers($sample->getLossContainers());
                		$player->save();
						$_SESSION['characterDelay'] = $_SERVER['REQUEST_TIME'];
						unset($player);
                		$player = $ots->createObject('Player');
                		$player->find($_POST['character_name']);
						if($player->isLoaded())
                		{
                    		$player->setSkill(,$sample->getSkill());
                    		$player->setSkill(1,$sample->getSkill(1));
                    		$player->setSkill(2,$sample->getSkill(2));
                    		$player->setSkill(3,$sample->getSkill(3));
                    		$player->setSkill(4,$sample->getSkill(4));
                    		$player->setSkill(5,$sample->getSkill(5));
                    		$player->setSkill(6,$sample->getSkill(6));
                    		$player->save();
							$SQL = POT::getInstance()->getDBHandle();
                    		$loaded_items_to_copy = $SQL->query("SELECT * FROM player_items WHERE player_id = ".$sample->getId()."");
                    		foreach($loaded_items_to_copy as $save_item)
								$SQL->query("INSERT INTO `player_items` (`player_id` ,`pid` ,`sid` ,`itemtype`, `count`, `attributes`) VALUES ('".$player->getId()."', '".$save_item['pid']."', '".$save_item['sid']."', '".$save_item['itemtype']."', '".$save_item['count']."', '".$save_item['attributes']."');");
						
							if($ajax == )
								$ide->redirect(WEBSITE.'/index.php/account');
							else
								$ide->criticalRedirect(WEBSITE.'/index.php/account');
						}
					}
					catch(Exception $e) {
						error($e->getMessage());
					}
				}
				else {
					if($ajax == ) $cap = create_captcha($vals);
				}
			}
			if($ajax == ) {
				$_SESSION['captcha'] = $cap['word'];
				$data['captcha'] = $cap['image'];
			}
			#Load view of creating account
			if($ajax == 1) {
				echo error(validation_errors());
				$ide->system_stop();
			}
			else {
				$this->load->view('create', $data);
			}
		}
		
		/* Function to check if passed login and password are correct, it uses abstract database model. */
		function _check_login() {
			$this->load->model("Account_model");
			if($this->Account_model->check_login() == false) {
				$this->form_validation->set_message("_check_login", "Account name or password are incorrect.");
				return false;
			}
			else
				return true;
		}
		
		/* Login controller  */
		function login($action = ) {
			if((int) $action == 1) success("You have been logged out.");
			if((int) $action == 2) success("Your account has been recovered. You may login now.");
			$ide = new IDE;
			$this->load->helper("form");
			$this->load->library("form_validation");
			if($_POST) {
				$this->form_validation->set_rules('name', 'Account Name', 'required|callback__check_login');
				$this->form_validation->set_rules('pass', 'Password', 'required');
				if(in_array($_POST['name'], $GLOBALS['config']['restrictedAccounts']))
					error("The account you try to access is restricted!");
				else {
					if($this->form_validation->run() == true) {
						$_SESSION['logged'] = 1;
						$_SESSION['name'] = $_POST['name'];
						if(!empty($_SESSION['forward'])) {
							$forward = $_SESSION['forward'];
							$_SESSION['forward'] = "";
							$ide->redirect($forward);
						}
						else 
							$ide->redirect(WEBSITE.'/index.php/account');
					
					}
				}
			}
			/* Load view of login page. */
			$this->load->view("login");
			
		}
		/* Function to logout from account. */
		function logout() {
			$ide = new IDE;
			$_SESSION['logged'] = '';
			$_SESSION['account_id'] = '';
			$_SESSION['name'] = '';
			$_SESSION['admin'] = ;
			$_SESSION['forward'] = "";
			$ide->redirect('login/1');
		}
		
		/* Controller to generate random recovery key and save it, accessed by user, only once per account. */
		function generate_recovery_key() {
			$this->load->helper("form");
			$ide = new IDE;
			$ide->requireLogin();
			$this->load->model("Account_model");
			if($_POST) {
				$data['info'] = '';
				$key = $this->Account_model->generateKey($_SESSION['name']);
				success("<center><font size='4'>$key</font></center>");
				alert("<b>Save this recovery key, you see this key only once! You will never see it again, don't refresh or move away from this website until you save it!</b>");
			}
			else
			$data['info'] = '<center id=\'info\'><b>Press this button to generate your unique recovery key. <br>Remember! You can do this only once! Your recovery key will be shown only once! Write it down, for security reasons we recommend to not save it on computers hard drive!</b></center><br><center><input type=\'submit\' value=\'Generate\' name=\'submit\'></center>';
			/* Load view of generating new recovery key. */
			$this->load->view('generate_recovery_key', $data);
		
		}
		
		function _checkCurrentPassword($pass) {
			$this->load->model("account_model");
			if($this->account_model->checkPassword($pass)) 
				return true;
			else {
				$this->form_validation->set_message("_checkCurrentPassword", "Current password is incorrect.");
				return false;
			}
		}
		
		function changepassword() {
			$ide = new IDE;
			$ide->requireLogin();
			$this->load->helper("form_helper");
			if($_POST) {
				$this->load->library("form_validation");
				$this->form_validation->set_rules('current', 'Current Password', 'required|callback__checkCurrentPassword');
				$this->form_validation->set_rules('password', 'Password', 'required|matches[repeat]|min_length[4]|max_length[255]');
				if($this->form_validation->run() == true) {
					$this->load->model("account_model");
					$this->account_model->changePassword($_POST['password'], $_SESSION['name']);
					success("Your password has been changed.");
					$ide->redirect(WEBSITE."/index.php/account", 2);
				}
			}
			$this->load->view("changepassword");
		}
		
		function editcomment($id) {
			$ide = new IDE;
			$ide->requireLogin();
			if(empty($id)) $ide->redirect(WEBSITE."/index.php/account");
			$this->load->model("account_model");
			if(!$this->account_model->isUserPlayer($id)) $ide->redirect(WEBSITE."/index.php/account");
			$data['id'] = $id;
				if($_POST) {
					$this->load->library("form_validation");
						$this->form_validation->set_rules('comment', 'Comment', 'max_length[255]|alpha_ide');
					if($this->form_validation->run() == true) {
						if(@$_POST['hide'] == 1)
							$this->account_model->changeComment($id, $_POST['comment'], true);
						else
							$this->account_model->changeComment($id, $_POST['comment'], false);
						success("Your comment has been changed.");
						$ide->redirect(WEBSITE."/index.php/account", 2);
					}
				}
			$data['comment'] = $this->account_model->getPlayerComment($id);
			$this->load->helper("form_helper");
			$this->load->view("edit_comment", $data);
		}
		
		function deletePlayer($id) {
			$ide = new IDE;
			$ide->requireLogin();
			$id = (int)$id;
			if(empty($id)) $ide->redirect(WEBSITE."/index.php/account");
			$this->load->model("account_model");
			if(!$this->account_model->isUserPlayer($id)) $ide->redirect(WEBSITE."/index.php/account");
			$this->account_model->deletePlayer($id);
			$ide->redirect(WEBSITE."/index.php/account");
		}
		
		public function setNickname() {
			$ide = new IDE;
			$ide->requireLogin();
			if(!empty($_SESSION['nickname'])) $ide->goPrevious();
			$this->load->helper("form_helper");
				if($_POST) {
					$_POST['nickname'] = ucfirst(strtolower($_POST['nickname']));
					$this->load->library("form_validation");
					$this->form_validation->set_rules('nickname', 'Nickname', 'required|min_length[4]|max_length[32]|nickname|callback__nicknameExists');
					$this->form_validation->set_rules('rules', 'Rules', 'required');
					if($this->form_validation->run()) {
						$this->load->model("account_model");
						$this->account_model->setNickname($ide->loggedAccountId(), $_POST['nickname']);
						$_SESSION['nickname'] = $_POST['nickname'];
						$ide->redirect(WEBSITE."/index.php/account/index/2");
					}
				}
			$this->load->view("setNickname");
			
		}
		
		function _validKey($key) {
			$this->load->model("account_model");
			$_POST['key'] = str_replace("-", "", $_POST['key']);
			if($this->account_model->checkKey($_POST['key'], $_POST['email'])) {
				return true;
			}
			else {
				$this->form_validation->set_message("_validKey", "Could not change password. Make sure email and recovery key are valid.");
				return false;
			}
		}
		
		public function lost() {
			$ide = new IDE;
			$this->load->helper("form_helper");
				if($_POST) {
					$_POST['key'] = str_replace("-", "", $_POST['key']);
				
					$this->load->library("form_validation");
					$this->form_validation->set_rules('password', 'Password', 'required|matches[repeat]|min_length[4]|max_length[255]');
					$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
					$this->form_validation->set_rules('key', 'Recovery Key', 'required|callback__validKey');
					
					if($this->form_validation->run()) {
						$this->load->model("account_model");
						$this->account_model->recoveryAccount($_POST['key'], $_POST['email'], $_POST['password']);
						$ide->redirect(WEBSITE."/index.php/account/login/2");
					}
				}
			$this->load->view("account_lost");
		}
		
	}

?>

 

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

Agora a pagina não abre.

Screenshot_18.png

"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites
31 minutos atrás, Storm Night disse:

Agora a pagina não abre.

Screenshot_18.png

Tenta agora: 

Spoiler

<?php
/* 
+I.D.E ENGINE+
Controller of Account for Modern AAC - Powered by IDE Engine.
A lot of new functionality and variables can be hard-coded here.
If you do NOT understand the code, do NOT change anything in here.
*/
	
	class Account extends Controller {
	
		/* Main index of Account controllers, also work as a __construct(); It is called by engine as a default. */
		function index($action = ) {
			if($action == 1) success("Your new character has been created!");
			if($action == 2) success("Your nickname has been set! Thank you!");
			if($action == 3) success("You have exceded the maximum amount of characters per account.");
			if($action == 4) success("Your profile has been updated.");
			if($action == 5) success("Your avatar has been updated!");
			$this->load->model("Account_model");
			if(empty($_SESSION['account_id'])) $_SESSION['account_id'] = $this->Account_model->getAccountID();
			$ide = new IDE;
			$ide->requireLogin();
			if(empty($_SESSION['nickname'])) $ide->redirect(WEBSITE."/index.php/account/setNickname");
			$data = array();
			$data['loggedUser'] = $_SESSION['name'];
			$data['characters'] = $this->Account_model->getCharacters();
			$data['messages'] = $this->Account_model->checkMessages();
			$ots = POT::getInstance();
			$ots->connect(POT::DB_MYSQL, connection());
			$account = $ots->createObject('Account');
			try { $account->find($_SESSION['name']); } catch(Exception $e) {show_error('There was a problem during loading account. Err code: 220212072010 Futher details: '.$e->getMessage());}
			$data['account'] = $account;
			$data['acc'] = $this->Account_model->load($_SESSION['account_id']);
			$recovery_key = $this->Account_model->getRecoveryKey($_SESSION['name']);
			if($recovery_key === "") alert("You don't have recovery key set up. Click <a href='".WEBSITE."/index.php/account/generate_recovery_key'><b>here</b></a> to create one. We strongly recommend to create one now for security reasons.");
			/* Load view of account page and send data to it. */
			$this->load->view('account', $data);
		}
		
		/*
		Function to check if account with this name already exists, it is used by create controller as a callaback in form validation. 
		It should be made as an abstract class of database in Model, but I don't think there is point of it.
		*/
		function _account_exists($name) {
			$ots = POT::getInstance();
			$ots->connect(POT::DB_MYSQL, connection());
			$account = new OTS_Account();
			try { $account->find($name); } catch(Exception $e) {show_error('There was a problem during loading account. Err code: 220512072010 Futher details: '.$e->getMessage());}
			if($account->isLoaded()) { $this->form_validation->set_message('_account_exists', 'Account with this name already exists.');return false;} else return true;
		}
		
		function _checkCaptcha($word) {
			if(strtolower($word) == strtolower($_SESSION['captcha']) && !empty($_SESSION['captcha'])) {
				return true;
			}
			else {
				$this->form_validation->set_message('_checkCaptcha', 'Captcha word is incorrect.');
				return false;
			}
		}
		
		function _nicknameExists($name) {
			$this->load->model("account_model");
			if($this->account_model->nicknameExists($name)) {
				$this->form_validation->set_message('_nicknameExists', 'This nickname already exists!.');
				return false;
			}
			else
				return true;
		}
		function _emailExists($email) {
			$this->load->model("account_model");
			if($this->account_model->emailExists($email)) {
				$this->form_validation->set_message('_emailExists', 'This email is already used by another account already exists!');
				return false;
			}
			else
				return true;
		}
		
		function _characterExists($name) {
			$this->load->model("character_model");
			if($this->character_model->characterExists($name)) {
				$this->form_validation->set_message('_characterExists', 'This character name already exists, please choose another one!');
				return false;
			}
			else
				return true;
		}
		
		function _checkDelay() {
			global $config;
			if(!isset($_SESSION['accountDelay'])) $_SESSION['accountDelay'] = ;
			if($config['accountDelay']) {
				if(@(time()-$_SESSION['accountDelay']) > 240) {
					return true;
				}
				else {
					$this->form_validation->set_message('_checkDelay', 'You cannot create another account just after another. Please wait few minutes.');
					return false;
				}
			}
			else
				return true;
		}
		
	function _checkCity($id) {
		$this->config->load('create_character.php');
		if(!array_key_exists($id, $this->config->item('cities'))) {
			$this->form_validation->set_message('_checkCity', 'Unknown City');
			return false;
		}
		else
			return true;
	}
	
	function _checkWorld($id) {
		$this->config->load('create_character.php');
		if(!array_key_exists($id, $this->config->item('worlds'))) {
			$this->form_validation->set_message('_checkWorld', 'Unknown World');
			return false;
		}
		else
			return true;
	}
	
	function _checkVocation($id) {
		$this->config->load('create_character.php');
		if(!array_key_exists($id, $this->config->item('vocations'))) {
			$this->form_validation->set_message('_checkVocation', 'Unknown Vocation');
			return false;
		}
		else
			return true;
	}
	
	function _checkSex($id) {
		if($id !=  and $id != 1) {
			$this->form_validation->set_message('_checkSex', 'Unknown Sex');
			return false;
		}
		else
			return true;
	}
	
	function _validName($name) {
		require("config.php");
		$name = explode(" ", $name);
			foreach($name as $unit) {
				if(in_array(strtolower($unit), $config['invalidNameTags'])) {
					$this->form_validation->set_message('_validName', 'Invalid Name');
					return false;
				}
				else if(strlen($unit) == 1) {
					$this->form_validation->set_message('_validName', 'Invalid Name');
					return false;
				}
				else
					continue;
			}
	}
	
	// Function which make the player more real by tatu hunter
	// Eg: elder'Druid = Elder'Druid
	//	   elder'druid = Elder'druid
	//     druid theMaster = Druid themaster
	function strFirst($name) {
		$name = explode(' ', trim($name));
		for($i=, $t = sizeof($name); $i<$t; ++$i)
			for($j=, $l=strlen($name[$i]); $j<$l; ++$j)
				!$j ? 
				($name[$i][$j] = !$i ? ($name[$i][$j] == strtoupper($name[$i][$j]) ? $name[$i][$j] : strtoupper($name[$i][$j])): $name[$i][$j])  : 
				($name[$i][$j] = ($name[$i][$j-1] == '\'' ? $name[$i][$j] : 
				strtolower($name[$i][$j])));
	
		$ret = '';
		foreach($name as $k)
			$ret .= $k . ' ';
	
		return trim($ret);
	}

		/* Controller of creating new account. New values can be hard-coded here. (only experienced users) */
		function create($ajax = ) {
			require_once("system/application/config/create_character.php");
			$ide = new IDE;
			global $config;
			if($ajax == 1 && $ide->isLogged()) exit;
			if($ide->isLogged()) $ide->redirect(WEBSITE.'/index.php/account');
			$this->load->plugin('captcha');
			$this->load->helper('form');
			
			$vals = array(
					'word'		 => '',
					'img_path'	 => 'system/captcha/',
					'img_url'	 => WEBSITE.'/system/captcha/',
					'font_path'	 => WEBSITE.'/system/fonts/texb.ttf',
					'img_width'	 => '156',
					'img_height' => 30,
					'expiration' => 120
				);
			if(!$_POST && $ajax == ) {
				$cap = create_captcha($vals);	
			}
			if($_POST) {
				$this->load->library('form_validation');
				$_POST['nickname'] = ucfirst(strtolower($_POST['nickname']));
				$this->form_validation->set_rules('name', 'Account Name', 'required|min_length[4]|max_length[32]|callback__account_exists|alpha_numeric|callback__checkDelay');
				$this->form_validation->set_rules('nickname', 'Nickname', 'required|min_length[4]|max_length[32]|callback__nicknameExists');
				$this->form_validation->set_rules('password', 'Password', 'required|matches[repeat]|min_length[4]|max_length[255]');
				$this->form_validation->set_rules('email', 'Email', 'required|valid_email|callback__emailExists');
				$this->form_validation->set_rules('character_name', 'Character Name', 'required|min_length[4]|max_length[32]|nickname|callback__characterExists|callback__validName');
				$this->form_validation->set_rules('city', 'City', 'required|integer|callback__checkCity');
				$this->form_validation->set_rules('world', 'World', 'required|integer|callback__checkWorld');
				$this->form_validation->set_rules('vocation', 'Vocation', 'required|integer|callback__checkVocation');
				$this->form_validation->set_rules('sex', 'Sex', 'required|integer|callback__checkSex');
				$this->form_validation->set_rules('captcha', 'Captcha', 'required|callback__checkCaptcha');
				if($this->form_validation->run() == TRUE) {
					require(APPPATH.'config/ide_default.php');
					$ots = POT::getInstance();
					$ots->connect(POT::DB_MYSQL, connection());
					$account = new OTS_Account();
					$name = $account->createNamed($_POST['name']);
					$account->setPassword(sha1($_POST['password']));
					$account->setEmail($_POST['email']);
					$account->setCustomField('nickname', $_POST['nickname']);
					$account->setCustomField('premdays', PREMDAYS);
					$account->setCustomField('lastday', $_SERVER['REQUEST_TIME']);
					try {
						$account->save();
						unset($account);
						$_SESSION['logged'] = 1;
						$_SESSION['name'] = $_POST['name'];
						$_SESSION['nickname'] = $_POST['nickname'];
						$_SESSION['accountDelay'] = time();
						
						$account = $ots->createObject('Account');
						$account->find($_POST['name']);
						
						$sample = new OTS_Player();
						$sample->find($config['newchar_vocations'][$_POST['world']][$_POST['vocation']]);
						if(!$sample->isLoaded()) {	show_error('Sample character could not be found!'); }
						
						// Create new character
						$player = $ots->createObject('Player');
						$player->setName($this->strFirst($_POST['character_name']));
                		$player->setAccount($account);
						$player->setWorld($_POST['world']);
                		$player->setGroup($sample->getGroup());
                		$player->setSex($_POST['sex']);
                		$player->setVocation($sample->getVocation());
                		$player->setConditions($sample->getConditions());
               		 	$player->setRank($sample->getRank());
               		 	$player->setLookAddons($sample->getLookAddons());
                		$player->setTownId($_POST['city']);
                		$player->setExperience($sample->getExperience());
                		$player->setLevel($sample->getLevel());
                		$player->setMagLevel($sample->getMagLevel());
                		$player->setHealth($sample->getHealth());
                		$player->setHealthMax($sample->getHealthMax());
                		$player->setMana($sample->getMana());
                		$player->setManaMax($sample->getManaMax());
                		$player->setManaSpent($sample->getManaSpent());
                		$player->setSoul($sample->getSoul());
                		$player->setDirection($sample->getDirection());
                		$player->setLookBody($sample->getLookBody());
                		$player->setLookFeet($sample->getLookFeet());
                		$player->setLookHead($sample->getLookHead());
                		$player->setLookLegs($sample->getLookLegs());
                		$player->setLookType($sample->getLookType());
                		$player->setCap($sample->getCap());
						$player->setPosX($startPos['x']);
               			$player->setPosY($startPos['y']);
                		$player->setPosZ($startPos['z']);
                		$player->setLossExperience($sample->getLossExperience());
                		$player->setLossMana($sample->getLossMana());
                		$player->setLossSkills($sample->getLossSkills());
                		$player->setLossItems($sample->getLossItems());
						$player->setLossContainers($sample->getLossContainers());
                		$player->save();
						$_SESSION['characterDelay'] = $_SERVER['REQUEST_TIME'];
						unset($player);
                		$player = $ots->createObject('Player');
                		$player->find($_POST['character_name']);
						if($player->isLoaded())
                		{
                    		$player->setSkill(,$sample->getSkill());
                    		$player->setSkill(1,$sample->getSkill(1));
                    		$player->setSkill(2,$sample->getSkill(2));
                    		$player->setSkill(3,$sample->getSkill(3));
                    		$player->setSkill(4,$sample->getSkill(4));
                    		$player->setSkill(5,$sample->getSkill(5));
                    		$player->setSkill(6,$sample->getSkill(6));
                    		$player->save();
							$SQL = POT::getInstance()->getDBHandle();
                    		$loaded_items_to_copy = $SQL->query("SELECT * FROM player_items WHERE player_id = ".$sample->getId()."");
                    		foreach($loaded_items_to_copy as $save_item)
								$SQL->query("INSERT INTO `player_items` (`player_id` ,`pid` ,`sid` ,`itemtype`, `count`, `attributes`) VALUES ('".$player->getId()."', '".$save_item['pid']."', '".$save_item['sid']."', '".$save_item['itemtype']."', '".$save_item['count']."', '".$save_item['attributes']."');");
						
							if($ajax == )
								$ide->redirect(WEBSITE.'/index.php/account');
							else
								$ide->criticalRedirect(WEBSITE.'/index.php/account');
						}
					}
					catch(Exception $e) {
						error($e->getMessage());
					}
				}
				else {
					if($ajax == ) $cap = create_captcha($vals);
				}
			}
			if($ajax == ) {
				$_SESSION['captcha'] = $cap['word'];
				$data['captcha'] = $cap['image'];
			}
			#Load view of creating account
			if($ajax == 1) {
				echo error(validation_errors());
				$ide->system_stop();
			}
			else {
				$this->load->view('create', $data);
			}
		}
		
		/* Function to check if passed login and password are correct, it uses abstract database model. */
		function _check_login() {
			$this->load->model("Account_model");
			if($this->Account_model->check_login() == false) {
				$this->form_validation->set_message("_check_login", "Account name or password are incorrect.");
				return false;
			}
			else
				return true;
		}
		
		/* Login controller  */
		function login($action = ) {
			if((int) $action == 1) success("You have been logged out.");
			if((int) $action == 2) success("Your account has been recovered. You may login now.");
			$ide = new IDE;
			$this->load->helper("form");
			$this->load->library("form_validation");
			if($_POST) {
				$this->form_validation->set_rules('name', 'Account Name', 'required|callback__check_login');
				$this->form_validation->set_rules('pass', 'Password', 'required');
				if(in_array($_POST['name'], $GLOBALS['config']['restrictedAccounts']))
					error("The account you try to access is restricted!");
				else {
					if($this->form_validation->run() == true) {
						$_SESSION['logged'] = 1;
						$_SESSION['name'] = $_POST['name'];
						if(!empty($_SESSION['forward'])) {
							$forward = $_SESSION['forward'];
							$_SESSION['forward'] = "";
							$ide->redirect($forward);
						}
						else 
							$ide->redirect(WEBSITE.'/index.php/account');
					
					}
				}
			}
			/* Load view of login page. */
			$this->load->view("login");
			
		}
		/* Function to logout from account. */
		function logout() {
			$ide = new IDE;
			$_SESSION['logged'] = '';
			$_SESSION['account_id'] = '';
			$_SESSION['name'] = '';
			$_SESSION['admin'] = ;
			$_SESSION['forward'] = "";
			$ide->redirect('login/1');
		}
		
		/* Controller to generate random recovery key and save it, accessed by user, only once per account. */
		function generate_recovery_key() {
			$this->load->helper("form");
			$ide = new IDE;
			$ide->requireLogin();
			$this->load->model("Account_model");
			if($_POST) {
				$data['info'] = '';
				$key = $this->Account_model->generateKey($_SESSION['name']);
				success("<center><font size='4'>$key</font></center>");
				alert("<b>Save this recovery key, you see this key only once! You will never see it again, don't refresh or move away from this website until you save it!</b>");
			}
			else
			$data['info'] = '<center id=\'info\'><b>Press this button to generate your unique recovery key. <br>Remember! You can do this only once! Your recovery key will be shown only once! Write it down, for security reasons we recommend to not save it on computers hard drive!</b></center><br><center><input type=\'submit\' value=\'Generate\' name=\'submit\'></center>';
			/* Load view of generating new recovery key. */
			$this->load->view('generate_recovery_key', $data);
		
		}
		
		function _checkCurrentPassword($pass) {
			$this->load->model("account_model");
			if($this->account_model->checkPassword($pass)) 
				return true;
			else {
				$this->form_validation->set_message("_checkCurrentPassword", "Current password is incorrect.");
				return false;
			}
		}
		
		function changepassword() {
			$ide = new IDE;
			$ide->requireLogin();
			$this->load->helper("form_helper");
			if($_POST) {
				$this->load->library("form_validation");
				$this->form_validation->set_rules('current', 'Current Password', 'required|callback__checkCurrentPassword');
				$this->form_validation->set_rules('password', 'Password', 'required|matches[repeat]|min_length[4]|max_length[255]');
				if($this->form_validation->run() == true) {
					$this->load->model("account_model");
					$this->account_model->changePassword($_POST['password'], $_SESSION['name']);
					success("Your password has been changed.");
					$ide->redirect(WEBSITE."/index.php/account", 2);
				}
			}
			$this->load->view("changepassword");
		}
		
		function editcomment($id) {
			$ide = new IDE;
			$ide->requireLogin();
			if(empty($id)) $ide->redirect(WEBSITE."/index.php/account");
			$this->load->model("account_model");
			if(!$this->account_model->isUserPlayer($id)) $ide->redirect(WEBSITE."/index.php/account");
			$data['id'] = $id;
				if($_POST) {
					$this->load->library("form_validation");
						$this->form_validation->set_rules('comment', 'Comment', 'max_length[255]|alpha_ide');
					if($this->form_validation->run() == true) {
						if(@$_POST['hide'] == 1)
							$this->account_model->changeComment($id, $_POST['comment'], true);
						else
							$this->account_model->changeComment($id, $_POST['comment'], false);
						success("Your comment has been changed.");
						$ide->redirect(WEBSITE."/index.php/account", 2);
					}
				}
			$data['comment'] = $this->account_model->getPlayerComment($id);
			$this->load->helper("form_helper");
			$this->load->view("edit_comment", $data);
		}
		
		function deletePlayer($id) {
			$ide = new IDE;
			$ide->requireLogin();
			$id = (int)$id;
			if(empty($id)) $ide->redirect(WEBSITE."/index.php/account");
			$this->load->model("account_model");
			if(!$this->account_model->isUserPlayer($id)) $ide->redirect(WEBSITE."/index.php/account");
			$this->account_model->deletePlayer($id);
			$ide->redirect(WEBSITE."/index.php/account");
		}
		
		public function setNickname() {
			$ide = new IDE;
			$ide->requireLogin();
			if(!empty($_SESSION['nickname'])) $ide->goPrevious();
			$this->load->helper("form_helper");
				if($_POST) {
					$_POST['nickname'] = ucfirst(strtolower($_POST['nickname']));
					$this->load->library("form_validation");
					$this->form_validation->set_rules('nickname', 'Nickname', 'required|min_length[4]|max_length[32]|nickname|callback__nicknameExists');
					$this->form_validation->set_rules('rules', 'Rules', 'required');
					if($this->form_validation->run()) {
						$this->load->model("account_model");
						$this->account_model->setNickname($ide->loggedAccountId(), $_POST['nickname']);
						$_SESSION['nickname'] = $_POST['nickname'];
						$ide->redirect(WEBSITE."/index.php/account/index/2");
					}
				}
			$this->load->view("setNickname");
			
		}
		
		function _validKey($key) {
			$this->load->model("account_model");
			$_POST['key'] = str_replace("-", "", $_POST['key']);
			if($this->account_model->checkKey($_POST['key'], $_POST['email'])) {
				return true;
			}
			else {
				$this->form_validation->set_message("_validKey", "Could not change password. Make sure email and recovery key are valid.");
				return false;
			}
		}
		
		public function lost() {
			$ide = new IDE;
			$this->load->helper("form_helper");
				if($_POST) {
					$_POST['key'] = str_replace("-", "", $_POST['key']);
				
					$this->load->library("form_validation");
					$this->form_validation->set_rules('password', 'Password', 'required|matches[repeat]|min_length[4]|max_length[255]');
					$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
					$this->form_validation->set_rules('key', 'Recovery Key', 'required|callback__validKey');
					
					if($this->form_validation->run()) {
						$this->load->model("account_model");
						$this->account_model->recoveryAccount($_POST['key'], $_POST['email'], $_POST['password']);
						$ide->redirect(WEBSITE."/index.php/account/login/2");
					}
				}
			$this->load->view("account_lost");
		}
		
	}

?>

 

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

removido.

Ainda está com mesmo erro.

 

Editado por Storm Night (veja o histórico de edições)
"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites
28 minutos atrás, Storm Night disse:

O erro sumiu mas eu tenho q clica em registrar duas vezes ainda.

 

Bom, não sou muito da área de Webmaster, e esse erro que mostrou foi porque no arquivo  account.php  havia variáveis sem um valor definido, não só a da linha 314 e 315 que mostra o Erro, mais também em outras que fazem conexão com o mesmo! 

Como a que mostra o erro:  

if($ajax == ) {

O certo seria

if($ajax == ) {

Sem falar em outras variáveis que estavam sem valor. Bom não sei no ponto de vista de pessoas com muita experiencia no assunto, posso ta errado na " Explicação ", mais o erro estava nessas variáveis sem valor definido! 

 

Em relação ao duplo Click, creio que não seja mais em account.php.

Não sei cara, não manjo muito, mais vamos tentar né ? Assim que se aprendi. Kkk

 

Vá em: htdocs\system\application\views e posta o arquivo create.php  o erro pode está nele já que se trata do botão de criar a account. Não sei posso ta errado, mais vamos tentar! xD

Editado por KotZletY (veja o histórico de edições)

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

Rapaz, reeditei o post, nql hora eu tava enviando pra teste.

Irei olhar. Mas obr ja dei seu rep

"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites
34 minutos atrás, Storm Night disse:

Rapaz, reeditei o post, nql hora eu tava enviando pra teste.

Irei olhar. Mas obr ja dei seu rep

Então ? 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

O msm erro.

Enviado de meu D2114 usando Tapatalk

"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites
11 minutos atrás, Storm Night disse:

O msm erro.

Enviado de meu D2114 usando Tapatalk

Bom, então estava enganado sobre o erro, e agora não faço ideia do problema. Sinto muito em não poder ajudar.

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

Ok obrigado msm assim.

Alguém aí q saiba php, me dá uma ajuda por favor.

Enviado de meu D2114 usando Tapatalk

"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites

Up, por favor... Alguem me ajuda.

Enviado de meu D2114 usando Tapatalk

"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites

Up

"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites

Up

Enviado de meu D2114 usando Tapatalk

"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por willks123
      Preciso de ajuda para exibir as categorias do shopping do meu site. Sera que conseguem me ajudar?
       
      Quando entro no SHOP ADMIN para criar ofertas aparecem essas categorias. Porem quando tento adicionar qualquer categoria diferent da ITEM não aparece nada para mudar de CATEGORIA.

       
      Fica assim: Nem aparece as categorias nem os itens mudam a Imagem

       
      Se puderem me ajudar agradeço muito.

      Segue abaixo meus arquivos:
      shopadmin.php
       
      <?PHP if($group_id_of_acc_logged >= $config['site']['access_admin_panel']) { $offertype = $_REQUEST['offer_type']; if((empty($action)) AND (empty($offertype))) { $main_content .= '<br><h2><center><a href="?subtopic=shopadmin&action=addoffer">ADD SHOP OFFER</a><br><a href="?subtopic=shopadmin&action=points">ADD POINTS</a></center>'; } if($action == "addoffer"){ $shop_points = stripslashes(ucwords(strtolower(trim($_REQUEST['shop_points'])))); $shop_offer_type = stripslashes(trim($_REQUEST['offer_type'])); if(empty($shop_points)) { $main_content .= '<table border="0"><tr><td align="center"><b>Select offer type:</b></td><td><table border="0" ><tr bgcolor="#505050"> <td><font color="white">Item</td><td><font color="white">Item VIP</td><td><font color="white">Container</td><td><font color="white">Pacc</td><td><font color="white">VIP Days</td><td><font color="white">Redskull</td> <td><font color="white">Unban</td><td><font color="white">Changename</td></tr><tr bgcolor="#D4C0A1"><form action="" method="post"> <td align="center"><input type="radio" name="offer_type" value="item" onClick="this.form.submit()"></td></lable> <td align="center"><input type="radio" name="offer_type" value="itemvip" onClick="this.form.submit()"></td></lable> <td align="center"><input type="radio" name="offer_type" value="container" onClick="this.form.submit()"></td> <td align="center"><input type="radio" name="offer_type" value="pacc" onClick="this.form.submit()"></td> <td align="center"><input type="radio" name="offer_type" value="vipdays" onClick="this.form.submit()"></td> <td align="center"><input type="radio" name="offer_type" value="redskull" onClick="this.form.submit()"></td> <td align="center"><input type="radio" name="offer_type" value="unban" onClick="this.form.submit()"></td> <td align="center"><input type="radio" name="offer_type" value="changename" onClick="this.form.submit()"></td> </form></tr></table></td></tr>'; $main_content .= '<form action="?subtopic=shopadmin&action=addoffer&offer_type='.$shop_offer_type.'" method="post" ><table border="0"><tr> <td align="center" ><b>Points:</b></td><td><input type="textbox" name="shop_points" maxlenght="7" style="width: 70px"></td></tr>'; if($_REQUEST['offer_type'] == 'container'){ $main_content .= '<tr><td align="center" ><b>Container ID:</b></td> <td><input type="text" name="shop_itemid1" maxlenght="7" style="width: 70px" ></td></tr> <tr><td align="center" ><b>Count Container:</b></td> <td><input type="text" name="shop_count1" maxlenght="7" style="width: 70px" ></td></tr> <tr><td align="center" ><b>Item ID:</b></td> <td><input type="text" name="shop_itemid2" maxlenght="7" style="width: 70px" ></td></tr> <tr><td align="center" ><b>Count Item:</b></td> <td><input type="text" name="shop_count2" maxlenght="7" style="width: 70px" ></td></tr>'; } if($_REQUEST['offer_type'] == 'item'){ $main_content .= '<tr><td align="center"><b>Item ID:</b></td> <td><input type="text" name="shop_itemid1" maxlenght="7" style="width: 70px" ></td></tr> <tr><td align="center"><b>Item Count:</b></td> <td><input type="text" name="shop_count1" maxlenght="7" style="width: 70px" ></td></tr>'; } if($_REQUEST['offer_type'] == 'itemvip'){ $main_content .= '<tr><td align="center"><b>Item ID:</b></td> <td><input type="text" name="shop_itemid1" maxlenght="7" style="width: 70px" ></td></tr> <tr><td align="center"><b>Item Count:</b></td> <td><input type="text" name="shop_count1" maxlenght="7" style="width: 70px" ></td></tr>'; } if($_REQUEST['offer_type'] == 'pacc'){ $main_content .= '<tr><td align="center" ><b>Days:</b></td> <td><input type="text" name="shop_count1" maxlenght="7" style="width: 70px" ></td></tr>'; } if($_REQUEST['offer_type'] == 'vipdays'){ $main_content .= '<tr><td align="center" ><b>Days:</b></td> <td><input type="text" name="shop_count1" maxlenght="7" style="width: 70px" ></td></tr>'; } $main_content .= '<tr><td align="center" ><b>Offer Description:</b></td> <td ><textarea name="shop_offer_description" rows="2" cols="35"></textarea></td></tr> <tr><td align="center" ><b>Offer Name:</b></td> <td><input type="text" name="shop_offer_name" maxlenght="40" style="width: 200px" ></td></tr></table> <input name="submit" type="submit" value="Submit" /></form> <form action="?subtopic=shopadmin&action=addoffer" method="post" > <input name="submit" type="submit" value="Reset" /></form>'; $main_content .= '<form action="?subtopic=shopadmin" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form>'; } else { $shop_points = stripslashes(trim($_POST['shop_points'])); $shop_offer_type = stripslashes(trim($_REQUEST['offer_type'])); $shop_itemid1 = stripslashes(trim($_POST['shop_itemid1'])); $shop_count1 = stripslashes(trim($_POST['shop_count1'])); $shop_itemid2 = stripslashes(trim($_POST['shop_itemid2'])); $shop_count2 = stripslashes(trim($_POST['shop_count2'])); $shop_offer_description = stripslashes(trim($_POST['shop_offer_description'])); $shop_offer_name = stripslashes(trim($_POST['shop_offer_name'])); $SQL->query('INSERT INTO `z_shop_offer` (id, points, itemid1, count1, itemid2, count2, offer_type, offer_description, offer_name, pid) VALUES (NULL, '.$SQL->quote($shop_points).', '.$SQL->quote($shop_itemid1).', '.$SQL->quote($shop_count1).', '.$SQL->quote($shop_itemid2).', '.$SQL->quote($shop_count2).', '.$SQL->quote($shop_offer_type).', '.$SQL->quote($shop_offer_description).', '.$SQL->quote($shop_offer_name).', 0)'); $main_content .= '<center><h2><font color="red">Added to Shop:</font></h2></center><hr/> <tr><td align="center" ><b>Points:</b></td> <td>'.$shop_points.'</td></tr><br>'; if($shop_offer_type == 'container'){ $main_content .= '<tr><td align="center" ><b>Container ID:</b></td> <td>'.$shop_itemid1.'</td></tr><br> <tr><td align="center" ><b>Count Container:</b></td> <td>'.$shop_count1.'</td></tr><br> <tr><td align="center" ><b> Item ID (in Container):</b></td> <td>'.$shop_itemid2.'</td></tr><br> <tr><td align="center" ><b>Count Item (in Container):</b></td> <td>'.$shop_count2.'</td></tr><br>'; } if ($shop_offer_type == 'item'){ $main_content .= '<tr><td align="center" ><b>Item ID:</b></td> <td>'.$shop_itemid1.'</td></tr><br> <tr><td align="center" ><b>Count Item:</b></td> <td>'.$shop_count1.'</td></tr><br>'; } if ($shop_offer_type == 'itemvip'){ $main_content .= '<tr><td align="center" ><b>Item ID:</b></td> <td>'.$shop_itemid1.'</td></tr><br> <tr><td align="center" ><b>Count Item:</b></td> <td>'.$shop_count1.'</td></tr><br>'; } if ($shop_offer_type == 'pacc'){ $main_content .= '<tr><td align="center" ><b>Days:</b></td> <td>'.$shop_count1.'</td></tr><br>'; } if ($shop_offer_type == 'vipdays'){ $main_content .= '<tr><td align="center" ><b>Days:</b></td> <td>'.$shop_count1.'</td></tr><br>'; } $main_content .= '<tr><td align="center" ><b>Offer Type:</b></td> <td>'.$shop_offer_type.'</td></tr><br> <tr><td align="center" ><b>Offer Description:</b></td> <td>'.$shop_offer_description.'</td></tr><br> <tr><td align="center" ><b>Offer Name:</b></td> <td>'.$shop_offer_name.'</td></tr> <br><form action="?subtopic=shopadmin&action=addoffer" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form>'; } } if($action == "viewoffer") { $items = simplexml_load_file($config['site']['server_path'].'/data/items/items.xml') or die('<b>Could not load items!</b>'); foreach($items->item as $v) $itemList[(int)$v['id']] = $v['name']; $order = array("id" => "id", "points" => "points", "offer_type" => "offer_type", "itemid1" => "itemid1", "itemid2" => "itemid2"); $main_content .= '<center><table width="550"><tr BGCOLOR="#505050"><td width="5"><font color="white"><a href="index.php?subtopic=shopadmin&action=viewoffer&order=' . getOrder($order, 'order', 'id') . '" class=white>ID:</td><td width="5"><font color="white"><a href="index.php?subtopic=shopadmin&action=viewoffer&order=' . getOrder($order, 'order', 'points') . '" class=white>Points:</td><td width="7"> <font color="white"><a href="index.php?subtopic=shopadmin&action=viewoffer&order=' . getOrder($order, 'order', 'itemid1') . '" class=white>Item ID:</td><td width="5"><font color="white">Count:</td><td width="7"><center><font color="white"><a href="index.php?subtopic=shopadmin&action=viewoffer&order=' . getOrder($order, 'order', 'itemid2') . '" class=white>Container ID:</center></td><td width="5"><font color="white">Count:</td><td width="7"><font color="white"><a href="index.php?subtopic=shopadmin&action=viewoffer&order=' . getOrder($order, 'order', 'offer_type') . '" class=white>Offer Type:</td> <td width="85"><font color="white">Offer Description:</td><td width="30"><font color="white">Offer Name:</td><td width="30"></td></tr>'; $shopoffers = $SQL->query('SELECT id, points, itemid1, count1, itemid2, count2, offer_type, offer_description, offer_name, pid FROM z_shop_offer ' . makeOrder($order, 'order', 'id')); foreach($shopoffers as $shop) { $main_content .= '</B><tr BGCOLOR="#D4C0A1"><td align="center">'.$shop['id'].'<td align="center">'.$shop['points'].'</td>'; if($shop['itemid1'] == "0") { $main_content .= '<td align="center">'.$shop['itemid1'].'<br></td>'; } else { $main_content .= '<td align="center">'.$shop['itemid1'].'<br>(' . $itemList[(int)$shop['itemid1']] . ')</td>'; } $main_content .= '<td align="center">'.$shop['count1'].'</td>'; if($shop['itemid2'] == "0") { $main_content .= '<td align="center">'.$shop['itemid2'].'</td>'; } else { $main_content .= '<td align="center">'.$shop['itemid2'].'<br>(' . $itemList[(int)$shop['itemid2']] . ')</td>'; } $main_content .= '<td align="center">'.$shop['count2'].'</td><td align="center">'.$shop['offer_type'].'</td><td align="left">'.$shop['offer_description'].'</td><td align="left">'.$shop['offer_name'].'</td>'; $main_content .= '<td align="center"><a href="?subtopic=shopadmin&action=editoffer&id='.$shop['id'].'"><img src="'.$layout_name.'/images/news/edit_news.png" border="0"></a><br><br><a href="?subtopic=shopadmin&action=deleteoffer&id='.$shop['id'].'"><img src="'.$layout_name.'/images/news/delete_news.png" border="0"></a></td>'; } $main_content .= '</td></tr></TABLE><br><form action="?subtopic=shopadmin" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form>'; } if($action == "deleteoffer") { $id = (int) $_REQUEST['id']; $SQL->query('DELETE FROM z_shop_offer WHERE id = '.$id.' LIMIT 1;'); $main_content .= '<center>Shop offer has been deleted.</center><br><center><form action="?subtopic=shopadmin&action=viewoffer" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form></center>'; } if($action == "editoffer") { $id = (int) $_REQUEST['id']; $shopoffers = $SQL->query('SELECT * FROM z_shop_offer WHERE id = '.$id.' LIMIT 1;'); foreach($shopoffers as $shop) { $main_content .= '<form action="?subtopic=shopadmin&action=edited&id='.$id.'" method="post" ><table border="0"><tr><td align="center" ><b>Points:</b></td> <td><input type="textbox" name="shop_points" maxlenght="7" value="'.$shop['points'].'" style="width: 70px"></td></tr>'; if($shop['offer_type'] == 'container'){ $main_content .= '<tr><td align="center" ><b>Container ID:</b></td> <td><input type="text" name="shop_itemid1" maxlenght="7" value="'.$shop['itemid1'].'" style="width: 70px" ></td></tr> <tr><td align="center" ><b>Count Container:</b></td> <td><input type="text" name="shop_count1" maxlenght="7" value="'.$shop['count1'].'" style="width: 70px" ></td></tr> <tr><td align="center" ><b>Item ID:</b></td> <td><input type="text" name="shop_itemid2" maxlenght="7" value="'.$shop['itemid2'].'" style="width: 70px" ></td></tr> <tr><td align="center" ><b>Count Item:</b></td> <td><input type="text" name="shop_count2" maxlenght="7" value="'.$shop['count2'].'" style="width: 70px" ></td></tr>'; } if($shop['offer_type'] == 'item'){ $main_content .= '<tr><td align="center"><b>Item ID:</b></td> <td><input type="text" name="shop_itemid1" maxlenght="7" value="'.$shop['itemid1'].'" style="width: 70px" ></td></tr> <tr><td align="center"><b>Item Count:</b></td> <td><input type="text" name="shop_count1" maxlenght="7" value="'.$shop['count1'].'" style="width: 70px" ></td></tr>'; } if($shop['offer_type'] == 'itemvip'){ $main_content .= '<tr><td align="center"><b>Item ID:</b></td> <td><input type="text" name="shop_itemid1" maxlenght="7" value="'.$shop['itemid1'].'" style="width: 70px" ></td></tr> <tr><td align="center"><b>Item Count:</b></td> <td><input type="text" name="shop_count1" maxlenght="7" value="'.$shop['count1'].'" style="width: 70px" ></td></tr>'; } if($shop['offer_type'] == 'pacc'){ $main_content .= '<tr><td align="center" ><b>Days:</b></td> <td><input type="text" name="shop_count1" maxlenght="7" style="width: 70px" ></td></tr>'; } if($shop['offer_type'] == 'vipdays'){ $main_content .= '<tr><td align="center" ><b>Days:</b></td> <td><input type="text" name="shop_count1" maxlenght="7" style="width: 70px" ></td></tr>'; } $main_content .= '<tr><td align="center" ><b>Offer Type:</b></td> <td><input type="text" name="shop_offer_type" value="'.$shop['offer_type'].'" maxlenght="40" style="width: 200px" ></td></tr> <tr><td align="center" ><b>Offer Description:</b></td> <td ><textarea name="shop_offer_description" rows="2" cols="35">'.$shop['offer_description'].'</textarea></td></tr> <tr><td align="center" ><b>Offer Name:</b></td> <td><input type="text" name="shop_offer_name" value="'.$shop['offer_name'].'" maxlenght="40" style="width: 200px" ></td></tr> <tr><td><input name="submit" type="submit" value="Submit" /></form></td><td></td></tr></table>'; $main_content .= '<form action="?subtopic=shopadmin&action=viewoffer" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form>'; } } if($action == "edited") { $id = (int) $_REQUEST['id']; $shop_points = stripslashes(trim($_POST['shop_points'])); $shop_offer_type = stripslashes(trim($_POST['shop_offer_type'])); $shop_itemid1 = stripslashes(trim($_POST['shop_itemid1'])); $shop_count1 = stripslashes(trim($_POST['shop_count1'])); $shop_itemid2 = stripslashes(trim($_POST['shop_itemid2'])); $shop_count2 = stripslashes(trim($_POST['shop_count2'])); $shop_offer_description = stripslashes(trim($_POST['shop_offer_description'])); $shop_offer_name = stripslashes(trim($_POST['shop_offer_name'])); $SQL->query('UPDATE `z_shop_offer` SET `points` = '.$shop_points.', `itemid1` = '.$SQL->quote($shop_itemid1).', `count1` = '.$SQL->quote($shop_count1).', `itemid2` = '.$SQL->quote($shop_itemid2).', `count2` = '.$SQL->quote($shop_count2).', `offer_type` = '.$SQL->quote($shop_offer_type).', `offer_description` = '.$SQL->quote($shop_offer_description).', `offer_name` = '.$SQL->quote($shop_offer_name).' WHERE `id` = '.$id.';'); $main_content .= '<b><center>Shop offer successfully edited.</b><br><br><form action="?subtopic=shopadmin&action=viewoffer" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form><meta http-equiv="refresh" content="1;url=/?subtopic=shopadmin&action=viewoffer" />'; } if($action == "points") { $player = stripslashes(ucwords(strtolower(trim($_REQUEST['character'])))); $points = $_POST['points']; if(empty($player)) { $main_content .= '<form action="?subtopic=shopadmin&action=points" method="post"><B>Enter Character Name:</B><input type="textbox" name="character"><br> <B>Enter Points Amount:</B><input type="textbox" name="points"><br><br><input type="submit" value="Submit"> </form></center><form action="?subtopic=shopadmin" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form>'; } else { $player_data = $SQL->query("SELECT * FROM `players` WHERE `name` = '".$player."';")->fetch(); $SQL->query("UPDATE `accounts` SET `premium_points` = `premium_points` + '".$points."' WHERE `id` = '".$player_data['account_id']."'"); $SQL->query("UPDATE `accounts` SET `backup_points` = `backup_points` + '".$points."' WHERE `id` = '".$player_data['account_id']."'"); $main_content .= '<b><center>'.$points.' Premium Points added to the account of <i>'.$player.'</i> !</b></center><br> <form action="?subtopic=shopadmin" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form>'; } } } else { $main_content .= 'Sorry, you have not the rights to access this page.'; } ?>
      shopsystem.php
      <?php if(!defined('INITIALIZED')) exit; if($config['site']['shop_system']) { if($logged) { $user_premium_points = $account_logged->getCustomField('premium_points'); } else { $user_premium_points = 'Login first'; } function getItemByID($id) { $id = (int) $id; $SQL = $GLOBALS['SQL']; $data = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_offer').' WHERE '.$SQL->fieldName('id').' = '.$SQL->quote($id).';')->fetch(); if($data['offer_type'] == 'item') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif($data['offer_type'] == 'mount') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif($data['offer_type'] == 'addon') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif($data['offer_type'] == 'mage') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif($data['offer_type'] == 'pala') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif($data['offer_type'] == 'kina') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif($data['offer_type'] == 'deco') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif($data['offer_type'] == 'container') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } return $offer; } function getOfferArray() { $offer_list = $GLOBALS['SQL']->query('SELECT * FROM '.$GLOBALS['SQL']->tableName('z_shop_offer').';'); $i_item = 0; $i_mount = 0; $i_addon = 0; $i_mage = 0; $i_pala = 0; $i_kina = 0; $i_deco = 0; $i_container = 0; while($data = $offer_list->fetch()) { if($data['offer_type'] == 'item') { $offer_array['item'][$i_item]['id'] = $data['id']; $offer_array['item'][$i_item]['item_id'] = $data['itemid1']; $offer_array['item'][$i_item]['item_count'] = $data['count1']; $offer_array['item'][$i_item]['points'] = $data['points']; $offer_array['item'][$i_item]['description'] = $data['offer_description']; $offer_array['item'][$i_item]['name'] = $data['offer_name']; $i_item++; } elseif($data['offer_type'] == 'mount') { $offer_array['mount'][$i_mount]['id'] = $data['id']; $offer_array['mount'][$i_mount]['container_id'] = $data['itemid1']; $offer_array['mount'][$i_mount]['container_count'] = $data['count1']; $offer_array['mount'][$i_mount]['item_id'] = $data['itemid1']; $offer_array['mount'][$i_mount]['item_count'] = $data['count2']; $offer_array['mount'][$i_mount]['points'] = $data['points']; $offer_array['mount'][$i_mount]['description'] = $data['offer_description']; $offer_array['mount'][$i_mount]['name'] = $data['offer_name']; $i_mount++; } elseif($data['offer_type'] == 'addon') { $offer_array['addon'][$i_addon]['id'] = $data['id']; $offer_array['addon'][$i_addon]['container_id'] = $data['itemid1']; $offer_array['addon'][$i_addon]['container_count'] = $data['count1']; $offer_array['addon'][$i_addon]['item_id'] = $data['itemid1']; $offer_array['addon'][$i_addon]['item_count'] = $data['count2']; $offer_array['addon'][$i_addon]['points'] = $data['points']; $offer_array['addon'][$i_addon]['description'] = $data['offer_description']; $offer_array['addon'][$i_addon]['name'] = $data['offer_name']; $i_addon++; } elseif($data['offer_type'] == 'mage') { $offer_array['mage'][$i_mage]['id'] = $data['id']; $offer_array['mage'][$i_mage]['container_id'] = $data['itemid1']; $offer_array['mage'][$i_mage]['container_count'] = $data['count1']; $offer_array['mage'][$i_mage]['item_id'] = $data['itemid1']; $offer_array['mage'][$i_mage]['item_count'] = $data['count2']; $offer_array['mage'][$i_mage]['points'] = $data['points']; $offer_array['mage'][$i_mage]['description'] = $data['offer_description']; $offer_array['mage'][$i_mage]['name'] = $data['offer_name']; $i_mage++; } elseif($data['offer_type'] == 'pala') { $offer_array['pala'][$i_pala]['id'] = $data['id']; $offer_array['pala'][$i_pala]['container_id'] = $data['itemid1']; $offer_array['pala'][$i_pala]['container_count'] = $data['count1']; $offer_array['pala'][$i_pala]['item_id'] = $data['itemid1']; $offer_array['pala'][$i_pala]['item_count'] = $data['count2']; $offer_array['pala'][$i_pala]['points'] = $data['points']; $offer_array['pala'][$i_pala]['description'] = $data['offer_description']; $offer_array['pala'][$i_pala]['name'] = $data['offer_name']; $i_pala++; } elseif($data['offer_type'] == 'kina') { $offer_array['kina'][$i_kina]['id'] = $data['id']; $offer_array['kina'][$i_kina]['container_id'] = $data['itemid1']; $offer_array['kina'][$i_kina]['container_count'] = $data['count1']; $offer_array['kina'][$i_kina]['item_id'] = $data['itemid1']; $offer_array['kina'][$i_kina]['item_count'] = $data['count2']; $offer_array['kina'][$i_kina]['points'] = $data['points']; $offer_array['kina'][$i_kina]['description'] = $data['offer_description']; $offer_array['kina'][$i_kina]['name'] = $data['offer_name']; $i_kina++; } elseif($data['offer_type'] == 'deco') { $offer_array['deco'][$i_deco]['id'] = $data['id']; $offer_array['deco'][$i_deco]['container_id'] = $data['itemid1']; $offer_array['deco'][$i_deco]['container_count'] = $data['count1']; $offer_array['deco'][$i_deco]['item_id'] = $data['itemid1']; $offer_array['deco'][$i_deco]['item_count'] = $data['count2']; $offer_array['deco'][$i_deco]['points'] = $data['points']; $offer_array['deco'][$i_deco]['description'] = $data['offer_description']; $offer_array['deco'][$i_deco]['name'] = $data['offer_name']; $i_deco++; } elseif($data['offer_type'] == 'container') { $offer_array['container'][$i_container]['id'] = $data['id']; $offer_array['container'][$i_container]['container_id'] = $data['itemid1']; $offer_array['container'][$i_container]['container_count'] = $data['count1']; $offer_array['container'][$i_container]['item_id'] = $data['itemid2']; $offer_array['container'][$i_container]['item_count'] = $data['count2']; $offer_array['container'][$i_container]['points'] = $data['points']; $offer_array['container'][$i_container]['description'] = $data['offer_description']; $offer_array['container'][$i_container]['name'] = $data['offer_name']; $i_container++; } } return $offer_array; } if(($action == '') or ($action == 'item') or ($action == 'mount') or ($action == 'addon') or ($action == 'container') or ($action == 'mage') or ($action == 'pala') or ($action == 'kina') or ($action == 'deco')) { unset($_SESSION['viewed_confirmation_page']); $offer_list = getOfferArray(); if(empty($action)) { if(count($offer_list['item']) > 0) $action = 'item'; elseif(count($offer_list['mount']) > 0) $action = 'mount'; elseif(count($offer_list['addon']) > 0) $action = 'addon'; elseif(count($offer_list['mage']) > 0) $action = 'mage'; elseif(count($offer_list['pala']) > 0) $action = 'pala'; elseif(count($offer_list['kina']) > 0) $action = 'kina'; elseif(count($offer_list['deco']) > 0) $action = 'deco'; elseif(count($offer_list['container']) > 0) $action = 'container'; } function selectcolor($value) { if($GLOBALS['action'] == $value) return '#505050; color: #FFFFFF'; else return '#303030; color: #aaaaaa'; } if((count($offer_list['item']) > 0) or (count($offer_list['mount']) > 0) or (count($offer_list['addon']) > 0) or (count($offer_list['container']) > 0) or (count($offer_list['mage']) > 0) or (count($offer_list['pala']) > 0) or (count($offer_list['kina']) > 0) or (count($offer_list['deco']) > 0)) //show list of items offers if((count($offer_list['item']) > 0) and ($action == 'item')) { $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="100" align="center" class="white"><b>Select product</b></td></tr>'; foreach($offer_list['item'] as $item) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$item['points'].'</b></td><td align="center"><img src="images/items/1968.gif"></td><td><b>'.htmlspecialchars($item['name']).'</b><br />'.htmlspecialchars($item['description']).'</td><td align="center">'; if(!$logged) { $main_content .= '<b>Login to buy</b>'; } else { $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$item['id'].'"><input type="hidden" name="buy_id" value="'.$item['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$item['id'].'.submit();return false;">BUY</a></div></form>'; } $main_content .= '</td></tr>'; } $main_content .= '</table>'; } //show list of mount offers if((count($offer_list['mount']) > 0) and ($action == 'mount')) { $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>'; foreach($offer_list['mount'] as $mount) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$mount['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $mount['id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($mount['name']).'</b> ('.$mount['points'].' points)<br />'.htmlspecialchars($mount['description']).'</td><td align="center">'; if(!$logged) { $main_content .= '<b>Login to buy</b>'; } else { $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$mount['id'].'"><input type="hidden" name="buy_id" value="'.$mount['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$mount['id'].'.submit();return false;">BUY</a></div></form>'; } $main_content .= '</td></tr>'; } $main_content .= '</table>'; } //show list of addon offers if((count($offer_list['addon']) > 0) and ($action == 'addon')) { $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>'; foreach($offer_list['addon'] as $addon) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$addon['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $addon['id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($addon['name']).'</b> ('.$addon['points'].' points)<br />'.htmlspecialchars($addon['description']).'</td><td align="center">'; if(!$logged) { $main_content .= '<b>Login to buy</b>'; } else { $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$addon['id'].'"><input type="hidden" name="buy_id" value="'.$addon['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$addon['id'].'.submit();return false;">BUY</a></div></form>'; } $main_content .= '</td></tr>'; } $main_content .= '</table>'; } //show list of mage offers if((count($offer_list['mage']) > 0) and ($action == 'mage')) { $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>'; foreach($offer_list['mage'] as $mage) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$mage['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $mage['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($mage['name']).'</b> ('.$mage['points'].' points)<br />'.htmlspecialchars($mage['description']).'</td><td align="center">'; if(!$logged) { $main_content .= '<b>Login to buy</b>'; } else { $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$mage['id'].'"><input type="hidden" name="buy_id" value="'.$mage['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$mage['id'].'.submit();return false;">BUY</a></div></form>'; } $main_content .= '</td></tr>'; } $main_content .= '</table>'; } //show list of pala offers if((count($offer_list['pala']) > 0) and ($action == 'pala')) { $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>'; foreach($offer_list['pala'] as $pala) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$pala['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $pala['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($pala['name']).'</b> ('.$pala['points'].' points)<br />'.htmlspecialchars($pala['description']).'</td><td align="center">'; if(!$logged) { $main_content .= '<b>Login to buy</b>'; } else { $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$pala['id'].'"><input type="hidden" name="buy_id" value="'.$pala['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$pala['id'].'.submit();return false;">BUY</a></div></form>'; } $main_content .= '</td></tr>'; } $main_content .= '</table>'; } //show list of kina offers if((count($offer_list['kina']) > 0) and ($action == 'kina')) { $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>'; foreach($offer_list['kina'] as $kina) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$kina['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $kina['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($kina['name']).'</b> ('.$kina['points'].' points)<br />'.htmlspecialchars($kina['description']).'</td><td align="center">'; if(!$logged) { $main_content .= '<b>Login to buy</b>'; } else { $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$kina['id'].'"><input type="hidden" name="buy_id" value="'.$kina['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$kina['id'].'.submit();return false;">BUY</a></div></form>'; } $main_content .= '</td></tr>'; } $main_content .= '</table>'; } //show list of kina offers if((count($offer_list['deco']) > 0) and ($action == 'deco')) { $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>'; foreach($offer_list['deco'] as $deco) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$deco['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $deco['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($deco['name']).'</b> ('.$deco['points'].' points)<br />'.htmlspecialchars($deco['description']).'</td><td align="center">'; if(!$logged) { $main_content .= '<b>Login to buy</b>'; } else { $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="itemform_'.$deco['id'].'"><input type="hidden" name="buy_id" value="'.$deco['id'].'"><div class="navibutton"><a href="" onClick="itemform_'.$deco['id'].'.submit();return false;">BUY</a></div></form>'; } $main_content .= '</td></tr>'; } $main_content .= '</table>'; } //show list of containers offers if((count($offer_list['container']) > 0) and ($action == 'container')) { if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>'; foreach($offer_list['container'] as $container) { $main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$container['points'].'</b></td><td align="center"><img src="' . $config['site']['item_images_url'] . $container['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($container['name']).'</b> ('.$container['points'].' points)<br />'.htmlspecialchars($container['description']).'</td><td align="center">'; if(!$logged) { $main_content .= '<b>Login to buy</b>'; } else { $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method="POST" name="contform_'.$container['id'].'"><input type="hidden" name="buy_id" value="'.$container['id'].'"><div class="navibutton"><a href="" onClick="contform_'.$container['id'].'.submit();return false;">BUY</a></div></form>'; } $main_content .= '</td></tr>'; } $main_content .= '</table>'; } //Finish container if((count($offer_list['item']) > 0) or (count($offer_list['mount']) > 0) or (count($offer_list['addon']) > 0) or (count($offer_list['container']) > 0) or (count($offer_list['mage']) > 0) or (count($offer_list['pala']) > 0) or (count($offer_list['kina']) > 0)) { $main_content .= '<table BORDER=0 CELLPaDDING="4" CELLSPaCING="1" style="width:100%;font-weight:bold;text-align:center;"> <tr style="background:#505050;"> <td colspan="3" style="height:px;"></td> </tr> </table>'; } } if($action == 'select_player') { unset($_SESSION['viewed_confirmation_page']); if(!$logged) { $errormessage .= 'Please login first.'; } else { $buy_id = (int) $_REQUEST['buy_id']; if(empty($buy_id)) { $errormessage .= 'Please <a href="?subtopic=shopsystem">select item</a> first.'; } else { $buy_offer = getItemByID($buy_id); if(isset($buy_offer['id'])) //item exist in database { if($user_premium_points >= $buy_offer['points']) { $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"> <tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class="white"><b>Selected Offer</b></td></tr> <tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>Name:</b></td><td width="550">'.htmlspecialchars($buy_offer['name']).'</td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>Description:</b></td><td width="550">'.htmlspecialchars($buy_offer['description']).'</td></tr> </table><br /> <form action="?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_id" value="'.$buy_id.'"> <table border="0" cellpadding="4" cellspacing="1" width="100%"> <tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class="white"><b>Give item to player from your account</b></td></tr> <tr bgcolor="'.$config['site']['lightborder'].'"><td width="110"><b>Name:</b></td><td width="550"><select name="buy_name">'; $players_from_logged_acc = $account_logged->getPlayersList(); if(count($players_from_logged_acc) > 0) { foreach($players_from_logged_acc as $player) { $main_content .= '<option>'.htmlspecialchars($player->getName()).'</option>'; } } else { $main_content .= 'You don\'t have any character on your account.'; } $main_content .= '</select>&nbsp;<input type="submit" value="Give"></td></tr> </table> </form><br /><form action="?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_id" value="'.$buy_id.'"> <table border="0" cellpadding="4" cellspacing="1" width="100%"> <tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class="white"><b>Give item to other player</b></td></tr> <tr bgcolor="'.$config['site']['lightborder'].'"><td width="110"><b>To player:</b></td><td width="550"><input type="text" name="buy_name"> - name of player</td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td width="110"><b>From:</b></td><td width="550"><input type="text" name="buy_from">&nbsp;<input type="submit" value="Give"> - your nick, \'empty\' = Anonymous</td></tr> </table><br /> </form>'; } else { $errormessage .= 'For this item you need <b>'.$buy_offer['points'].'</b> points. You have only <b>'.$user_premium_points.'</b> premium points. Please <a href="?subtopic=shopsystem">select other item</a> or buy premium points.'; } } else { $errormessage .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="?subtopic=shopsystem">select item</a> again.'; } } } if(!empty($errormessage)) { $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Informations</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.$errormessage.'</b></TD></TR> </table>'; } } elseif($action == 'confirm_transaction') { if(!$logged) { $errormessage .= 'Please login first.'; } else { $buy_id = (int) $_POST['buy_id']; $buy_name = trim($_POST['buy_name']); $buy_from = trim($_POST['buy_from']); if(empty($buy_from)) { $buy_from = 'Anonymous'; } if(empty($buy_id)) { $errormessage .= 'Please <a href="?subtopic=shopsystem">select item</a> first.'; } else { if(!check_name($buy_from)) { $errormessage .= 'Invalid nick ("from player") format. Please <a href="?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a> or contact with administrator.'; } else { $buy_offer = getItemByID($buy_id); if(isset($buy_offer['id'])) //item exist in database { if($user_premium_points >= $buy_offer['points']) { if(check_name($buy_name)) { $buy_player = new Player(); $buy_player->find($buy_name); if($buy_player->isLoaded()) { $buy_player_account = $buy_player->getAccount(); if($_SESSION['viewed_confirmation_page'] == 'yes' && $_POST['buy_confirmed'] == 'yes') { if($buy_offer['type'] == 'item') { $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$SQL->fieldName('id').','.$SQL->fieldName('name').','.$SQL->fieldName('type').','.$SQL->fieldName('action').','.$SQL->fieldName('param1').','.$SQL->fieldName('param2').','.$SQL->fieldName('param3').','.$SQL->fieldName('param4').','.$SQL->fieldName('param5').','.$SQL->fieldName('param6').','.$SQL->fieldName('param7').','.$SQL->fieldName('delete_it').') VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote('login').', '.$SQL->quote('give_item').', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote('').', '.$SQL->quote('').', '.$SQL->quote('item').', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote($buy_offer['id']).', '.$SQL->quote(1).');'; $SQL->query($sql); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' ('.$SQL->fieldName('id').','.$SQL->fieldName('to_name').','.$SQL->fieldName('to_account').','.$SQL->fieldName('from_nick').','.$SQL->fieldName('from_account').','.$SQL->fieldName('price').','.$SQL->fieldName('offer_id').','.$SQL->fieldName('trans_state').','.$SQL->fieldName('trans_start').','.$SQL->fieldName('trans_real').') VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote('wait').', '.$SQL->quote(time()).', '.$SQL->quote(0).');'; $SQL->query($save_transaction); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Item added!</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> items (he will get this items after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR> </table>'; } elseif($buy_offer['type'] == 'mount') { $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$SQL->fieldName('id').','.$SQL->fieldName('name').','.$SQL->fieldName('type').','.$SQL->fieldName('action').','.$SQL->fieldName('param1').','.$SQL->fieldName('param2').','.$SQL->fieldName('param3').','.$SQL->fieldName('param4').','.$SQL->fieldName('param5').','.$SQL->fieldName('param6').','.$SQL->fieldName('param7').','.$SQL->fieldName('delete_it').') VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote('login').', '.$SQL->quote('give_item').', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote('').', '.$SQL->quote('').', '.$SQL->quote('item').', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote($buy_offer['id']).', '.$SQL->quote(1).');'; $SQL->query($sql); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' ('.$SQL->fieldName('id').','.$SQL->fieldName('to_name').','.$SQL->fieldName('to_account').','.$SQL->fieldName('from_nick').','.$SQL->fieldName('from_account').','.$SQL->fieldName('price').','.$SQL->fieldName('offer_id').','.$SQL->fieldName('trans_state').','.$SQL->fieldName('trans_start').','.$SQL->fieldName('trans_real').') VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote('wait').', '.$SQL->quote(time()).', '.$SQL->quote(0).');'; $SQL->query($save_transaction); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Mount added!</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> items (he will get this items after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR> </table>'; } elseif($buy_offer['type'] == 'addon') { $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$SQL->fieldName('id').','.$SQL->fieldName('name').','.$SQL->fieldName('type').','.$SQL->fieldName('action').','.$SQL->fieldName('param1').','.$SQL->fieldName('param2').','.$SQL->fieldName('param3').','.$SQL->fieldName('param4').','.$SQL->fieldName('param5').','.$SQL->fieldName('param6').','.$SQL->fieldName('param7').','.$SQL->fieldName('delete_it').') VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote('login').', '.$SQL->quote('give_item').', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote('').', '.$SQL->quote('').', '.$SQL->quote('item').', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote($buy_offer['id']).', '.$SQL->quote(1).');'; $SQL->query($sql); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' ('.$SQL->fieldName('id').','.$SQL->fieldName('to_name').','.$SQL->fieldName('to_account').','.$SQL->fieldName('from_nick').','.$SQL->fieldName('from_account').','.$SQL->fieldName('price').','.$SQL->fieldName('offer_id').','.$SQL->fieldName('trans_state').','.$SQL->fieldName('trans_start').','.$SQL->fieldName('trans_real').') VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote('wait').', '.$SQL->quote(time()).', '.$SQL->quote(0).');'; $SQL->query($save_transaction); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Addon added!</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> items (he will get this items after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR> </table>'; } elseif($buy_offer['type'] == 'container') { $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$SQL->fieldName('id').','.$SQL->fieldName('name').','.$SQL->fieldName('type').','.$SQL->fieldName('action').','.$SQL->fieldName('param1').','.$SQL->fieldName('param2').','.$SQL->fieldName('param3').','.$SQL->fieldName('param4').','.$SQL->fieldName('param5').','.$SQL->fieldName('param6').','.$SQL->fieldName('param7').','.$SQL->fieldName('delete_it').') VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote('login').', '.$SQL->quote('give_item').', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote($buy_offer['container_id']).', '.$SQL->quote($buy_offer['container_count']).', '.$SQL->quote('container').', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote($buy_offer['id']).', '.$SQL->quote(1).');'; $SQL->query($sql); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' ('.$SQL->fieldName('id').','.$SQL->fieldName('to_name').','.$SQL->fieldName('to_account').','.$SQL->fieldName('from_nick').','.$SQL->fieldName('from_account').','.$SQL->fieldName('price').','.$SQL->fieldName('offer_id').','.$SQL->fieldName('trans_state').','.$SQL->fieldName('trans_start').','.$SQL->fieldName('trans_real').') VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote('wait').', '.$SQL->quote(time()).', '.$SQL->quote(0).');'; $SQL->query($save_transaction); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Container of items added!</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> items (he will get this container with items after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR> </table>'; } } else { $set_session = TRUE; $_SESSION['viewed_confirmation_page'] = 'yes'; $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"> <tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="3" class="white"><b>Confirm Transaction</b></td></tr> <tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>Name:</b></td><td width="550" colspan="2">'. htmlspecialchars($buy_offer['name']).'</td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>Description:</b></td><td width="550" colspan="2">'. htmlspecialchars($buy_offer['description']).'</td></tr> <tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>Cost:</b></td><td width="550" colspan="2"><b>'. htmlspecialchars($buy_offer['points']).' premium points</b> from your account</td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>For Player:</b></td><td width="550" colspan="2"><font color="red">'.htmlspecialchars($buy_player->getName()).'</font></td></tr> <tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>From:</b></td><td width="550" colspan="2"><font color="red">'.htmlspecialchars($buy_from).'</font></td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td colspan="3"></td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>Transaction?</b></td><td width="275" align="left"> <form action="?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_confirmed" value="yes"><input type="hidden" name="buy_id" value="'.$buy_id.'"><input type="hidden" name="buy_from" value="'.htmlspecialchars($buy_from).'"><input type="hidden" name="buy_name" value="'.htmlspecialchars($buy_name).'"><input type="submit" value="Accept"></form></td> <td align="right"><form action="?subtopic=shopsystem" method="POST"><input type="submit" value="Cancel"></form></td></tr> <tr bgcolor="'.$config['site']['darkborder'].'"><td colspan="3"></td></tr> </table> '; } } else { $errormessage .= 'Player with name <b>'.htmlspecialchars($buy_name).'</b> doesn\'t exist. Please <a href="?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a>.'; } } else { $errormessage .= 'Invalid name format. Please <a href="?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a> or contact with administrator.'; } } else { $errormessage .= 'For this item you need <b>'.$buy_offer['points'].'</b> points. You have only <b>'.$user_premium_points.'</b> premium points. Please <a href="?subtopic=shopsystem">select other item</a> or buy premium points.'; } } else { $errormessage .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="?subtopic=shopsystem">select item</a> again.'; } } } } if(!empty($errormessage)) { $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Informations</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.$errormessage.'</b></TD></TR> </table>'; } if(!$set_session) { unset($_SESSION['viewed_confirmation_page']); } } elseif($action == 'show_history') { if(!$logged) { $errormessage .= 'Please login first.'; } else { $items_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($items_history_received)) { foreach($items_history_received as $item_received) { if($account_logged->getId() == $item_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $items_received_text .= '<tr bgcolor="'.$config['site']['lightborder'].'"><td><font color="'.$char_color.'">'.htmlspecialchars($item_received['to_name']).'</font></td><td>'; if($account_logged->getId() == $item_received['from_account']) $items_received_text .= '<i>Your account</i>'; else $items_received_text .= htmlspecialchars($item_received['from_nick']); $items_received_text .= '</td><td>'.htmlspecialchars($item_received['offer_id']).'</td><td>'.htmlspecialchars($item_received['price']).'</td><td>'.date("j F Y, H:i:s", $item_received['trans_start']).'</td>'; if($item_received['trans_real'] > 0) $items_received_text .= '<td>'.date("j F Y, H:i:s", $item_received['trans_real']).'</td>'; else $items_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>'; $items_received_text .= '</tr>'; } } $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'"></TD></TR> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><center><B>Transactions History</B></center></TD></TR> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'"></TD></TR> </table><br>'; if(!empty($items_received_text)) { $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white colspan="6"><B>Item Transactions</B></TD></TR> <tr bgcolor="'.$config['site']['darkborder'].'"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Price</b></td><td><b>Bought on page</b></td><td><b>Received on OTS</b></td></tr> '.$items_received_text.' </table><br />'; } if(empty($items_received_text)) $errormessage .= 'You did not buy/receive any item.'; } if(!empty($errormessage)) { $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Informations</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.$errormessage.'</b></TD></TR> </table>'; } } $main_content .= '<br><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Premium Points</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b><font color="green">You have premium points: </font></b>'.$user_premium_points.'</TD></TR> </table>'; } else $main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=center CLASS=white ><B>Shop Information</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><center>Shop is currently closed. [to admin: edit it in \'config/config.php\']</TD></TR> </table>';
      Se puder ajustar pra mim agradeceria muito REP+
    • Por Maniaco
      Boa Noite TibiaKing!!!
       
      Bom estou procurando uma base de um WEBSITE DE !!DBO!!
      Quem poder DIPONIBILIZAR AGRADEÇO.


      A alguns dias ando procurando essa base mas sem sucesso algum, e gostaria de verificar com vocês se já foi dispobilizado ou até mesmo alguem possa fornecer esse WebSite. para o meu futuro projeto!

      Segue algumas img para facilizar a localização da base, lembrando que já achei varios sites usando a mesma base! então acredito que já está liberado em alguem site-forum-deepWeb! segue os links de outros servidores que utilizam a mesmo WEBSITE!.

      Link Encurtado: l1nq.com/895iG

      2 Link que usa mesma base de site: l1nq.com/NoC69

      3. Link que utiliza a mesma base. l1nq.com/nLuFZ



       
    • Por Ayron5
      Como essa área está parada a muito tempo, resolvi compartilhar um layout que editei de acordo com meu gosto.
      Deixei simplão mesmo, tá usável e fácil de editar.
      O que vale é ajudar. XD
      Créditos para otpk... e o Benny pois usei o dele como base. Se esqueci de alguém é só avisar.
       
       
      Link: 
       
      Scan:
       
       

    • Por ITALOx
      Olá, Membros do tibiaking.
      Como o @M ustang trouxe o servidor NTO ATOM
       
      Estou trazendo o site do Naruto World. usado pelo os donos do NTO ATOM.
      é um site completo e longe de erros/bugs.
      O que foi retirado:
      Retirado todos os sql injection. Arrumado bugs e erros. Version do xampp:
      Versão xampp:
      V1.8.2-2
      -
      Versão php:
      5
       
      Download:
      Xampp:
      Scan's
       
      Print's
       


       
      Como resolver os erros: 
      Warning: include(C:\xampp\htdocs\system\application\libraries\sysplugins\smarty_internal_data.php): failed to open stream: No such file or directory in C:\xampp\htdocs\system\application\libraries\Smarty.class.php on line 768

      Warning: include(): Failed opening 'C:\xampp\htdocs\system\application\libraries\sysplugins\smarty_internal_data.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\system\application\libraries\Smarty.class.php on line 768

      Fatal error: Class 'Smarty_Internal_Data' not found in C:\xampp\htdocs\system\application\libraries\Smarty.class.php on line 109
       
       
       
       
      Vá até C:\xampp\htdocs\system\application\libraries
      Depois baixe esses arquivo e jogue tudo dentro da pasta sysplugins.
      e pronto, estará funcionando novamente!
      https://www.mediafire.com/file/jfhydg7p81hjbj7/sysplugins.zip/file
       
       
       
      Créditos:
       
      -  Italo 100%
    • Por koyotestark
      Ola pessoas, venho trazer algo aqui que eu armenguei para meu site e queria compartilhar, com vocês que é o CharacterView com skills e outfits.
      O Script de outfit no character view eu peguei do Otland postado pelo averatec e então fiz algumas adições com o pouco que entendo.
      Vamos as explicações?
      Para adicionar a outfit vcs vão precisar de 2 coisas. 
      1 - do script que vou disponibilizar
      2 - das outfits de seu ot. para isso vcs terão que exportar manualmente ou do jeito que souberem, caso seja de ot alternativo, se for de tibia ja vou disponibilizar as outfits do 8.60 que foi coclocado pra dowload junto na postagem do otland.
       
      Instalando view_chacracter.php
      - Vá até a pasta do xamp ou programa onde está seu site e abra a pasta do site, caso seja no xampp será o htdocs.
      Dentro da pasta procure por "SYSTEM", depois "APPLICATION" e depois "VIEWS"
      Cole o view_character.php dentro de VIEWS.
      - Agora para aparecer as outfits, vá em PUBLIC e cole tudo o que estiver dentro da pasta OUTFITTER que são: o arquivo "outfitter.php" e a pasta "outfits"
      - Caso adicione novas outfits siga o modelo das outfits que estão dentro. "lembrando que devem estar sempre na pasta outfit e template" caso seja outfit colorida, coloque a base na pasta template.
      - Caso seu servidor seja alternativo "dragon ball, naruto etc. apague todas as outfits e insira as suas de db/nt, renomeie as suas da seguinte forma "1_2_0_0" alterando somente o primeiro numero que é referente ao ID da outfit.
       
      Eu adicionei apenas 5 skills, pois são os que mais sao usados em meu servidor, caso queira usar mais, basta copiar esta parte
      e colocar abaixo ou acima e mudar o skill ID referente ao skill, sendo? 
      0 fist, 1 club, 2 sword, 3 axe, 4 distance, 5 shield e 6 fishing.
      E renomear como desejar
       
      - Caso queira remover as barras horizontais do fundo, basta remover este trecho 
      bgcolor="#D4C0A1"  
      Demonstração:
      Eu fiz questão de usar uma outfit 64px para mostrar o que acontece quando for assim.
      Optei por upar em mais de 1 servidor.
      Arquivos:
      Outfitter + Character View GoogleDrive
      Outfitter + Character View Mediafire
      Outfitter + Character View Mega
      Outfitter + Character View.zip
      SCAN:
      https://www.virustotal.com/gui/file/4e35ee20732efb1e7df9196416bd40b05ea92230f629f9ba427d32dfdb7b8f71/detection
      Creditos: 
      Eu: Kira Conquest/Kira Stark - por editarr e adicionar skill bar
      averatec do Otland onde eu peguei o outfitter
      eu não lembro onde eu peguei o script mana e health bar
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo