Ir para conteúdo
  • Cadastre-se

Gesior AAC Erro Account,Email Checker Gesior - Otx3


Posts Recomendados

Bom Tive Alguns Problemas Após Colocar A Opção de Password No CreatAccount 

Não sou programador então vim pedir ajudar , daqueles que manja mais do que eu , enfim 

Erros

Spoiler

( ! ) Fatal error: Call to a member function fetch() on boolean in C:\wamp64\www\classes\account.php on line 33

Call Stack

#TimeMemoryFunctionLocation

10.0002249000{main}( )...\index.php:0

20.00771003768include_once( 'C:\wamp64\www\system\load.page.php' )...\index.php:37

30.00801100304include( 'C:\wamp64\www\pages\createaccount.php' )...\load.page.php:7

40.00821104032Account->findByEmail( )...\createaccount.php:262

50.00821104064Account->loadByEmail( )...\account.php:237

60.00821104424Account->load( )...\account.php:48

Spoiler

 

Aqui Está Os Arquivos Que Estão Dando Erro

Spoiler

index.php

 

 

<?php
// comment to show E_NOTICE [undefinied variable etc.], comment if you want make script and see all errors
error_reporting(E_ALL ^ E_STRICT ^ E_NOTICE);

// true = show sent queries and SQL queries status/status code/error message
define('DEBUG_DATABASE',false);

define('INITIALIZED', true);

// if not defined before, set 'false' to load all normal
if(!defined('ONLY_PAGE'))
    define('ONLY_PAGE', false);
    
// check if site is disabled/requires installation
include_once('./system/load.loadCheck.php');

// fix user data, load config, enable class auto loader
include_once('./system/load.init.php');

// DATABASE
include_once('./system/load.database.php');
if(DEBUG_DATABASE)
    Website::getDBHandle()->setPrintQueries(true);
// DATABASE END

// LOGIN
if(!ONLY_PAGE)
    include_once('./system/load.login.php');
// LOGIN END

// COMPAT
// some parts in that file can be blocked because of ONLY_PAGE constant
include_once('./system/load.compat.php');
// COMPAT END

// LOAD PAGE
include_once('./system/load.page.php');
// LOAD PAGE END

// LAYOUT
// with ONLY_PAGE we return only page text, not layout
if(!ONLY_PAGE)
    include_once('./system/load.layout.php');
else
    echo $main_content;
// LAYOUT END

Spoiler

load.page.php

 

<?php
if(!defined('INITIALIZED'))
    exit;

ob_start();
$main_content = '';
include("pages/" . $subtopic . ".php");
$main_content .= ob_get_clean();

Spoiler

ajax_check_account.php

 

<?PHP header("Content-Type: text/html; charset=UTF-8",true);
if(!defined('INITIALIZED'))
    exit;

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

Spoiler

account.php

 

<?php
if(!defined('INITIALIZED'))
    exit;

class Account extends ObjectData
{
    const LOADTYPE_ID = 'id';
    const LOADTYPE_NAME = 'name';
    const LOADTYPE_MAIL = 'email';
    public static $table = 'accounts';
    public $data = array('name' => null, 'password' => null, 'premdays' => null, 'coins' => null, 'lastday' => null, 'email' => null, 'key' => null, 'create_ip' => null, 'creation' => null, 'premium_points' => null, 'page_access' => null, 'location' => null, 'rlname' => null, 'email_new' => null, 'email_new_time' => null, 'email_code' => null, 'next_email' => null, 'last_post' => null, 'flag' => null, 'guild_points' => null);
    public static $fields = array('id', 'name', 'password', 'premdays', 'coins', 'lastday', 'email', 'key', 'create_ip', 'creation', 'premium_points', 'page_access', 'location', 'rlname', 'email_new', 'email_new_time', 'email_code', 'next_email', 'last_post', 'flag', 'guild_points');
    public $players;
    public $playerRanks;
    public $guildAccess;
    public $bans;

