Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mateus Otabe

Problema de refresh

Recommended Posts

Olá,

Sou novo aqui no forum, e estou com uma dúvida que me está empacando a vida!

Estou trabalhando em um sistema de prova online.

O usuario preenche as respostas e em seguida clica para finalizar a prova, para enviar o formulário com as respostas.

Até aí tudo beleza, mas após finalizar a prova, o usuário não pode retornar para a prova, por isso fiz um campo que faz uma consulta no banco se a prova foi finalizada.

O problema é que quando clica em voltar no navegador, a página não da um refresh, e ele pode reenviar o formulário com outras respostas...

Alguma forma de ao clicar em retornar no browser, a página a qual ele retorna, de um refresh automático?

Estou trabalhando com php e javascript.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc disse que valida no bd correto?

 

quando der submit de novo, vc primeiro consulta no bd, se aquele usuário já enviou, então direciona para uma página de sucesso ou mensagem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitando a sugestão do rdpacato...

 

Essa verificação você faz logo que o Aluno clicar na Página da Prova.

 

Você pode criar um Campo no seu BD, exemplo "enviou"

 

* Se este campo estiver vazio, ele irá conseguir visualizar a página para as questões e fazer a Prova, mas assim que ele enviar, tb será será setado no campo "enviou". Onde não poderá ter mais acesso depois.

 

 

* Mas se este campo já estiver Marcado, "ele verá uma Mensagem de que já fez a prova"

 

Desta forma se ele já fez, nem conseguirá ver a página novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala galera,

Então, rdpacado, sua idéia é uma saída.

 

Mas o ideal seria que ao clicar no botão de voltar a página atualizasse e mostrasse a mensagem.

 

No banco, na tabela prova, tem o campo 'finalizada', quando o usuário finaliza a prova, esse campo é setado com o valor 1.

Na pagina, tenho a query em php que verifica esse campo.

Se o valor estiver como '0', carrega a página normal, caso esteja como '1' ele da um alert de que a prova ja foi finalizada e redireciona a página.

 

Quando eu clico no voltar, a página não carrega a página novamente, aí está o problema. Mas se eu apertar f5 ele faz a consulta no banco e a mensagem aparece.

 

Alguma idéia, com relação a isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

porque vc já não faz essa verificação logo de início como no Post #3

 

Assim que o Aluno abrir a Página com as questões, o sistema já verifica se o Campo está setado "1" ou "0".

 

Se estiver em "1" direciona para sua mensagem de já fez a prova.

 

Se estiver em "0" é exibido a página com as questões para o aluno fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

wilnet,

Então, eu programei exatamente deste jeito.

Deixa eu tentar explicar melhor...

O usuário entra pra fazer a prova, o campo finalizada está com o valor de '0'.

Ao finalizar esse campos será alterado para '1'.

Porém, se ele voltar, usando o botão do navegador, vai carregar a página que esta em cache, e não vai dar refresh, para poder passar pela validação do campo finalizada.

Entende!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, por isso que eu sugeri apenas para você Acrescentar uma Verificação antes.

 

Você não irá alterar sua Programação já existente.

 

Apenas na Página onde você tem as Questões, você Criar essa verificação, apenas isso.

 

-----------------------------------------------------

Se finalizada for igual a "0"

 

você libera o formulário para a prova.

 

se não

 

Mensagem você já fez a prova

------------------------------------------------------

 

Mesmo que depois do aluno ter feito a prova e enviado ele será setado para "1" correto?

 

Se ele der o voltar na página não tem problema, pois no Banco de dados já estará setado com "1", se ele tentar alterar as questões e enviar novamente, cairá na mensagem de já ter feito a prova.

 

 

Com uma pequena alteração em seu code, irá resolver isso.

 

É só fazer essa verificação antes de Gravar as informações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom, é isso ai Mateus, um pouco de paciência, testa aqui e ali, uma ora resolve.

 

Pode marcar como Resolvido então.

 

Até

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.