Página 1 de 1

Problema de usuário logar indevidamente em outra conta no site

Enviado: 07 Jan 2020, 17:33
por luck950
Olá, estou com um problema no meu site que é desenvolvido baseado no OpenCart.

Quando se tem, por exemplo, 100 usuários logados ao mesmo tempo, o que está acontecendo: Não é a todo momento que acontece, mais acontece quando se tem um número maior de visitantes.

Quando um usuário cadastra um endereço (antes de criar o cadastro), o mesmo passa a ficar logado na conta de outro usuário. Se este usuário não percebe e finaliza o pedido, o pedido é finalizado na conta do outro usuário, ou seja, o usuário nem chega a criar a conta, apenas cadastra o endereço de entrega e loga indevidamente na conta de outro usuário.

Alguém teria alguma ideia de como resolver isto?

Pelo que percebi, o usuário que ainda não se cadastrou, loga na conta de outro usuário que está conectado ao mesmo momento no site, lembrando que isso está acontecendo quando se tem um número maior de visitantes.

O que pode estar acontecendo?

Alguém tem alguma ideia do que pode ser ou como solucionar este problema?

Obrigado

Re: Problema de usuário logar indevidamente em outra conta no site

Enviado: 07 Jan 2020, 20:46
por Manoel Vidal
Olá @luck950.

Qual versão do OpenCart você está utilizando?

Algumas considerações:

- Se você estiver utilizando o sistema de cache da hospedagem denominado Varnish, você deve desativá-lo, pois esse sistema de cache não é compatível com o OpenCart 3, e causa problemas na exibição das páginas de produtos, carrinho e conta do cliente.
- Se você tiver ativado o recurso Google Speed do cPanel, você deve desativá-lo, pois ele causa problemas na exibição das páginas de produtos, carrinho e conta do cliente.

Re: Problema de usuário logar indevidamente em outra conta no site

Enviado: 08 Jan 2020, 21:09
por luck950
Olá Manoel,

Estou utilizando a Versão 3.0.3.2 (Brasil 1.4.3). Eu não tenho nenhum destes recursos que você mencionou ativados.

Algumas considerações: Eu já utilizo este site opencart há três meses e isso ocorreu em quatro ocasiões, da mesma forma: Um cliente estava logado em sua conta, outro visitante acabava de cadastrar o endereço. Aí este visitante, sem conta registrada ainda, logava na conta do outro cliente e inclusive finalizava o pedido na conta do outro cliente. Portanto, ao invés de cadastrar sua conta, finalizava o seu pedido com o endereço correto e tudo só que na conta de um cliente existente pois logou indevidamente em um cadastro existente.

O pior que o opencart está funcionando, aparentemente, sem erros. Apenas, raramente, em algumas ocasiões, ocorreu este erro grave de um visitante sem conta acaba de cadastrar um endereço e logar na conta de outro cliente.

Não tenho ideia do que possa ser. Será que é problema de cache da hospedagem?

Re: Problema de usuário logar indevidamente em outra conta no site

Enviado: 09 Jan 2020, 10:32
por veteranodf
Olá;

Creio que você fez um upgrade de versão de loja e quando fez importação de dados do banco teve problema e a tabela custumer ou address foi corrompida, é bem provável que uma das tabelas perdeu o primary key e auto_increment, sendo assim o ID de registro não muda, cheque os últimos registros dessas tabelas se tiver dois registro com o mesmo id é realmente o que relatei;

Re: Problema de usuário logar indevidamente em outra conta no site

Enviado: 09 Jan 2020, 16:36
por luck950
Perfeito, acertou em cima, eu acho que é isso mesmo o problema. Pois como você disse, eu paguei para um desenvolvedor fazer a migração de servidor do meu opencart. Antes hospedava na amazon e migrei para a minha nova hospedagem. Como posso resolver este problema da tabela que perdeu o primary key e auto_increment?

Re: Problema de usuário logar indevidamente em outra conta no site

Enviado: 09 Jan 2020, 22:03
por veteranodf
Você pode apenas reparar as tabelas address, *customer e *order; Agora se tiver concluído pedidos ou se desejar conservar os novos dados inseridos no banco você pode executar os comandos abaixo no banco, mais lembrando que deverá alterar os primary id para ordem crescente e associando os mesmos entre as tabelas que mencionei acima;

Em NUMERO-DO-ULTIMO-REGISTRO deve informar o ultimo registro da coluna primaria,

Código: Selecionar todos
ALTER TABLE `oc_address`
  ADD PRIMARY KEY (`address_id`),
  ADD KEY `customer_id` (`customer_id`);

ALTER TABLE `oc_address`
  MODIFY `address_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=NUMERO-DO-ULTIMO-REGISTRO;

ALTER TABLE `oc_customer`
  ADD PRIMARY KEY (`customer_id`);


ALTER TABLE `oc_customer`
  MODIFY `customer_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=NUMERO-DO-ULTIMO-REGISTRO;

Re: Problema de usuário logar indevidamente em outra conta no site

Enviado: 11 Jan 2020, 11:57
por reds
Ola @luck950

Só para registrar aqui,
Eu ja tive problemas com o firewall SUCURI, em configurações do mesmo, nosso cliente em questão tinha colocado "CACHE TOTAL" e então tivemos o mesmo erro apresentado por você.
Toda via testamos as formas de cache disponíveis no SUCURI e resolvemos deixar desabilitado, pois ambas as formas tivemos outros problemas.
:)