    public function __construct($search_text = null, $search_by = self::LOADTYPE_ID)
    {
        if($search_text != null)
            $this->load($search_text, $search_by);
    }

    public function load($search_text, $search_by = self::LOADTYPE_ID)
    {
        if(in_array($search_by, self::$fields))
            $search_string = $this->getDatabaseHandler()->fieldName($search_by) . ' = ' . $this->getDatabaseHandler()->quote($search_text);
        else
            new Error_Critic('', 'Wrong Account search_by type.');
        $fieldsArray = array();
        foreach(self::$fields as $fieldName)
            $fieldsArray[$fieldName] = $this->getDatabaseHandler()->fieldName($fieldName);
        $this->data = $this->getDatabaseHandler()->query('SELECT ' . implode(', ', $fieldsArray) . ' FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $search_string)->fetch();
    }

    public function loadById($id)
    {
        $this->load($id, 'id');
    }

    public function loadByName($name)
    {
        $this->load($name, 'name');
    }

    public function loadByEmail($mail)
    {
        $this->load($mail, 'email');
    }

    public function save($forceInsert = false)
    {
        if(!isset($this->data['id']) || $forceInsert)
        {
            $keys = array();
            $values = array();
            foreach(self::$fields as $key)
                if($key != 'id')
                {
                    $keys[] = $this->getDatabaseHandler()->fieldName($key);
                    $values[] = $this->getDatabaseHandler()->quote($this->data[$key]);
                }
            $this->getDatabaseHandler()->query('INSERT INTO ' . $this->getDatabaseHandler()->tableName(self::$table) . ' (' . implode(', ', $keys) . ') VALUES (' . implode(', ', $values) . ')');
            $this->setID($this->getDatabaseHandler()->lastInsertId());
        }
        else
        {
            $updates = array();
            foreach(self::$fields as $key)
                if($key != 'id')
                    $updates[] = $this->getDatabaseHandler()->fieldName($key) . ' = ' . $this->getDatabaseHandler()->quote($this->data[$key]);
            $this->getDatabaseHandler()->query('UPDATE ' . $this->getDatabaseHandler()->tableName(self::$table) . ' SET ' . implode(', ', $updates) . ' WHERE ' . $this->getDatabaseHandler()->fieldName('id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id']));
        }
    }

    public function getPlayers($forceReload = false)
    {
        if(!isset($this->players) || $forceReload)
        {
            $this->players = new DatabaseList('Player');
            $this->players->setFilter(new SQL_Filter(new SQL_Field('account_id'), SQL_Filter::EQUAL, $this->getID()));
            $this->players->addOrder(new SQL_Order(new SQL_Field('name')));
        }
        return $this->players;
    }
/*
    public function getGuildRanks($forceReload = false)
    {
        if(!isset($this->playerRanks) || $forceReload)
        {
            $this->playerRanks = new DatabaseList('AccountGuildRank');
            $filterAccount = new SQL_Filter(new SQL_Field('account_id', 'players'), SQL_Filter::EQUAL, $this->getID());
            $filterPlayer1 = new SQL_Filter(new SQL_Field('id', 'players'), SQL_Filter::EQUAL, new SQL_Field('player_id', 'guild_membership'));
            $filterPlayer2 = new SQL_Filter(new SQL_Field('rank_id', 'guild_membership'), SQL_Filter::EQUAL, new SQL_Field('id', 'guild_ranks'));
            $filterGuild = new SQL_Filter(new SQL_Field('guild_id', 'guild_ranks'), SQL_Filter::EQUAL, new SQL_Field('id', 'guilds'));
            $filter = new SQL_Filter($filterAccount, SQL_Filter::CRITERIUM_AND, $filterPlayer1);
            $filter = new SQL_Filter($filter, SQL_Filter::CRITERIUM_AND, $filterPlayer2);
            $filter = new SQL_Filter($filter, SQL_Filter::CRITERIUM_AND, $filterGuild);
            $this->playerRanks->setFilter($filter);
        }
        return $this->playerRanks;
    }

    public function loadGuildAccess($forceReload = false)
    {
        if(!isset($this->guildAccess) || $forceReload)
        {
            $this->guildAccess = array();
            foreach($this->getGuildRanks($forceReload) as $rank)
                if($rank->getOwnerID() == $rank->getPlayerID())
                    $this->guildAccess[$rank->getGuildID()] = Guild::LEVEL_OWNER;
                elseif(!isset($this->guildAccess[$rank->getGuildID()]) || $rank->getLevel() > $this->guildAccess[$rank->getGuildID()])
                    $this->guildAccess[$rank->getGuildID()] = $rank->getLevel();
        }
    }

    public function isInGuild($guildId, $forceReload = false)
    {
        $this->loadGuildAccess($forceReload);
        return isset($this->guildAccess[$guildId]);
    }

    public function getGuildLevel($guildId, $forceReload = false)
    {
        $this->loadGuildAccess($forceReload);
        if(isset($this->guildAccess[$guildId]))
            return $this->guildAccess[$guildId];
        else
            return 0;
    }
*/
    public function unban()
    {
        $this->getDatabaseHandler()->query('DELETE FROM ' . $this->getDatabaseHandler()->tableName('account_bans') . ' WHERE ' . $this->getDatabaseHandler()->fieldName('account_id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id']));

        unset($this->bans);
    }

    public function loadBans($forceReload = false)
    {
        if(!isset($this->bans) || $forceReload)
        {
            $this->bans = new DatabaseList('AccountBan');
            $filter = new SQL_Filter(new SQL_Field('account_id'), SQL_Filter::EQUAL, $this->data['id']);
            $this->bans->setFilter($filter);
        }
    }

    public function isBanned($forceReload = false)
    {
        $this->loadBans($forceReload);
        return count($this->bans) > 0;
    }

    public function getBanTime($forceReload = false)
    {
        $this->loadBans($forceReload);
        $lastExpires = 0;
        foreach($bans as $ban)
        {
            if($ban->getExpiresAt() <= 0)
            {
                $lastExpires = 0;
                break;
            }
            if($ban->getExpiresAt() > time() && $ban->getExpiresAt() > $lastExpires)
                $lastExpires = $ban->getExpiresAt();
        }
        return $lastExpires;
    }

    public function delete()
    {
        $this->getDatabaseHandler()->query('DELETE FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $this->getDatabaseHandler()->fieldName('id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id']));

        unset($this->data['id']);
    }

    public function setID($value){$this->data['id'] = $value;}
    public function getID(){return $this->data['id'];}
    public function setName($value){$this->data['name'] = $value;}
    public function getName(){return $this->data['name'];}
    public function setPassword($value)
    {
        $this->data['password'] = Website::encryptPassword($value, $this);
    }
    public function getPassword(){return $this->data['password'];}
    public function setPremDays($value){$this->data['premdays'] = $value;}
    public function getPremDays(){return $this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday']));}
    public function setLastDay($value){$this->data['lastday'] = $value;}
    public function getLastDay(){return $this->data['lastday'];}
    public function setMail($value){$this->data['email'] = $value;}
    public function getMail(){return $this->data['email'];}
    public function setKey($value){$this->data['key'] = $value;}
    public function getKey(){return $this->data['key'];}
/*
 * Custom AAC fields
 * create_ip , INT, default 0
 * premium_points , INT, default 0
 * page_access, INT, default 0
 * location, VARCHAR(255), default ''
 * rlname, VARCHAR(255), default ''
*/
    public function setCreateIP($value){$this->data['create_ip'] = $value;}
    public function getCreateIP(){return $this->data['create_ip'];}
    public function setCreateDate($value){$this->data['creation'] = $value;}
    public function getCreateDate(){return $this->data['creation'];}
    public function setPremiumPoints($value){$this->data['premium_points'] = $value;}
    public function getPremiumPoints(){return $this->data['premium_points'];}
    public function setCoins($value){$this->data['coins'] = $value;}
    public function getCoins(){return $this->data['coins'];}
    public function setGuildPoints($value){$this->data['guild_points'] = $value;}
    public function getGuildPoints(){return $this->data['guild_points'];}
    public function setPageAccess($value){$this->data['page_access'] = $value;}
    public function getPageAccess(){return $this->data['page_access'];}
    
    public function setLocation($value){$this->data['location'] = $value;}
    public function getLocation(){return $this->data['location'];}
    public function setRLName($value){$this->data['rlname'] = $value;}
    public function getRLName(){return $this->data['rlname'];}
    public function setFlag($value){$this->data['flag'] = $value;}
    public function getFlag(){return $this->data['flag'];}
/*
 * for compability with old scripts
*/
    public function getEMail(){return $this->getMail();}
    public function setEMail($value){$this->setMail($value);}
    public function getPlayersList(){return $this->getPlayers();}
    public function getGuildAccess($guildID){return $this->getGuildLevel($guildID);}

    public function isValidPassword($password)
    {
        return ($this->data['password'] == Website::encryptPassword($password, $this));
    }

    public function find($name){$this->loadByName($name);}
    public function findByEmail($email){$this->loadByEmail($email);}
    public function isPremium(){return ($this->getPremDays() > 0);}
    public function getLastLogin(){return $this->getLastDay();}
}

 

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 Clyfe
      MyAAC - Gesior Shop Plugin + Mercado Pago (Pix QRCode)

      Olá pessoal, a um tempo queria integrar a API do Mercado Pago pra realizar pagamento por pix no  MyAAC  que utilizo. Me passaram um tópico de Gateway que fizeram para pagamento com Mercado Pago.
      Essa gateway utiliza IPN para validar os pagamentos e não é integrada com o Gesior Shop. Então liberei essa versão para gesior com base na versão liberada pelo @Under

      O que eu fiz
      Basicamente integrei o Mercado Pago ao Gesior Shop System V7.0 - Alpha e realizei algumas modificações para isso. Tentei seguir ao máximo as mesmas configurações do Gesior Shop então se vc já ta acostumado em utilizar o plugin, vc não vai ter problemas, só abrir o arquivo config.php e colocar suas informações.
      Aproveitei as páginas já criadas pelo Rafhael e apenas fiz algumas modificações para a integração funcionar.
      Outro ponto importante o gateway que peguei de base utiliza o IPN para comunicação, mas hoje em dia o Mercado Pago está descontinuando a notificação IPN por isso eu **REMOVI** a notificação IP e está sendo realizado via **WEBHOOK**. A documentação do mercado pago fornece explicações de [como configurar o webhook](https://www.mercadopago.com.br/developers/pt/docs/your-integrations/notifications/webhooks#bookmark_1._indicar_urls_e_configurar_eventos) no tópico *Indicar URLs e configurar eventos*.

      Importante:
      Ao configurar o webhook no site do mercado pago é solicitado a url de produção. Então você deve colocar a url para /payments-notify/mpnotification
      Por exemplo: https://seudominio/payments-notify/mpnotification
      Outro ponto é que o Secretkey do Webhook é gerado APÓS você adicionar o webhook no Mercado pago.

      Download:
      Zip disponível em anexo
      - Scan: https://www.virustotal.com/gui/file/3630a3b27c4e055dc4144b20809d5e2d4ea71a406d0dc40b143443a8bfea1b83/detection
       
      Imagens:
       
      Observações:
      - Não sei usar direito o virustotal, se tiver algum problema com o Scan, só me comunicar que faço de novo.
      - Fiz na versão mais atual do Gesior Shop System (v7.0-alpha) e não estou certo sobre a compatibilidade com versões mais antigas mas acredito que apenas adicionando os arquivos deve funcionar normalmente com poucas alterações (dependendo da sua versão do Gesior Shop e do PHP).
      - Não modifiquei ou alterei os outros scripts do Gesior Shop System. Apenas incluí a Api do mercado Pago.
      - Não tenho tanta experiência em PHP, muito menos com Plugin para MyAAC. Então é provável que o código não está tão Polido Assim.
      - Se tiverem Dúvidas podem mandar por aqui. Mas não pretendo manter nem oferecer suporte (afinal é gratuito e só quero contribuir com a comunidade)
       
      Integração com versões anteriores:
      Se você quiser integrar com versões antigas (ou talvez novas) do Gesior shop, estes são os arquivos do Mercado pago dentro do plugin:
      - payments\mercadopago.php
      - pages\payments-notify\mpnotification.php
      - config.php E/OU config.php.dist - No final do arquivo está a configuração das variáveis do Mercado Pago.
      - schema.sql - No final do arquivo existe a tabela myaac_mercadopago utilizada para verificações da integração.
       
      Créditos:
      - **Rafhael Oliveira (Discord: @Underewar)** @Under - Por fazer a versão original da integração com Mercado Pago 

      DOWNLOAD
      myaac-mercadoPago-gesior-shop-system-v7.0-alpha.zip

    • Por WooX
      Gesior 2012
      V. Baiak-PvP

      Como disse no tópico do servidor estou apenas postando o conteúdo e não pretendo dar suporte a eventuais duvidas e problemas, só estou postando pra evitar que paguem por algo que pode ser obtido de graça então nem adianta vir me mandar mensagem privada pedindo ajuda que vai ser ignorado.
       
      Se você ainda não viu o tópico sobre o servidor em questão, vale apena conferir, link para acesso abaixo.
       
      Conteúdo

      Assim como com o servidor eu não cheguei a analisar a fundo este conteúdo e vou listar apenas o que me foi dito que contém.
       
      Página Boosted creatures: página funcionando em sincronia com o sistema do servidor, atualizando no site o monstro que está com o boost e exibindo lista dos monstros anteriores da mesma semana. Página Anti entrosa: página em que o usuário pode selecionar as opções que deseja para a war e a própria página exibe a talkaction necessária pra enviar um convite com os parâmetros selecionados . Exibição de Pagamentos: tabela com informação de pedidos e status de pagamento na página de gerenciamento de conta (account management), exibe todas as doações realizadas pelo jogador. Seção de Pagamentos: seção de pagamentos na própria página de gerenciamento de conta (account management), com os seguintes meios de pagamento: PagSeguro, PicPay, PayGol, PayPal e Mercado Pago, sendo todos estes com retorno automático de pontos.  
      Imagens
       
      Créditos

      Nada contido aqui é de minha autoria, tudo foi adquirido pelo dono e idealizador do projeto.
      Créditos ao Maycon por desenvolver alguns sistemas utilizados no site.
       
      Link para Download

       
      Download - Scan
       
      Obs: Link para download de uma database limpa e compatível com o site se encontra no post do servidor.
    • Por Qwizer
      MercadoPago Checkout Transparente (CC)
       
      Abaixo Segue código PHP de pagamento via cartão de credito pelo mercado pago com retorno automático para quem quiser adaptar em seus sites ter uma direção de onde ir 
      testado em Znote e MyAcc.
       

       
       
      https://mega.nz/folder/m4QkWBLS#PIvJ_scVm7w8-5FLlStTHg  
    • Por Argona2509
      Boa tarde venho por aqui pedir ajuda estou com um problema no gesior para criar conta nao aparece vocacao e o nome Nadega Sample
       
       
    • Por Magato
      Galera, boa tarde a todos.
       
      Estou iniciando um servidor com o mapa Pbot e estou com dificuldades em encontrar um website para ele.
       
      Procurei na internet toda e não achei um link que me levasse ao download do Gesior Onix para pbot exclusivo (o link estava quebrado)
       
      Tentei utilizar o Gesior 2012 mas o layout do site e todas as funcionalidades estão bugadas.
       
      Gostaria que alguém pudesse me ajudar e postasse aqui algum link de gesior para PBOT. A versão do meu servidor é 8.60.
       
      Agradeço a quem puder.
       
       
  • Estatísticas dos Fóruns

    96844
    Tópicos
    519599
    Posts
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo