Ir para conteúdo
Fórum Script Brasil
  • 0

Cronometro Php+javascript


Guest willian_master

Pergunta

Guest willian_master

Opa.

OLha eu estou quebrando a cabeça aqui pra ver como faço essa contagem regressiva usando php + javascript.

Eu não manjo nada de javascript, mais tem uma contagem regressiva circulando pela internet e eu ví essa contagem e ela é muito boa pois não pega o relógio da cpu como referência, coisa que se acontecer essa contagem pode ser alterada.

Só que é o seguinte, esse script usa php mais como o php é camuflado o autor do script não falou como é esse script por quê ele diz que não tem nem noção de como é o script, de fato, é complicado saber. Eu estou desde de manhã tentado colocar o php para interagir com o relogio mais não consigo.

O relógio funciona assim:

São acrescentados segundos como o tempo de contagem, 5 minutos, se coloca 300 segundos.

Mais tem uma variável onde vai somando até chegar em 300 aí a contagem acaba e executa-se a função.

Ela a variável começa com 0, e vai acrecentado 1 isso até chegar nos 300 o que acaba tornando-se 5 minutos. Mais como falei isso é em php, ninguém sabe o que usar em php para acrecentar 1 por segundo até chegar nos 300.

Então eu gostaria de saber qual a execução que o php tem para essa função.

OBS: vocês tem que colocar o redirecionamento depois do login para à pagina que a pessoa estava. Primeiro: depois de feito o login, o usuário (eu) é redirecionado pra o index do forum, isso não teria problema, se o forum não tivesse um layout tão pesado. Então a pessoa que está com pressa acaba escrevendo como visitante por quê pra fazer o login demora uns 2 minutos.

Pow fala sério.

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Em PHP para acrescentar um segundo a cada segundo e ir somando você teria que ficar dando refresh na página (ou usar ajax), além disso, que diferença faz se o cara altera ou não o relógio do PC? Pergunto isso pois você apenas disse que são somados segundos após segundos até chegar a 300 (5 minutos) e ai executa a função... Então, se não existe condição de hora (por exemplo só executar a função se estiver entre o meio-dia e as 18 horas) o relógio do pc em si não faz diferença se está certo, errodo, adulterado, etc...

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo.

Faz sim. Eu testei.

Eu coloquei a função em php assim:

<?php

echo "Você tem que esperar 10 minutos para ter a atualização";

$ss = date("i");

$aa = date("10");

if($ss = $aa){

echo "Atualizado";

$sql = "UPDATE users SET time='0' WHERE login='$login'";

}

else

{

echo "Espere o tempo";

}

?>

Eu testei: Coloquei a execução às 11:00:21

mais na mesma hora eu fui no relógio da cpu e alterei a hora para 11:10:21

cliquei em aplicar em seguida ok. E quando atualizei a página o script foi executado não respeitando os 10 minutos. Qualquer contagem regressiva que seja com a função date() por minutos, pode ser alterada pelo relogio da cpu, seja em php ou javascript.

Mais essa contagem que eu ví não funciona pelo minuto, e sim pelos segundos. Até por quê se tratando de segundos, ele não conta a partida até a chegada, ele conta os segundos à qualquer momento.

Ex: Por minuto a função tem um limite fixo que é 10. Já por segundo isso não acontece por quê, como são 300 segundos ele não vai ter 300 como limite até por quê só chega até 59, então a função conta os segundos 1 por 1 até somar 300. Mesmo que o relogio seja alterado a função continua contando os segundos até 300, por exemplo, se a função começar nos 20 segundos, o usuário pode mudar para 59, mais o relógio não vai acrecentar 39 segundos no script, ele vai continuar apartir dos 20. Diferente dos minutos.

