Como posso mostrar mensagens de erro de validação quando o usuário falha na autenticação na visualização de login do UsersController?

10 views
Skip to first unread message

DPFe

unread,
Sep 10, 2020, 5:19:02 AM9/10/20
to CakePHP Tuga

Olá, espero que alguém possa me ajudar, ficaria muito grato  

Como posso mostrar mensagens de erro de validação quando o usuário falha na autenticação na visualização de login do UsersController?  

 Olá, espero que alguém possa me ajudar. Como posso mostrar os erros de validação ao inserir campos de dados incorretos no formulário de login? além disso, edite ao enviar o formulário são exibidos corretamente.

Muito obrigado e espero que alguem possa me ajudar  


UsersTable.png
users login.png
AppController.png
UsersController login .png

Cauan Cabral

unread,
Sep 10, 2020, 8:05:20 AM9/10/20
to CakePHP Tuga
Olá,

A primeira coisa é diferenciar validação de cadastro de autenticação.

Quando você define as regras de validação na sua tabela (UsersTable), você diz o que deve ser verificado no momento que um registro é salvo ou alterado.

Quando você faz o envio de um formulário de login, você não está criando nenhum registro, então não passa pelas validações da sua tabela.

Pelos códigos que você inclui de anexo, parece que você quer mostrar alguma mensagem na tela de login, correto?
Nesse caso, a única informação que você tem (e deveria informar) é se os dados inseridos batem ou não com algum cadastro interno (da forma como você já definiu na ação login).

Seu problema é a mensagem "Nombre de usuario o contraseña incorrectos, inténtalo de nuevo" não aparecer na tela? Caso seja, inclua no seu "Users/login" algo como: <?= $this->Flash->render(); ?>

Att,

--
--
CakePHP Tuga (cakephp-pt)
 
Utilize http://bin.cakephp.org para códigos
Cookbook: http://book.cakephp.org
 
Website do CakePHP: http://cakephp.org/
Website do grupo: http://groups.google.com/group/cakephp-pt?hl=pt-PT
---
Recebeu esta mensagem porque subscreveu ao grupo "CakePHP Tuga" do Grupos do Google.
Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para cakephp-pt+...@googlegroups.com.
Para ver este debate na Web, visite https://groups.google.com/d/msgid/cakephp-pt/350e74d1-2151-4f65-88f7-ffa165c87b13n%40googlegroups.com.


--
Cauan Cabral
----------------
Onde me encontrar: https://cauancabral.net

DPFe

unread,
Sep 10, 2020, 8:12:39 AM9/10/20
to CakePHP Tuga

Muito obrigada pela sua resposta. 

A mensagem "nome de usuário ou senha incorretos" exibe isso. O que eu procurava é que, por exemplo, quando o administrador digita a senha errada, mostra um erro apenas nesse campo, não apenas o erro do flash.  

Cauan Cabral

unread,
Sep 10, 2020, 8:18:41 AM9/10/20
to CakePHP Tuga
Entendi.

Você pode remover o <?= $this->Form->error('password'); ?>
Ele deve ser incluído em formulários de registro/alteração de dados, não precisa na autenticação.

E incluir o trecho que comentei anteriormente: <?= $this->Flash->render(); ?>

Diego Pena

unread,
Sep 10, 2020, 10:17:29 AM9/10/20
to cakep...@googlegroups.com
Obrigado, o que eu estava procurando era fazer isso, mas em Users / login.ctp, essa captura está em Users / add.ctp

Você acha que não é necessário mostrar o erro em cada campo no login?



fdasf.png

Cauan Cabral

unread,
Sep 10, 2020, 10:43:52 AM9/10/20
to CakePHP Tuga
On Thu, Sep 10, 2020 at 11:17 AM Diego Pena <dpfer...@gmail.com> wrote:
Obrigado, o que eu estava procurando era fazer isso, mas em Users / login.ctp, essa captura está em Users / add.ctp

Você acha que não é necessário mostrar o erro em cada campo no login?

Acho que não, você pode simplesmente marcar o campo como 'required' no HTML (pelo FormHelper é possível) para ajudar na usabilidade.

A rotina de autenticação deve ser só isso: autenticação. Se nada for preenchido, ela vai falhar. Se for preenchido de forma incorreta, ela vai falhar.
Se for preenchido valores "válidos", mas que não correspondem a nenhum usuário registrado, ela vai falhar. E é essa a ideia.

Reply all
Reply to author
Forward
0 new messages