Ir para conteúdo

POWERED BY:

Arquivado

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

everton0694

Qual o erro?

Recommended Posts

peguei um script de contagem regressiva pronto e ele veio com alguns erros..

Segue o codigo:

contagem.php

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Contagem regressiva</title>
</head>
<?php 
$tempo_entrada = mktime(date("m-d-Y H:i:s")); 
$tempo_permitido = 30; // tempo em segundos até redirecionar 
if($_COOKIE['Cookie_countdown']=="") { 
$tempo_atual = mktime(date("m-d-Y H:i:s")); 
$tempo_cookie = '3600'; // em segundos 
setcookie("Cookie_countdown", "$tempo_entrada", time()+($tempo_cookie)); 
} else { 
$tempo_gravado = $_COOKIE['Cookie_countdown']; 
$tempo_gerado = $tempo_atual-$tempo_gravado; 
$fim = $tempo_permitido-$tempo_gerado; 
if($fim <= 0) { 
echo "tempo esgotado"; 
} else { 
//echo $fim; 
} 
} 
?> 

<script language="JavaScript"> 
var contador = '<?php if($fim=="") { 
echo $tempo_permitido+1;
 } else { 
 echo "$fim"; 
 } 
 ?>'; 
function conta() { 
if(contador <= 0) { 
location.href='limpacookie.php'; 
return false; 
} 
contador = contador-1; 
setTimeout("conta()", 1000); 
document.getElementById("valor").innerHTML = contador; 
} 
</script> 

<body onLoad="conta()">
<div id="valor"></div>
</body>
</html>

limpacookie.php

<?php 
setcookie("Cookie_countdown");
header("Location:contagem.php"); 
?>

Ele da os erros:

Notice: A non well formed numeric value encountered in C:\wamp\www\contagem.php on line 8

 

Notice: A non well formed numeric value encountered in C:\wamp\www\contagem.php on line 11

 

Me ajudem a arrumar esse script.

 

vlw..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Amigo!

 

Tente trocar o mktime pela função strtotime

 

Exemplo:

 

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Contagem regressiva</title>
</head>
<?php 
$tempo_entrada = strtotime(date("m-d-Y H:i:s")); 
$tempo_permitido = 30; // tempo em segundos até redirecionar 
if($_COOKIE['Cookie_countdown']=="") { 
$tempo_atual = strtotime(date("m-d-Y H:i:s")); 
$tempo_cookie = '3600'; // em segundos 
setcookie("Cookie_countdown", "$tempo_entrada", time()+($tempo_cookie)); 
} else { 
$tempo_gravado = $_COOKIE['Cookie_countdown']; 
$tempo_gerado = $tempo_atual-$tempo_gravado; 
$fim = $tempo_permitido-$tempo_gerado; 
if($fim <= 0) { 
echo "tempo esgotado"; 
} else { 
//echo $fim; 
} 
} 
?> 

<script language="Javascript"> 
var contador = '<?php if($fim=="") { 
echo $tempo_permitido+1;
 } else { 
 echo "$fim"; 
 } 
 ?>'; 
function conta() { 
if(contador <= 0) { 
location.href='limpacookie.php'; 
return false; 
} 
contador = contador-1; 
setTimeout("conta()", 1000); 
document.getElementById("valor").innerHTML = contador; 
} 
</script> 

<body onload="conta()">
<div id="valor"></div>
</body>
</html>

Espero que funcione! ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui funcionou!

 

Nas funções mktime, coloque a função strtotime para as dates... Tipo:

$tempo_entrada = mktime(strtotime(date("m-d-Y H:i:s")));

E no else, defina a variável $tempo_atual para não dar erro de variável indefinidada

 

---

 

 

if($_COOKIE['Cookie_countdown']=="") {

$tempo_atual = mktime(strtotime(date("m-d-Y H:i:s")));

$tempo_cookie = '3600'; // em segundos

setcookie("Cookie_countdown", "$tempo_entrada", time()+($tempo_cookie));

} else {

$tempo_gravado = $_COOKIE['Cookie_countdown'];

$tempo_gerado = $tempo_atual-$tempo_gravado;

$fim = $tempo_permitido-$tempo_gerado;

 

---

 

No else, essa variável está sem valor e então vai dar erro... Só para mim testar, eu coloquei $tempo_atual = 0;

 

Com isso, o meu código funcionou perfeitamente, sem nenhum tipo de erro... Ele vai regressando segundo por segundo... Veja a imagem:

 

Imagem Postada

 

No final, meu código completo ficou:

 

 

 

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Contagem regressiva</title>
</head>
<?php 
$tempo_entrada = mktime(strtotime(date("m-d-Y H:i:s"))); 
$tempo_permitido = 30; // tempo em segundos até redirecionar 
if($_COOKIE['Cookie_countdown']=="") { 
$tempo_atual = mktime(strtotime(date("m-d-Y H:i:s"))); 
$tempo_cookie = '3600'; // em segundos 
setcookie("Cookie_countdown", "$tempo_entrada", time()+($tempo_cookie)); 
} else { 
$tempo_atual = 0; // Necessário dar um valor para o $tempo_atual para nao dar erro
$tempo_gravado = $_COOKIE['Cookie_countdown']; 
$tempo_gerado = $tempo_atual-$tempo_gravado; 
$fim = $tempo_permitido-$tempo_gerado; 
if($fim <= 0) { 
echo "tempo esgotado"; 
} else { 
//echo $fim; 
} 
} 
?> 

<script language="Javascript"> 
var contador = '<?php if($fim=="") { 
echo $tempo_permitido+1;
 } else { 
 echo "$fim"; 
 } 
 ?>'; 
function conta() { 
if(contador <= 0) { 
location.href='limpacookie.php'; 
return false; 
} 
contador = contador-1; 
setTimeout("conta()", 1000); 
document.getElementById("valor").innerHTML = contador; 
} 
</script> 

<body onload="conta()">
<div id="valor"></div>
</body>
</html>

 

Se der algum erro, me envie para eu ver!

 

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.