Ir para conteúdo

POWERED BY:

Arquivado

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

vidaloka860

[Resolvido] Contador [tempo]

Recommended Posts

Tipo to criando um site onde os alunos tem que responder questões e tem um tempo de 3 minutos para cada questão.

Como fazer esse contador de tempo interrupto, u seja mesmo que o usuário feche e abra o navegador o contador não resete e volte a dar 3 minutos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que por cookie ou pelo banco de dados. Salve a hora que ele acessou e caso ele feche e abra novamente, confira com o que está salvo. Talvez haja alternativas melhores que esta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse exemplo é conforme meu conhecimento, podem existir alternativas melhores.

 

//Verifica se o cookie não existe. Coloquei ao contrário para entender melhor.
if ( !isset( $_COOKIE['contador'] ) ) {

  //Caso o cookie não existir. Cria o cookie com a hora em que ele acessou o documento.
  //Em time()+172800 eu defini que o cookie ficará armazenado no computador por 48 horas. Após as 48 horas, o cookie não existirá mais.
  setcookie('contador', mktime(), time()+172800); 

} else {

  //Caso o cookie exista, pega o valor do tempo para continuar no contador
  $horaCookie =  $_COOKIE['contador'];

  //Pega a hora atual
  $horaAtual = mktime();

  //verifica a diferença entre elas
  $tempoCorrido = $horaAtual - $horaCookie;

  //Retorna o tempo que passou no formato hora/minutos/segundos
  $tempoCorrido = date('H:i:s', $tempoCorrido );

  //Por exemplo, caso ele criou o cookie as 11:32:00. Fechou o navegador e acessou novamente as 11:32:55. Vai mostrar o resuldado 00:00:55. Significa que já passou 55 segundos desde que ele iniciou o teste/questão
  //Você usa o resultado da forma que achar necessário calcular.   
}

 

Essa é a forma de se fazer com cookies, a forma com o banco de dados, é similar, você salva a hora que o usuário entrou para fazer o teste/questão e depois veja a diferença quando ele acessar novamente.

 

Os prós do cookie é que ele ficará no computador do usuário que acessou. Os contras, é que, um usuário mais experiente, pode alterar o valor de um cookie dependendo da configuração do navegador, esse cookie pode não ser salvo.

 

Já em banco de dados, dependerá se você for salvar usuário o ip da máquina. Se você for salvar com o ip fica complicado quando alguém utiliza ip dinâmico ou algum proxy, ai não se torna confiável.

Tudo vai depender de que tipo de usuários você vai trabalhar.

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.