Tanto é que a função que mostra a contagem em javascript usa setTimeout com 100 e não 1000 centéssimo. Mais o problema é que ao decorrer dos segundos tem que ir acrescentando 1 para ir somando com 1 até chegar nos 300. O cara que informou o script falow da onde ele tirou o script e lá à cada segundo vai sendo acrecentado 1 na variável da contagem quando essa variável chega nos 300 o relógio para e executa-se a função que não sei qual é.

Ela começa com 0, depois de 1 minuto ela já esta com 60 e assim até chegar nos 300, só pode ser uma função em php pois a pagina é salva como .php e como ninguém vê uma função na pagina onde faça essa variavel receber numeros até 300, tudo leva a pensar que é php pois está camuflado.

Eu pênso que se o script ta sendo executado é por quê tem como ele ser executado, só resta saber como executar esse script em php. Eu vou continuar tentado aqui. Mais tá difissíl.

Eu até conseguir. Mais não foi 100% de aproveitamento.

eu coloquei soma:

exemplo:

<?php

$ss = date("s");

if($ss == 01){

$str = +1;

}

if($ss == 02){

$str = +2;

}

assim até chegar nos 59 segundos.

Deu certo, eu olhava no código fonte e aparecia a diferença, como por exemplo a variavel começa com 0 e depois de 30 segundos eu olhava o codigo fonte e ela estava com 30. Mais o problema é que quando chegava nos 59 ao invés de continuar a soma ela voltava pro começo. e ia do 0 até o 59 denovo.

EU tenho certeza que é por aí.

Link para o comentário
Compartilhar em outros sites

  • 0

Você está rodando isso em localhost? Pois a DATE pega a hora do SERVIDOR (afinal de contas php roda do lado do servidor e não do cliente), logo se for localhost é obvio que se você alterar a data do seu pc a date também vai ser influenciada...

Coloca a url dessa página fantástica ai pra gente ver a mágica funcionando...

Link para o comentário
Compartilhar em outros sites

  • 0

Mas o exemplo que você passou com o DATE pega a hora do servidor...

Vou te passar um exemplo de cronômetro em javascript que você pode morrer trocando a hora do relógio que não faz diferença...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Documento sem t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="javascript">
//CRONOMETRO
//Autor: Iván Nieto Pérez
//Este script y otros muchos los puedes
//encontrar en
//MundoJavascript.com
var CronoID = null
var CronoEjecutandose = false
var decimas, segundos, minutos

function DetenerCrono (){
  if(CronoEjecutandose)
  clearTimeout(CronoID)
  CronoEjecutandose = false
}

function InicializarCrono () {
//inicializa contadores globales
decimas = 0
segundos = 0

//pone a cero los marcadores
document.crono.display.value = '00:0'
document.crono.parcial.value = '00:0'
}

function MostrarCrono () {
      
  //incrementa el crono
  decimas++
if ( decimas > 9 ) {
decimas = 0
segundos++
if ( segundos >= 300 ) {
alert('Chegou a 300 segundos...')
//DetenerCrono()
//return true
}
}

//configura la salida
var ValorCrono = ""
ValorCrono = (segundos < 10) ? "0" + segundos : segundos
ValorCrono += ":" + decimas 

  document.crono.display.value = ValorCrono

  CronoID = setTimeout("MostrarCrono()", 100)
CronoEjecutandose = true
return true
}

function IniciarCrono () {
DetenerCrono()
InicializarCrono()
MostrarCrono()
}

function ObtenerParcial() {
//obtiene cuenta parcial
document.crono.parcial.value = document.crono.display.value
}

</script>

</head>

<body>

<form name="crono">
<div align="center"><center>
<p><input type="text" size="8" name="display" value="00:0"><input type="button" name="Iniciar" value=" Iniciar " onClick="IniciarCrono()"></p>
<p><input type="text" size="8" name="parcial" value="00:0 "> <input type="button" name="Parcial" value="Parcial" onClick="ObtenerParcial()"></p>
<p><input type="button" name="Parar" value=" Parar " onClick="DetenerCrono()"> <input type="button" name="Cero" value="  Cero  " onClick="DetenerCrono(); InicializarCrono()"></p>
</center></div>
</form>

</body>
</html>

Quando chegar a 300 segundos ele dispara um alert (chegou a 300 segundos...), ali você pode colocar para chamar uma função qualquer...

Link para o comentário
Compartilhar em outros sites

  • 0

Tem alteração pelo fato de que o script utiliza o relógio do PC como base... mas por ser apenas um cronômetro isso não é necessário, se você testar o que eu passei isso não acontece, já que ele em nenhum momento consulta o relógio local, o que ele faz é apenas ir adicionando segundo após segundo sem consultar nenhum tipo de informação do pc...

Link para o comentário
Compartilhar em outros sites

  • 0

Olha.

esse cronometro é o que eu preciso ele funciona mermo sem o relogio da cpu como você falow.

Mais tem um problema como faço pra ele funcionar sem parar?

Assim, eu coloco ele pra iniciar ai, quando eu vou pra outra pagina que volto ao invés dele continuar ele zera ai tem que iniciar denovo. Tem como colocar ele automatico?

Eu não entendo nada de javascript. Dá mais essa força ai.

Link para o comentário
Compartilhar em outros sites

  • 0

Isso que você quer não tem como ser feito... toda vez ele vai iniciar do zero, já que como ele não é um aplicativo não pode ficar executando em segundo plano (como poderia ser feito em um programa .exe por exemplo)

Link para o comentário
Compartilhar em outros sites

  • 0

Ahhhh, então esse trabalho todo não serviu de nada.

Esse outro ai que eu mostrei ele continua mermo você saindo da pagina e voltando depois, ele continua automatico.

Se for uma função importante, e que demore 30 hora o usuário vai ter que ficar 30 minutos com a pagina aberta? num pode.

Inclusive.

aquela variável G que eu mostrei no script, é à que determina a automatização.

Ela funciona assim: começa com 0 ai o relogio executa os 300 segundos. Mais quando o usuario sai pra outra pagina essa variavel é a responsavel por manter o tempo correndo. Se você sair da pagina e a variavel estiver com 0 o tempo começa com 5 minutos, se você sair da pagina e voltar 4 minutos depois o relogio vai estar marcando 1 minuto restante, e a variavel G vai estar assim: g = 240

isso faz com que o relogio comece apartir de 240 segundos o que é 4 minutos, quando o usuario acessar a pagina. E isso é o que eu quero fazer.

Entende? ai è o problema.

Link para o comentário
Compartilhar em outros sites

  • 0

Entendo... o melhor seria você utilizar AJAX, assim você gravaria em algum lugar no servidor essas informações e colocaria só a função em ajax para ficar fazendo as verificações do lado do servidor... com isso todos os problemas até agora (ficar com a página aberta, relógio do pc, etc) seriam sanados... o único problema é como fazer, já que ajax ainda não é a minha praia...

Link para o comentário
Compartilhar em outros sites

  • 0

Muito menos à minha.

Valeu pelo script, agora eu tenho 2 pra testar.

Programação é assim mermo, se fosse fácil o que mais tinha no mundo era programador.

Eu só não vou desistir de tentar, sedo ou tarde eu encontro a solução. Até por quê se o cara vez, por quê eu não posso fazer? ele não é melhor nem pior que eu, somos todos iguais, a diferença é que ele tem experiência e uma faculdade disso. Mais isso não influência, por quê o primeiro professor da faculdade de informática não tinhe ninguém para ensina à ele, ele aprendeu sozinho, da mesma forma eu irei ser um grande programador aprendendo sozinho com ajuda de quem sabe (vocês). O maior gênio é aquele que corre atrás.

isso é um conselho para quem ta começando e ta cheio de problemas

Àh, APESAR DE FALAR ESSAS COISAS, MAIS EU SOU HOMEM GRAÇAS À DEUS E ASSIM SEREI HOMEM ATÉ A MORTE. AMÉM

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...