Ir para conteúdo
  • Cadastre-se

(Resolvido)quando eu crio o personagem no site fica carrengando e n cria


Ir para solução Resolvido por Nysman,

Posts Recomendados

.Qual servidor ou website você utiliza como base? 

 

Qual o motivo deste tópico? me ajudar 

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

      

 

Você tem o código disponível? Se tiver publique-o aqui: 

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Editado por RicoDesprite (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • RicoDesprite mudou o título para quando eu crio o personagem no site fica carrengando e n cria

É poketibia?

procura por create.php e substitui tudo por:

Spoiler

<div class='errors'> <?php echo error(validation_errors()); ?> </div>
<?php include("public/js/keyboard.php");
global $config;
?>
<script>
    function createAccount() {
        $('.loader').show();
        var form = $('#createAccount').serialize();
        $.ajax({
            url: '<?php echo WEBSITE; ?>/index.php/account/create/1',
              type: 'post',
              data: form,
              success: function(data) {
                  $('.errors').html(data);
                  $('.loader').hide();
              }
        });
    }
</script>
<link rel="stylesheet" type="text/css" href="<?php echo WEBSITE; ?>/public/css/keyboard.css">
<div class='message'>
    <div class='title'>Criar Conta</div>
    <div class='content'> <?php echo form_open('account/create', array('id'=>'createAccount')); ?>
        <fieldset>
            <legend ><img src="https://i.imgur.com/ntXqfLG.png" width="20" height="20"> Conta</legend>
            <div class="table">
                <ul style="width:30%">
                    <li class="even">
                        <label for="name"><i class="far fa-id-card"></i> Conta</label>
                    </li>
                    <li class="odd">
                        <label for="nickname"><i class="fas fa-signature"></i> Nickname</label>
                    </li>
                    <li class="even">
                        <label for="email"><i class="fas fa-envelope"></i> E-mail</label>
                    </li>
                    <li class="odd">
                        <label for="password"><i class="fas fa-key"></i> Senha</label>
                    </li>
                    <li class="even">
                        <label for="repeat"><i class="fas fa-key"></i> Repetir a Senha</label>
                    </li>
                </ul>
                <ul style="width:70%">
                    <li class="even">
                        <input type="text" value="<?php echo set_value('name'); ?>" id="name" class="keyboardInput" name="name"/>
                    </li>
                    <li class="odd">
                        <input type='text' name='nickname' id="nickname" value='<?php echo set_value('nickname'); ?>' />
                    </li>
                    <li class="even">
                        <input  type="text" value="<?php echo set_value('email'); ?>" id="email" name="email"/>
                    </li>
                    <li class="odd">
                        <input type="password" class="keyboardInput" id="password" name="password"/>
                    </li>
                    <li class="even">
                        <input type="password" class="keyboardInput" id="repeat" name="repeat"/>
                    </li>
                </ul>
            </div>
        </fieldset>
        <fieldset>
            <legend><img src="https://i.imgur.com/cZvjPZx.gif" height="20" width="20"> Personagem</legend>
            <div class="table">
                <ul style="width:30%">
                    <li class="even">
                        <label for="character_name"><i class="fas fa-user-circle"></i> Nome:</label>
                    </li>
                    <li class="odd">
                        <label for="sex"><i class="fas fa-venus-mars"></i> Sexo:</label>
                    </li>
                    <li class="even">
                        <label for="vocation"><i class="fas fa-user-tie"></i> Vocação:</label>
                    </li>
                    <li class="odd">
                        <label for="city"><i class="fas fa-map-marker-alt"></i> Cidade:</label>
                    </li>
                    <li class="even">
                        <label for="world"><i class="fas fa-globe-americas"></i> Mundo:</label>
                    </li>
                </ul>
                <ul style="width:70%">
                    <li class="even">
                        <input  type="text" id="character_name" value="<?php echo set_value('character_name'); ?>" name="character_name"/>
                    </li>
                    <li class="odd">
                        <input name="sex" type="radio" id="sex" value="1" checked="checked" />
                        male &nbsp;
                        <input type="radio" id="sex" name="sex" value="0" />
                        female </li>
                    <li class="even">
                        <select name="vocation" class="keyboardInput" id="vocation">
                            <option value="1">Treinador</option>
                        </select>
                    </li>
                    <li class="odd">
                        <select name="city" id="city">
                            <?php 
    foreach($config['cities'] as $city => $name)  
        echo '<option value="'.$city.'">'.$name.'</option>'; ?>
                        </select>
                    </li>
                    <li class="even">
                        <?php 
if(sizeof($config['worlds']) > 1) { ?>
                        <select name="world" id="world">
                            <?php
    foreach($config['worlds'] as $world => $name)  
        echo '<option value="'.$world.'">'.$name.'</option>'; ?>
                        </select>
                        <?php }else{ ?>
                        <input type="hidden" name="world" value="0" />
                        <?php echo $config['worlds'][0]; ?>
                        <?php } ?>
                    </li>
                </ul>
            </div>
        </fieldset>
        <br/>
        <label>&nbsp;</label>
        <input class='sub' type="submit" value="Register"/>
        <?php echo loader(); ?>
        </form>
    </div>    
</div>

 

Agora em system/application/controllers/account.php troca tudo por:

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 = 0) {
            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("Você não tem a chave de recuperação configurada. Clique <a href='".WEBSITE."/index.php/account/generate_recovery_key'><b>aqui</b></a> para criar uma. Recomendamos fortemente criar uma agora 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('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 _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'] = 0;
            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 != 0 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=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('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');
                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(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("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'] = 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($_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");
        }
        
    }

?>
 

 

Agora em system/application/views/account.php troca tudo por:

Spoiler

<?php 
if(empty($acc[0]['rlname']) || empty($acc[0]['location']) || empty($acc[0]['about_me']))
    alert("Você pode considerar atualizar seu perfil público <a href='".WEBSITE."/index.php/profile/update'><b>aqui</b></a>!");

echo "<div class='Account_content'>";
$GLOBALS['characters'] = $characters;
$ide = new IDE;
try { $ide->loadInjections("Account"); } catch(Exception $e) { error($e->getMessage()); }
    echo "<h2>Olá,  <a href='".url('profile/view/'.$_SESSION['nickname'])."'>".ucfirst($_SESSION['nickname'])."</a>!</h2>";
    
    if($messages != 0)
        if($messages == 1)
            echo "<center><b>You have $messages new message! Click <a href='".url('msg/inbox')."'>here</a> to read them!</b></center><br/>";
        else
            echo "<center><b>You have $messages new messages! Click <a href='".url('msg/inbox')."'>here</a> to read them!</b></center><br/>";
?>

<script>$(function(){$("#tabs").tabs();});</script>
<?php

echo "<div id='tabs'>";
echo '<ul>
        <li><a href="#characters">Personagens</a></li>
        <li><a href="#Account">Conta</a></li>
        <li><a href="#community">Comunidade</a></li>
        <li><a href="#logout">Deslogar</a></li>
    </ul>';
    echo "<div id='characters'>";
    echo "<center><a href='".WEBSITE."/index.php/character/create_character'><button class='ide_button' onClick=\"window.location.href='".WEBSITE."/index.php/character/create_character';\">Criar Personagem</button></a></center>";
    echo "<table class='t_char' width='100%'>";
    echo "<tr><td><center><b>Name</b></center></td><td><center><b>Level</b></center></td><td><center><b>Actions</b></center></td></tr>";
    foreach($characters as $row) {
        echo "<tr class='highlight'><td><center><a href=\"".WEBSITE."/index.php/character/view/$row->name\">$row->name</a></center></td><td><center>$row->level</center></td><td><center><a href=\"".WEBSITE."/index.php/Account/editcomment/$row->id\" class='tipsy' title='Edit comment'><img src='".WEBSITE."/public/images/edit.gif'/></a> <a href='#' onClick='if(confirm(\"Are you sure?\")) window.location.href=\"".WEBSITE."/index.php/Account/deletePlayer/$row->id\"' class='tipsy' title='Delete character'><img src='".WEBSITE."/public/images/false.gif'/></a></center></td></tr>";
    
    }
    echo "</table>";
    echo "</div>";
    echo "<div id='Account'>";
    echo "<center><a href='".WEBSITE."/index.php/Account/changepassword'><button class='ide_button' onClick=\"window.location.href='".WEBSITE."/index.php/Account/changepassword';\">Trocar Senha</button></a></center>";
    echo "</div>";
    echo "<div id='community'>";
        echo "<b>Profile</b>";
        echo "<li><a href='".WEBSITE."/index.php/profile/update'>Editar perfil</a></li>";
        echo "<li><a href='".WEBSITE."/index.php/profile/avatar'>Atualizar Avatar</a></li>";
        echo "<br/><b>Messages</b>";
        echo "<li><a href='".WEBSITE."/index.php/msg/inbox'>Inbox</a></li>";
        echo "<li><a href='".WEBSITE."/index.php/msg/outbox'>Saída</a></li>";
        echo "<li><a href='".WEBSITE."/index.php/msg/write'>Escreva novo</a></li>";
    echo "</div>";
    echo "<div id='logout'>";
        echo "<br /><center><b>Você tem certeza que quer sair?</b><br /><br /><a href='".WEBSITE."/index.php/Account/logout'><button class='ide_button' onClick=\"window.location.href='".WEBSITE."/index.php/Account/logout';\">Deslogar</button></a></center>";
    echo "</div>";
echo "</div>";
echo "</div>";

?>

 

Link para o post
Compartilhar em outros sites
20 horas atrás, Nysman disse:

É poketibia?

procura por create.php e substitui tudo por:

  Mostrar conteúdo oculto

<div class='errors'> <?php echo error(validation_errors()); ?> </div>
<?php include("public/js/keyboard.php");
global $config;
?>
<script>
    function createAccount() {
        $('.loader').show();
        var form = $('#createAccount').serialize();
        $.ajax({
            url: '<?php echo WEBSITE; ?>/index.php/account/create/1',
              type: 'post',
              data: form,
              success: function(data) {
                  $('.errors').html(data);
                  $('.loader').hide();
              }
        });
    }
</script>
<link rel="stylesheet" type="text/css" href="<?php echo WEBSITE; ?>/public/css/keyboard.css">
<div class='message'>
    <div class='title'>Criar Conta</div>
    <div class='content'> <?php echo form_open('account/create', array('id'=>'createAccount')); ?>
        <fieldset>
            <legend ><img src="https://i.imgur.com/ntXqfLG.png" width="20" height="20"> Conta</legend>
            <div class="table">
                <ul style="width:30%">
                    <li class="even">
                        <label for="name"><i class="far fa-id-card"></i> Conta</label>
                    </li>
                    <li class="odd">
                        <label for="nickname"><i class="fas fa-signature"></i> Nickname</label>
                    </li>
                    <li class="even">
                        <label for="email"><i class="fas fa-envelope"></i> E-mail</label>
                    </li>
                    <li class="odd">
                        <label for="password"><i class="fas fa-key"></i> Senha</label>
                    </li>
                    <li class="even">
                        <label for="repeat"><i class="fas fa-key"></i> Repetir a Senha</label>
                    </li>
                </ul>
                <ul style="width:70%">
                    <li class="even">
                        <input type="text" value="<?php echo set_value('name'); ?>" id="name" class="keyboardInput" name="name"/>
                    </li>
                    <li class="odd">
                        <input type='text' name='nickname' id="nickname" value='<?php echo set_value('nickname'); ?>' />
                    </li>
                    <li class="even">
                        <input  type="text" value="<?php echo set_value('email'); ?>" id="email" name="email"/>
                    </li>
                    <li class="odd">
                        <input type="password" class="keyboardInput" id="password" name="password"/>
                    </li>
                    <li class="even">
                        <input type="password" class="keyboardInput" id="repeat" name="repeat"/>
                    </li>
                </ul>
            </div>
        </fieldset>
        <fieldset>
            <legend><img src="https://i.imgur.com/cZvjPZx.gif" height="20" width="20"> Personagem</legend>
            <div class="table">
                <ul style="width:30%">
                    <li class="even">
                        <label for="character_name"><i class="fas fa-user-circle"></i> Nome:</label>
                    </li>
                    <li class="odd">
                        <label for="sex"><i class="fas fa-venus-mars"></i> Sexo:</label>
                    </li>
                    <li class="even">
                        <label for="vocation"><i class="fas fa-user-tie"></i> Vocação:</label>
                    </li>
                    <li class="odd">
                        <label for="city"><i class="fas fa-map-marker-alt"></i> Cidade:</label>
                    </li>
                    <li class="even">
                        <label for="world"><i class="fas fa-globe-americas"></i> Mundo:</label>
                    </li>
                </ul>
                <ul style="width:70%">
                    <li class="even">
                        <input  type="text" id="character_name" value="<?php echo set_value('character_name'); ?>" name="character_name"/>
                    </li>
                    <li class="odd">
                        <input name="sex" type="radio" id="sex" value="1" checked="checked" />
                        male &nbsp;
                        <input type="radio" id="sex" name="sex" value="0" />
                        female </li>
                    <li class="even">
                        <select name="vocation" class="keyboardInput" id="vocation">
                            <option value="1">Treinador</option>
                        </select>
                    </li>
                    <li class="odd">
                        <select name="city" id="city">
                            <?php 
    foreach($config['cities'] as $city => $name)  
        echo '<option value="'.$city.'">'.$name.'</option>'; ?>
                        </select>
                    </li>
                    <li class="even">
                        <?php 
if(sizeof($config['worlds']) > 1) { ?>
                        <select name="world" id="world">
                            <?php
    foreach($config['worlds'] as $world => $name)  
        echo '<option value="'.$world.'">'.$name.'</option>'; ?>
                        </select>
                        <?php }else{ ?>
                        <input type="hidden" name="world" value="0" />
                        <?php echo $config['worlds'][0]; ?>
                        <?php } ?>
                    </li>
                </ul>
            </div>
        </fieldset>
        <br/>
        <label>&nbsp;</label>
        <input class='sub' type="submit" value="Register"/>
        <?php echo loader(); ?>
        </form>
    </div>    
</div>

 

Agora em system/application/controllers/account.php troca tudo por:

  Mostrar conteúdo oculto

<?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("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("Você não tem a chave de recuperação configurada. Clique <a href='".WEBSITE."/index.php/account/generate_recovery_key'><b>aqui</b></a> para criar uma. Recomendamos fortemente criar uma agora 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('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 _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'] = 0;
            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 != 0 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=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('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');
                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(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("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'] = 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($_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");
        }
        
    }

?>
 

 

Agora em system/application/views/account.php troca tudo por:

  Mostrar conteúdo oculto

<?php 
if(empty($acc[0]['rlname']) || empty($acc[0]['location']) || empty($acc[0]['about_me']))
    alert("Você pode considerar atualizar seu perfil público <a href='".WEBSITE."/index.php/profile/update'><b>aqui</b></a>!");

echo "<div class='Account_content'>";
$GLOBALS['characters'] = $characters;
$ide = new IDE;
try { $ide->loadInjections("Account"); } catch(Exception $e) { error($e->getMessage()); }
    echo "<h2>Olá,  <a href='".url('profile/view/'.$_SESSION['nickname'])."'>".ucfirst($_SESSION['nickname'])."</a>!</h2>";
    
    if($messages != 0)
        if($messages == 1)
            echo "<center><b>You have $messages new message! Click <a href='".url('msg/inbox')."'>here</a> to read them!</b></center><br/>";
        else
            echo "<center><b>You have $messages new messages! Click <a href='".url('msg/inbox')."'>here</a> to read them!</b></center><br/>";
?>

<script>$(function(){$("#tabs").tabs();});</script>
<?php

echo "<div id='tabs'>";
echo '<ul>
        <li><a href="#characters">Personagens</a></li>
        <li><a href="#Account">Conta</a></li>
        <li><a href="#community">Comunidade</a></li>
        <li><a href="#logout">Deslogar</a></li>
    </ul>';
    echo "<div id='characters'>";
    echo "<center><a href='".WEBSITE."/index.php/character/create_character'><button class='ide_button' onClick=\"window.location.href='".WEBSITE."/index.php/character/create_character';\">Criar Personagem</button></a></center>";
    echo "<table class='t_char' width='100%'>";
    echo "<tr><td><center><b>Name</b></center></td><td><center><b>Level</b></center></td><td><center><b>Actions</b></center></td></tr>";
    foreach($characters as $row) {
        echo "<tr class='highlight'><td><center><a href=\"".WEBSITE."/index.php/character/view/$row->name\">$row->name</a></center></td><td><center>$row->level</center></td><td><center><a href=\"".WEBSITE."/index.php/Account/editcomment/$row->id\" class='tipsy' title='Edit comment'><img src='".WEBSITE."/public/images/edit.gif'/></a> <a href='#' onClick='if(confirm(\"Are you sure?\")) window.location.href=\"".WEBSITE."/index.php/Account/deletePlayer/$row->id\"' class='tipsy' title='Delete character'><img src='".WEBSITE."/public/images/false.gif'/></a></center></td></tr>";
    
    }
    echo "</table>";
    echo "</div>";
    echo "<div id='Account'>";
    echo "<center><a href='".WEBSITE."/index.php/Account/changepassword'><button class='ide_button' onClick=\"window.location.href='".WEBSITE."/index.php/Account/changepassword';\">Trocar Senha</button></a></center>";
    echo "</div>";
    echo "<div id='community'>";
        echo "<b>Profile</b>";
        echo "<li><a href='".WEBSITE."/index.php/profile/update'>Editar perfil</a></li>";
        echo "<li><a href='".WEBSITE."/index.php/profile/avatar'>Atualizar Avatar</a></li>";
        echo "<br/><b>Messages</b>";
        echo "<li><a href='".WEBSITE."/index.php/msg/inbox'>Inbox</a></li>";
        echo "<li><a href='".WEBSITE."/index.php/msg/outbox'>Saída</a></li>";
        echo "<li><a href='".WEBSITE."/index.php/msg/write'>Escreva novo</a></li>";
    echo "</div>";
    echo "<div id='logout'>";
        echo "<br /><center><b>Você tem certeza que quer sair?</b><br /><br /><a href='".WEBSITE."/index.php/Account/logout'><button class='ide_button' onClick=\"window.location.href='".WEBSITE."/index.php/Account/logout';\">Deslogar</button></a></center>";
    echo "</div>";
echo "</div>";
echo "</div>";

?>

 

 

vlw po

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo