Ir para conteúdo
  • 0

Erro ao tentar qualquer conta no site


Someone

Pergunta

Quando tento logar qualquer acc no Gesior, independente de é conta admin ou player normal, está aparecendo este erro abaixo e o site não funciona mais:

Citar
Fatal error: Uncaught Error: Call to a member function fetch() on bool in D:\xampp\htdocs\classes\account.php:35 Stack trace: #0 D:\xampp\htdocs\classes\account.php(351): Account->load('teste', 'name') #1 D:\xampp\htdocs\classes\visitor.php(39): Account->loadByName('teste') #2 D:\xampp\htdocs\classes\visitor.php(30): Visitor::loadAccount() #3 D:\xampp\htdocs\classes\visitor.php(67): Visitor::getAccount() #4 D:\xampp\htdocs\system\load.compat.php(56): Visitor::isLogged() #5 D:\xampp\htdocs\index.php(48): include_once('D:\\xampp\\htdocs...') #6 {main} thrown in D:\xampp\htdocs\classes\account.php on line 35

 

 

No jogo eu consigo logar normalmente. Já testei 3 websites e aparecem o mesmo erro. Se eu limpo o cache no navegador o site volta ao normal, mas se tento logar qualquer conta novamente, aparece o erro e o site para de funcionar novamente..

 

Segue abaixo como está o meu arquivo htdocs/classes/account.php:

