Preciso desabilitar o Botão Voltar do Navegador
Pessoal...
Vou tentar explicar em detalhes o meu problema pra ver se alguém pode me ajudar.. pq a coisa está feia... rsrs
Estou desenvolvendo um sistema de perguntas... resumindo são 10 perguntas onde o usuário tem 90 segundos para responder cada uma... caso ele não responda em 90s o sistema considera errado e passa para a próxima questão.
O sistema todo está funcionando corretamente... exceto por uma exigencia:
O usuário não pode pular (avançar) nenhuma questão sem responder... e tb não pode Voltar nenhuma questão.
Aí está o problema... Impedir que ele avance foi fácil... hehehe.. mas impedir q ele volte é q está complicado...
Pesquisei muito na internet e principalmente aqui no forum e cheguei a conclusão de que não há nenhum comando JavaScript milagroso que desabilite o botão Voltar do navegador.
Então... criei uma lógica onde pudesse controlar em que pergunta o usuário está para que, caso ele volte, o sistema dê uma mensagem avisando que é proibido e redirecione ele para a pergunta em q estava.
A idéia é a seguinte:
No meu banco de dados..;. tenho uma tabela chamada "dados_participantes"... com os seguintes campos:
codigo, nome, cpf, qtd_vezes, pergunta_atual
Quando o usuário entra na primeira pergunta o sistema coloca o campo "pergunta_atual" dele como 1.
Quando ele entrar na segunda pergunta o sistema coloca o campo "pergunta_atual" dele como 2.
Na terceira pergunta pergunta_atual = 3... e assim por diante.
No arquivo php da pergunta1... eu faço uma verificação para ver se o "pergunta_atual" daquele usuário é maior q 1... se for, significa que ele já passou para a pergunta 2, então dou um aviso pra ele... e redireciono ele para a pergunta em q ele estava. Com isso eu evito q ele volte nas perguntas.
Na teoria... parece lindo.. hehehe... mas na prática está acontecendo o seguinte.
1)O usuário entra na pergunta 1 pela primeira vez...
2)O sistema coloca no registro dele o campo "pergunta_atual" = 1.
3)Quando o usuário avança para o arquivo da pergunta2.php.... esse arquivo escreve na tabela "pergunta_atual"=2.
4)Se o usuário clicar no Voltar no navegador... ele voltará para o arquivo pergunta1.php, onde há um script em PHP q lê o conteúdo do campo "pergunta_atual" pra ver se ele é maior q 1... no caso... deveria ser... rs.. já q já foi aberto o pergunta2.php... E ele é igual a 2 mesmo... pq eu abri o banco de dados e olhei a tabela e realmente estava com o número 2 lá. MAS.... quando o script do arquivo pergunta1.php faz a leitura na tabela... vem, estranhamente, o valor 1... ou seja.. vem o valor errado... já q nesse momento na tabela está o valor 2.
Não sei se consegui ser claro na explicação... mas o problema é q quando o usuário volta para a pergunta1.php ele lê o valor incorreto na tabela... ele lê o valor 1.. sendo q tem o valor 2 no campo "pergunta_atual".
Alguém tem alguma idéia porque isso acontece?
Fiz um exemplo simples pra exemplificar o problema....
Pergunta1_teste.php
<?
//acessa do banco de dados
include("acesso_bd.php");
$sql = mysql_query("SELECT * FROM dados_participantes WHERE cpf = '31747619809'");
$valor = mysql_fetch_array($sql);
if($valor[pergunta_atual] > 0){
echo("Você não pode voltar nas perguntas!");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<a href="pergunta2_teste.php"> pergunta 2 </a>
</body>
</html>Pergunta2_teste_php
<?
//acessa do banco de dados
include("acesso_bd.php");
$sql = mysql_query("UPDATE dados_participantes SET pergunta_atual = '2' WHERE cpf = '31747619809'");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
Você está na Pergunta 2.
</body>
</html>
Se puderem dar uma olhada!Discussão (5)
Carregando comentários...