Usuário com melhor resposta
Evitando o Back do Navegador

Pergunta
-
Boa tarde
Estou com um problema. Eu tenho um cadastro de cliente, quando termino o cadastro do mesmo eu redireciono ele para outra página. Porém se eu der um "back" no navegador ele volta a página, se eu der um "incluir" novamente ele lança outro cliente no banco de dados.
Eu pesquisei algumas alternativas na internet e encontrei algumas alternativas, porém nenhum que evite totalmente o problemas, pois se eu apertar o "BackSpace" do teclado ele também retorna a página.
Qual é a melhor alternativa para este problema? Eu não tenho experiência com programação WEB, se alguém puder me dar uma alternativa fico agradecido! =)Obrigado
Paulo Marcelo Dalbosco
Respostas
-
Eu tratei da seguinte forma.
Creio que não seja a melhor forma, mas foi a mais segura que encontrei no momento.
Com uma variável global do tipo boolean ao o usuário clicar em "Próximo Passo" ela muda para true, se ele tentar voltar e a variável estiver true, ele verifica no Get do passo um "esta true?" volta para a view do passo dois. Ou seja, assim ele não deixa voltar para o Passo Um.
É chato ter que ficar controlando essas variáveis globais. =\
Paulo Marcelo Dalbosco
- Marcado como Resposta Paulo M Dalbosco segunda-feira, 24 de dezembro de 2012 11:56
Todas as Respostas
-
Cara,
Ou você usa javascript para bloquear essas teclas especificas, ou você zera os dados quando passar no pageload da página.
E se não quiser que ele insira novamente o mesmo cliente no banco, precisa fazer uma validação para ver se já existe um cara com aquele nome, cpf, rg etc... e se existir exibir uma mensagem de cliente já cadastrado.
Simples assim.Atenciosamente, Samuel dos Anjos
-
Acho que a melhor forma é validar de alguma forma(cpf, email) se o cliente já existe no banco.
Caso não tenha nenhuma propriedade 'unique' o melhor é não fazer nada.. se o cliente clicou para voltar e clicou em salvar denovo ele fez isso porque quis.. simples assim..
É a mesma coisa que você salvar seus dados no facebook ou qualquer outro site e depois voltar e salvar denovo.
http://www.linkedin.com/pub/murilo-kunze/44/191/455
-
Obrigado pelas respostas!
Neste cadastro de Cliente eu tenho validação apenas no CNPJ, se ele volta e tenta salvar da erro de validação no CNPJ, porque ele ja existe. Mas como sei que usuário é maluco, fiz o teste de colocar outro CNPJ, ae ele gera outro registro com o mesmo nome, e eu quero evitar isso. Porém neste cadastro é relativamente dispensável esta proteção pq muito difícil um cliente fazer isso de digitar outro CNPJ, mas tenho outros lugares na intranet que são em "passos" e se o cliente voltar com o "back" no passo um e altera o registro quando ele for para o passo dois e três pode trazer problemas.
Vou estudar a idéia do JavaScript.Obrigado pela atenção
Paulo Marcelo Dalbosco
-
Eu tratei da seguinte forma.
Creio que não seja a melhor forma, mas foi a mais segura que encontrei no momento.
Com uma variável global do tipo boolean ao o usuário clicar em "Próximo Passo" ela muda para true, se ele tentar voltar e a variável estiver true, ele verifica no Get do passo um "esta true?" volta para a view do passo dois. Ou seja, assim ele não deixa voltar para o Passo Um.
É chato ter que ficar controlando essas variáveis globais. =\
Paulo Marcelo Dalbosco
- Marcado como Resposta Paulo M Dalbosco segunda-feira, 24 de dezembro de 2012 11:56
-