Página 1 de 1

[Resolvido] Validação - edit.php

Enviado: 25 Jun 2018, 20:04
por Cláudio
Olá pessoal,

na página que altera os dados do cliente "edit.php", quando tem algum erro de validação no preenchimento do formulário o sistema não abre a página, que no caso seria a mesma.

O camando 'return !$this->error;' retorna pra 'Minha conta' se não tem erro, mas em caso de erro de validação não abre a mesma página de edição.

Fiz isso abaixo pra teste, assim abre a página, mas não aparece as mensagens apontando o campo a ser corrigido.
if ($this->error == true){
$this->response->redirect($this->url->link('account/edit', '', true));
}

Gostaria de saber porque o sistema não está encontrando o caminho. Isto acontece também na edição do endereço e senha.

Agradeço a atenção.

Re: Validação - edit.php

Enviado: 26 Jun 2018, 00:56
por Manoel Vidal
Olá @Cláudio.

Qual a versão do seu OpenCart?

Re: Validação - edit.php

Enviado: 26 Jun 2018, 11:08
por Cláudio
Olá Vidal, a versão é 3.0.2.0

Re: Validação - edit.php

Enviado: 27 Jun 2018, 14:08
por Manoel Vidal
Testei a edição dos dados do cliente na versão 3.0.2.0 e ela funcionou sem problemas, habilitando todas as validações de campos normais e personalizados?

Você está utilizando o tema padrão do OpenCart?
Se não, faça um teste utilizando o tema padrão.

Você está utilizando alguma extensão/modificação de validação no cadastro do cliente?
Se sim, desative a modificação, pois ela pode está causando o problema.

Espero ter ajudado. :)

Re: Validação - edit.php

Enviado: 27 Jun 2018, 17:49
por Cláudio
O tema é o padrão. Tenho alguns scrips para validação, mas fiz uns testes sem eles e não interferiu no problema.

Tem como passar o erro de validação através desta linha, chamando a página com o erro de validação?
$this->response->redirect($this->url->link('account/edit', '', true));

Passando um $data, ou algo assim.

De for possível já resolve o problema.

Re: Validação - edit.php

Enviado: 27 Jun 2018, 19:33
por Manoel Vidal
Se é só para depurar, basta que no arquivo controller (edit.php) você mande as informações para o log de erros do OpenCart com a função abaixo:
Código: Selecionar todos
$this->log->write($variavel_que_voce_quer_ver_o_conteudo);

Assim qualquer informação que você queira depurar será registrada na página de log de erros dentro da administração.

Não entendi bem o que você quer, mas é interessante que você entenda que o OpenCart segue o modelo MVC+L com OO, ou seja, se você é programador PHP, conhecedor de Orientação a Objeto e conhece o minimo do conceito de MVC, não tem muito segredo para fazer alteração nos comportamentos do OpenCart.

Espero ter ajudado. :)

Re: Validação - edit.php

Enviado: 28 Jun 2018, 19:34
por Cláudio
Vou deixar essa linha abaixo pra voltar pra mesma página em caso de erro de validação.

if ($this->error == true){
$this->response->redirect($this->url->link('account/edit', '', true));
}

É um quebra-galho mas não tem outro jeito. Fica melhor assim do que abrir uma página em branco.
Estranho é que no cadastro funciona tudo certo, mas nas páginas de edição da conta não tem jeito.

Obrigado pela atenção.