Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Erro ao gravar o hash no banco

Fala ai, eu estou usando o windowns. Ai quando altero o código para enviar o usuário, trocando aspas simples por aspas duplas ele não grava o hash completo.

Gravou somente:

=19=65536,t=4,p=1/1NSX2S+iPrwFZ2gkWn7yiJzhVjwE

Esse é o insert:

vendor\bin\doctrine dbal:run-sql "INSERT INTO usuarios (email, senha) VALUES ('email@gmail.com', '$argon2i$v=19$m=65536,t=4,p=1$NjgyMXJtWTRmaWlxLnJPLw$kqiMfHi3xh4xkunGH7Iqj29GSFsuokjQldXE0ynQork');"

Alguma ideia de como posso resolver isso?

7 respostas
solução!

Aqui, Marcos:

https://cursos.alura.com.br/forum/topico-aula-5-atividade-5-banco-nao-grava-senha-corretamente-146329

Oi Vinicius, primeiramente obrigado pela atenção, mas ainda assim não deu certo. Eu estou usando o win10, não sei se influencia. Mas troquei as aspas duplas para abrir a query porque caso contrário ele da um erro no @. Tentei usar a barra no @ e não deu também,

Query usada:

vendor\bin\doctrine dbal:run-sql "INSERT INTO usuarios (email, senha) VALUES ('renatobonario@gmail.com', '\$argon2i\$v=19\$m=65536,t=4,p=1\$NjgyMXJtWTRmaWlxLnJPLw\$kqiMfHi3xh4xkunGH7Iqj29GSFsuokjQldXE0ynQork');"

Com barra antes

  [16]=>
  array(3) {
    ["id"]=>
    string(2) "17"
    ["email"]=>
    string(23) "renatobonario@gmail.com"
    ["senha"]=>
    string(22) "\\=19\=65536,t=4,p=1\\"
  }
}

Com barra após o sinal

 [15]=>
 array(3) {
    ["id"]=>
    string(2) "16"
    ["email"]=>
    string(23) "renatobonario@gmail.com"
    ["senha"]=>
    string(101) "$\argon2i$\v=19$\m=65536,t=4,p=1$\NjgyMXJtWTRmaWlxLnJPLw$\kqiMfHi3xh4xkunGH7Iqj29GSFsuokjQldXE0ynQork"
  }
}

Opa, Marcos. Como o tópico foi marcado como resolvido eu não recebi notificação dessa resposta. Você continua com o problema?

Vinícius eu continuo sim, se puder ajudar eu ficaria grato. Até abri outro tópico... MAs continuo com o problema sim.

Eu não tenho Windows aqui então não consigo reproduzir, mas funciona se você trocar as aspas? Onde é ' trocar por " e vice-versa?

Quando eu uso o script assim:

vendor\bin\doctrine dbal:run-sql 'INSERT INTO usuarios (email, senha) VALUES ("renatobonario@gmail.com" , "$argon2i$v=19$m=65536,t=4,p=1$NjgyMXJtWTRmaWlxLnJPLw$kqiMfHi3xh4xkunGH7Iqj29GSFsuokjQldXE0ynQork");'

Apresenta o seguinte erro:

In AbstractSQLiteDriver.php line 59:

An exception occurred while executing 'INSERT INTO usuarios (email, senha) VALUES (renatobonario@gmail.com , $argon2i$v=19$m=65536,t=4,p=1$NjgyMXJtWTRmaWlxLnJPLw$kqiMfHi3xh4xkunGH7Iqj29GSFsuokjQldXE0ynQork);':                                                                                              

SQLSTATE[HY000]: General error: 1 near "@gmail": syntax error                                                                                            

In PDOConnection.php line 43:
SQLSTATE[HY000]: General error: 1 near "@gmail": syntax error  

In PDOConnection.php line 41:
SQLSTATE[HY000]: General error: 1 near "@gmail": syntax error 

Honestamente não sei o motivo disso acontecer. :'( Dessa forma funciona?

vendor\bin\doctrine dbal:run-sql 'INSERT INTO usuarios (email, senha) VALUES (\'renatobonario@gmail.com\' , \'$argon2i$v=19$m=65536,t=4,p=1$NjgyMXJtWTRmaWlxLnJPLw$kqiMfHi3xh4xkunGH7Iqj29GSFsuokjQldXE0ynQork\');'

Caso contrário, você pode usar algum cliente pra se conectar ao banco em questão ou criar um scriptzinho em PHP mesmo que executa essa query, só pra você não ficar travado nesse detalhe.