Postado Julho 3, 2016 8 anos Criei um site com o Xampp, até ai tudo bem, mais tentei criar uma conta no site e deu esse erro A PHP Error was encountered Severity: Notice Message: Undefined index: invalidNameTags Filename: controllers/account.php Line Number: 148 A PHP Error was encountered Severity: Warning Message: in_array() expects parameter 2 to be array, null given Filename: controllers/account.php Line Number: 148 Não sei como resouver, se poderem me ajudar agradeço !!! Eu uso a base do DxP OpenSource, postada recentemente. Editado Julho 3, 2016 8 anos por Felipe Souzah esqueci tags (veja o histórico de edições)
Postado Julho 4, 2016 8 anos Esta é uma mensagem automática! Este tópico foi movido para a área correta.Pedimos que você leia as regras do fórum. Spoiler This is an automated message! This topic has been moved to the correct area.Please read the forum rules. ➥ Regras | Seções OTServ | Seções BOT
Postado Julho 5, 2016 8 anos Você removeu do config.php duas variável que estão recebendo valores para o armazenamento no banco de dados !
Postado Setembro 8, 2016 8 anos system/application/controllers/account.php Spoiler <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?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 = 0) { if($action == 1) success("Seu novo personagem foi criado!"); if($action == 2) success("Seu apelido foi criado!"); if($action == 3) success("Você excedeu o Limite de Characters por Conta."); if($action == 4) success("Seu perfil foi atualizado."); if($action == 5) success("Seu avatar foi atualizado!"); $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('Houve um problema durante o carregamento da conta. Err code: 220212072010 mais detalhes: '.$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("Você não possui uma Recovery Key, clique <a href='".WEBSITE."/index.php/account/generate_recovery_key'><b>aqui</b></a> para gerar uma. Recomendamos que guarde ela por razões de segurança."); /* 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('Houve um problema durante o carregamento da conta. Err code: 220212072010 mais detalhes: '.$e->getMessage());} if($account->isLoaded()) { $this->form_validation->set_message('_account_exists', 'Conta com este nome já existe.');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 está incorreto.'); return false; } } function _nicknameExists($name) { $this->load->model("account_model"); if($this->account_model->nicknameExists($name)) { $this->form_validation->set_message('_nicknameExists', 'Este apelido já existe.'); 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', 'Este E-mail está sendo usado por outra Conta.'); 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', 'Já existe um char com este nome, por favor escolha outro.'); 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 _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 != 0 and $id != 1) { $this->form_validation->set_message('_checkSex', 'Unknown Sex'); return false; } else return true; } // Function which make the player more real by tatu hunter // Eg: elder'Druid = Locaa // elder'druid = Elder'druid // druid theMaster = Druid themaster function strFirst($name) { $name = explode(' ', trim($name)); for($i=0, $t = sizeof($name); $i<$t; ++$i) for($j=0, $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 = 0) { 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 == 0) { $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('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['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->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(0,$sample->getSkill(0)); $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 == 0) $ide->redirect(WEBSITE.'/index.php/account'); else $ide->criticalRedirect(WEBSITE.'/index.php/account'); } } catch(Exception $e) { error($e->getMessage()); } } else { if($ajax == 0) $cap = create_captcha($vals); } } if($ajax == 0) { $_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 = 0) { if((int) $action == 1) success("Você Deslogou."); if((int) $action == 2) success("Conta Recuperada com Sucesso!"); $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'] = 0; $_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($this->Account_model->getRecoveryKey($_SESSION['name'])) { alert("<b>Você já possui uma Recovery Key.</b>"); return false; } if($_POST) { $data['info'] = ''; $key = $this->Account_model->generateKey($_SESSION['name']); success("<center><font size='4'>$key</font></center>"); alert("<b>Salve esta Recovery Key, Caso a perca não poderá Recuperar a sua conta.<br>ATENÇÃO › A Staff não se Responsabiliza por sua Recovery Key!</b>"); } else $data['info'] = '<center id=\'info\'><b>Clique no Botão abaixo para Gerar uma Recovery Key.<br>ATENÇÃO › Esta Recovery Key será passada apenas uma vez, Recomendado guardar no seu Computador por Razões de Segurança!</b></center><br><center><input type=\'submit\' value=\'Gerar\' 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("Sua senha foi Trocada com Sucesso!"); $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("Seu Comentá foi Atualizado!"); $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"); } } ?> provavelmente vai dar outro erro posta que eu te ajudo
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.