Citar
<?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 static $fields = array('id', 'name', 'password', 'secret', 'secret_status', 'premdays', 'coins', 'lastday', 'email', 'key', 'create_ip', 'creation', 'page_access', 'location', 'rlname', 'birth_date', 'gender', 'email_new', 'email_new_time', 'email_code', 'next_email', 'last_post', 'flag', 'vote', 'loyalty_points', 'guild_points', 'player_sell_bank', 'proxy_id', 'vip_time');
	public $data = array('name' => NULL, 'password' => NULL, 'secret' => NULL, 'secret_status' => 0, 'premdays' => 0, 'coins' => 0, 'lastday' => 0, 'email' => NULL, 'key' => NULL, 'create_ip' => 0, 'creation' => 0, 'page_access' => 0, 'location' => NULL, 'rlname' => NULL, 'birth_date' => NULL, 'gender' => NULL, 'email_new' => NULL, 'email_new_time' => 0, 'email_code' => NULL, 'next_email' => 0, 'last_post' => 0, 'flag' => NULL, 'vote' => 0, 'loyalty_points' => 0, 'guild_points' => 0, 'player_sell_bank' => 0, 'proxy_id' => 0, 'vip_time' => 0);
	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
			throw new InvalidArgumentException('Wrong Account search_by type.');
		$fieldsArray = array();
		foreach (self::$fields as $fieldName)
			$fieldsArray[$fieldName] = $this->getDatabaseHandler()->fieldName($fieldName);

		//echo 'SELECT ' . implode(', ', $fieldsArray) . ' FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $search_string;
		$this->data = $this->getDatabaseHandler()->query('SELECT ' . implode(', ', $fieldsArray) . ' FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $search_string)->fetch();
	}

	public function getSecret()
	{
		return $this->data['secret'];
	}

	public function setSecret($secret)
	{
		$this->data['secret'] = $secret;
	}

	public function getSecretCode()
	{
		if (self::getSecret() != NULL) {
			return self::getSecret();
		}

		return NULL;
	}

	public function getSecretStatus()
	{
		return $this->data['secret_status'];
	}

	public function setSecretStatus($status)
	{
		$this->data['secret_status'] = ($status === TRUE ? 1 : 0);
	}

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

	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]);
				}

			//echo 'INSERT INTO ' . $this->getDatabaseHandler()->tableName(self::$table) . ' (' . implode(', ', $keys) . ') VALUES (' . implode(', ', $values) . ')';
			$this->getDatabaseHandler()->query('INSERT INTO ' . $this->getDatabaseHandler()->tableName(self::$table) . ' (' . implode(', ', $keys) . ') VALUES (' . implode(', ', $values) . ')');
			//            var_dump('INSERT INTO ' . $this->getDatabaseHandler()->tableName(self::$table) . ' (' . implode(', ', $keys) . ') VALUES (' . implode(', ', $values) . ')');
			//            print_r('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]);
			if ($key == 'player_sell_bank' && $this->data["player_sell_bank"] == '')
				$this->data["player_sell_bank"] = 0;

			//            echo 'UPDATE ' . $this->getDatabaseHandler()->tableName(self::$table) . ' SET ' . implode(', ', $updates) . ' WHERE ' . $this->getDatabaseHandler()->fieldName('id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id']);
			$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 setID($value)
	{
		$this->data['id'] = $value;
	}

	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 isBanned($forceReload = FALSE)
	{
		$this->loadBans($forceReload);
		return count($this->bans) > 0;
	}

	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 getBanTime($forceReload = FALSE)
	{
		$this->loadBans($forceReload);
		$lastExpires = 0;
		$now = date('Y-m-d h:i:s');
		foreach ($this->bans->data as $ban) {
			if ($ban['expires_at'] <= $now) {
				$lastExpires = 0;
				break;
			}
			if ($ban['expires_at'] > $now && $ban['expires_at'] > $lastExpires)
				$lastExpires = $ban['expires_at'];
		}
		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 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 setLastDay($value)
	{
		$this->data['lastday'] = $value;
	}

	public function setKey($value)
	{
		$this->data['key'] = $value;
	}

	public function getKey()
	{
		return $this->data['key'];
	}

	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['coins'] = $value;
	}

	public function getPremiumPoints()
	{
		return $this->data['coins'];
	}

	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 setLoyalty($value)
	{
		$this->data['loyalty_points'] = $value;
	}

	public function getLoyalty()
	{
		return $this->data['loyalty_points'];
	}

	public function setRLName($value)
	{
		$this->data['rlname'] = $value;
	}

	public function getRLName()
	{
		return $this->data['rlname'];
	}

	public function setBirthDate($value)
	{
		$this->data['birth_date'] = $value;
	}

	public function getBirthDate()
	{
		return $this->data['birth_date'];
	}

	public function setGender($value)
	{
		$this->data['gender'] = $value;
	}

	public function getGender()
	{
		return $this->data['gender'];
	}

	public function setFlag($value)
	{
		$this->data['flag'] = $value;
	}

	public function getFlag()
	{
		return $this->data['flag'];
	}

	public function getEMail()
	{
		return $this->getMail();
	}

	public function getMail()
	{
		return $this->data['email'];
	}

	public function setEMail($value)
	{
		$this->setMail($value);
	}

	public function setMail($value)
	{
		$this->data['email'] = $value;
	}

	public function getPlayersList()
	{
		return $this->getPlayers();
	}

	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')));
			$this->players->load();
		}
		return $this->players;
	}

	public function getID()
	{
		return $this->data['id'];
	}

	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);
		if (!$this->isLoaded())
			$this->loadByEmail($name);
	}

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

	public function findByEmail($email)
	{
		$this->loadByEmail($email);
	}

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

	public function isPremium()
	{
		return ($this->getPremDays() > 0);
	}

	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 getLastLogin()
	{
		return $this->getLastDay();
	}

	public function getLastDay()
	{
		return $this->data['lastday'];
	}
	public function getProxyId()
	{
		return $this->data['proxy_id'];
	}
	public function isVip()
	{
		return $this->data['vip_time'] > time();
	}
	public function getVipTime()
	{
		return $this->data['vip_time'];
	}
	public function setVipTime($value)
	{
		$this->data['vip_time'] = $value;
	}
}

 

 

Agradeço desde já por toda e qualquer ajuda.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
17 horas atrás, Someone disse:

Quando tento logar qualquer acc no Gesior, independente de é conta admin ou player normal, está aparecendo este erro abaixo e o site não funciona mais:

 

No jogo eu consigo logar normalmente. Já testei 3 websites e aparecem o mesmo erro. Se eu limpo o cache no navegador o site volta ao normal, mas se tento logar qualquer conta novamente, aparece o erro e o site para de funcionar novamente..

 

Segue abaixo como está o meu arquivo htdocs/classes/account.php:

 

Agradeço desde já por toda e qualquer ajuda.

Amigo, qual a versão do seu servidor e do seu TFS.

Link para o comentário
Compartilhar em outros sites

  • 0
19 minutos atrás, Fiapera disse:

Amigo, qual a versão do seu servidor e do seu TFS.

Estou usando um server 8.60 com cliente próprio versão extendida, com algumas coisas do tibia 12x. E o TFS é 1.3

Link para o comentário
Compartilhar em outros sites

  • 0
5 minutos atrás, Someone disse:

Estou usando um server 8.60 com cliente próprio versão extendida, com algumas coisas do tibia 12x. E o TFS é 1.3

Pelo que eu vi, você deve ter baixado um servidor global 8.6 que disponibilizou em outro fórum. Se for ele aconselho você tentar mudar ate o seu xamp, ou ent baixa outros site e vai trocando o arquivo que da erro, Eu faço assim no meu site, Único jeito de você ter progresso no seu servidor, cada vez mais vai diminuindo as pessoas para ajudar, Não julgo pq e difícil e chato. 

 

AHH

Sua DB ta limpa?, pq parece que tem algo criado como 'teste'. Tenta troca xampp, tenta ir substituindo os arquivos que da erro, tenta pega uma DB limpa.

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
8 minutos atrás, Fiapera disse:

Pelo que eu vi, você deve ter baixado um servidor global 8.6 que disponibilizou em outro fórum. Se for ele aconselho você tentar mudar ate o seu xamp, ou ent baixa outros site e vai trocando o arquivo que da erro, Eu faço assim no meu site, Único jeito de você ter progresso no seu servidor, cada vez mais vai diminuindo as pessoas para ajudar, Não julgo pq e difícil e chato. 

 

AHH

Sua DB ta limpa?, pq parece que tem algo criado como 'teste'. Tenta troca xampp, tenta ir substituindo os arquivos que da erro, tenta pega uma DB limpa.

 

 

 

então, eu criei essa acc teste no próprio site, mas quando vou logar nela, ou qualquer outra acc tipo a acc do god, ai da o erro, o site cria acc, mas n da pra logar em nenhuma acc, estranho que eu já troquei de site e deu o mesmo erro

Link para o comentário
Compartilhar em outros sites

  • 0
22 minutos atrás, Someone disse:

então, eu criei essa acc teste no próprio site, mas quando vou logar nela, ou qualquer outra acc tipo a acc do god, ai da o erro, o site cria acc, mas n da pra logar em nenhuma acc, estranho que eu já troquei de site e deu o mesmo erro

Talvez o bug e do site, ou da DB, tenta usar uma DB limpa, pesquisa alguma DB aonde o pessoal aconselha, ai vc baixa ela, ou tenta excluir essa conta teste... Caso for a conta do Admim, vc cria outra DB para testar...

Link para o comentário
Compartilhar em outros sites

  • 0
50 minutos atrás, Fiapera disse:

Talvez o bug e do site, ou da DB, tenta usar uma DB limpa, pesquisa alguma DB aonde o pessoal aconselha, ai vc baixa ela, ou tenta excluir essa conta teste... Caso for a conta do Admim, vc cria outra DB para testar...

farei isso para testar, vou começar mudando a database 

Link para o comentário
Compartilhar em outros sites

  • 0

Antes de mudar a DB , tente mudar a versão do seu xampp primeiro por que pode ser que o gesior que você está usando não  é suportando pela versão do xampp e no caso cria muitos erros mesmo.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...