Ir para conteúdo

Featured Replies

Postado

Estou utilizando o MyAcc, e, por acaso, instalei por cima de outra database. Agora, quando eu crio outras contas no myacc, elas nao logam, mesmo estando na database, somente a conta de quando criei no modernacc.
O que poderia ser?

  • Respostas 23
  • Visualizações 8.7k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • A segunda tu deixou criptografando ainda, só deixar assim:   $config_salt_enabled = fieldExist('salt', 'accounts');             if($account_logged->isLoaded() && encrypt($login_passwo

  • Resolveu!

  • Muito simples, acesse o arquivo config.php e de ctrl+f em: character_samples, dentro desse vetor (array) você somente precisa adicionar o ID(da vocação) do Sample e o nome dela, seguindo a ordem: ID =

Posted Images

Postado
  • Autor
Agora, cesarfilho55 disse:

Estou utilizando o MyAcc, e, por acaso, instalei por cima de outra database. Agora, quando eu crio outras contas no myacc, elas nao logam, mesmo estando na database, somente a conta de quando criei no modernacc.
O que poderia ser?


Provavelmente é problema no salt. Seu jogo não deve utilizar salt, mas o site está utilizando salt na hora de criptografar sua senha. Para corrigir isso, faça 1 teste. Confira se a conta criada no site, loga no site e se loga no jogo. Se logar somente no site, é o salt que ele está aplicando. O que você precisa fazer para corrigir isso é acessar o arquivo createaccount.php no diretório system/pages/createaccount.php e dar ctrl+f nisto:
      

$config_salt_enabled = $db->hasColumn('accounts', 'salt');
if($config_salt_enabled)
{
  $salt = generateRandomString(10, false, true, true);
  $password = $salt . $password;
}


Altere a linha que está escrito $password = $salt . $password para $password = $password; ficando assim:
 

$config_salt_enabled = $db->hasColumn('accounts', 'salt');
if($config_salt_enabled)
{
  $salt = generateRandomString(10, false, true, true);
  $password = $password;
}


Basicamente retiramos a inserção de 10 caracteres aleatórios em nossa senha antes de criptografar ela, agora vamos criptografar somente o que foi digitado no campo password.
Agora acesse o arquivo login.php no diretório system/login.php, de ctrl+f em $config_salt_enabled = $db->hasColumn('accounts', 'salt');, você vai encontrar isto:
 

$config_salt_enabled = $db->hasColumn('accounts', 'salt');
	if($account_logged->isLoaded() && encrypt(($config_salt_enabled ? $account_logged->getCustomField('salt') : '') . $login_password) == $account_logged->getPassword()
                && (!isset($t) || $t['attempts'] < 5)
                )
            {
                setSession('account', $account_logged->getId());
                setSession('password', encrypt(($config_salt_enabled ? $account_logged->getCustomField('salt') : '') . $login_password));
                if($remember_me) {
                    setSession('remember_me', true);
                }


Aqui vamos remover a criptografia do salt para podermos acessar nossa conta sem utilizar o valor do salt na hora de conferir a senha com o banco de dados. Altere o trecho do código acima pelo seguinte código:
 

$config_salt_enabled = $db->hasColumn('accounts', 'salt');
	if($account_logged->isLoaded() && encrypt($login_password) == $account_logged->getPassword() && (!isset($t) || $t['attempts'] < 5))
		{
        	setSession('account', $account_logged->getId());
            setSession('password', encrypt($login_password));
            if($remember_me) {
            	setSession('remember_me', true);
            }
		}


Salve o arquivo, crie 1 nova conta em seu site e tente logar tanto no site quanto no jogo, se o problema era o salt, então ele estará resolvido e você irá conseguir acessar normalmente sua conta tanto no site quanto no jogo.

Postado
37 minutos atrás, Endless disse:


Provavelmente é problema no salt. Seu jogo não deve utilizar salt, mas o site está utilizando salt na hora de criptografar sua senha. Para corrigir isso, faça 1 teste. Confira se a conta criada no site, loga no site e se loga no jogo. Se logar somente no site, é o salt que ele está aplicando. O que você precisa fazer para corrigir isso é acessar o arquivo createaccount.php no diretório system/pages/createaccount.php e dar ctrl+f nisto:
      



$config_salt_enabled = $db->hasColumn('accounts', 'salt');
if($config_salt_enabled)
{
  $salt = generateRandomString(10, false, true, true);
  $password = $salt . $password;
}


Altere a linha que está escrito $password = $salt . $password para $password = $password; ficando assim:
 



$config_salt_enabled = $db->hasColumn('accounts', 'salt');
if($config_salt_enabled)
{
  $salt = generateRandomString(10, false, true, true);
  $password = $password;
}


Basicamente retiramos a inserção de 10 caracteres aleatórios em nossa senha antes de criptografar ela, agora vamos criptografar somente o que foi digitado no campo password.
Agora acesse o arquivo login.php no diretório system/login.php, de ctrl+f em $config_salt_enabled = $db->hasColumn('accounts', 'salt');, você vai encontrar isto:
 



$config_salt_enabled = $db->hasColumn('accounts', 'salt');
	if($account_logged->isLoaded() && encrypt(($config_salt_enabled ? $account_logged->getCustomField('salt') : '') . $login_password) == $account_logged->getPassword()
                && (!isset($t) || $t['attempts'] < 5)
                )
            {
                setSession('account', $account_logged->getId());
                setSession('password', encrypt(($config_salt_enabled ? $account_logged->getCustomField('salt') : '') . $login_password));
                if($remember_me) {
                    setSession('remember_me', true);
                }


Aqui vamos remover a criptografia do salt para podermos acessar nossa conta sem utilizar o valor do salt na hora de conferir a senha com o banco de dados. Altere o trecho do código acima pelo seguinte código:
 



$config_salt_enabled = $db->hasColumn('accounts', 'salt');
	if($account_logged->isLoaded() && encrypt($login_password) == $account_logged->getPassword() && (!isset($t) || $t['attempts'] < 5))
		{
        	setSession('account', $account_logged->getId());
            setSession('password', encrypt($login_password));
            if($remember_me) {
            	setSession('remember_me', true);
            }
		}


Salve o arquivo, crie 1 nova conta em seu site e tente logar tanto no site quanto no jogo, se o problema era o salt, então ele estará resolvido e você irá conseguir acessar normalmente sua conta tanto no site quanto no jogo.

As linhas estão um pouco diferentes, acabou por não funcionar.

		$config_salt_enabled = fieldExist('salt', 'accounts');
		if($config_salt_enabled)
		{
			$salt = generateRandomString(10, false, true, true);
			$password = $password;
		}

e a segunda

			$config_salt_enabled = fieldExist('salt', 'accounts');
			if($account_logged->isLoaded() && encrypt(($config_salt_enabled ? $account_logged->getCustomField('salt') : '') . $login_password) == $account_logged->getPassword()
				&& (!isset($t) || $t['attempts'] < 5)
				)
			{
				setSession('account', $account_logged->getId());
				setSession('password', encrypt(($config_salt_enabled ? $account_logged->getCustomField('salt') : '') . $login_password));
				if(isset($_POST['remember_me']))
					setSession('remember_me', true);

Estou utilizando o myacc 0.7.1

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

Postado
  • Autor
1 minuto atrás, cesarfilho55 disse:

As linhas estão um pouco diferentes, acabou por não funcionar.


		$config_salt_enabled = fieldExist('salt', 'accounts');
		if($config_salt_enabled)
		{
			$salt = generateRandomString(10, false, true, true);
			$password = $password;
		}

e a segunda


			$config_salt_enabled = fieldExist('salt', 'accounts');
			if($account_logged->isLoaded() && encrypt(($config_salt_enabled ? $account_logged->getCustomField('salt') : '') . $login_password) == $account_logged->getPassword()
				&& (!isset($t) || $t['attempts'] < 5)
				)
			{
				setSession('account', $account_logged->getId());
				setSession('password', encrypt(($config_salt_enabled ? $account_logged->getCustomField('salt') : '') . $login_password));
				if(isset($_POST['remember_me']))
					setSession('remember_me', true);

 


A segunda tu deixou criptografando ainda, só deixar assim:
 

$config_salt_enabled = fieldExist('salt', 'accounts');
            if($account_logged->isLoaded() && encrypt($login_password) == $account_logged->getPassword()
                && (!isset($t) || $t['attempts'] < 5)
                )
            {
                setSession('account', $account_logged->getId());
                setSession('password', encrypt($login_password));
                if(isset($_POST['remember_me']))
                    setSession('remember_me', true);

 

Postado
6 horas atrás, Endless disse:


A segunda tu deixou criptografando ainda, só deixar assim:
 


$config_salt_enabled = fieldExist('salt', 'accounts');
            if($account_logged->isLoaded() && encrypt($login_password) == $account_logged->getPassword()
                && (!isset($t) || $t['attempts'] < 5)
                )
            {
                setSession('account', $account_logged->getId());
                setSession('password', encrypt($login_password));
                if(isset($_POST['remember_me']))
                    setSession('remember_me', true);

 

Resolveu!

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo