Проблем с обратно броене

4ef0

Registered
Здравейте, имам проблем с 1 код за обратно броене, искам на всеки 24 часа да може да се теглят точки, но след 24-тият час броенето спира на 00:00:00 и изписва ще можете да теглите след 00:00:00 и не позволява да се тегли наново въпреки, че времето е изтекло.Някой може ли да ми помогне ? Ето го и кода.

Код:
<div class="right_box">
				<div class="right_box_top">Подаръци</div>
				<div class="right_box_middle"> 
				<?php	
				session_start();
				include "config.php";
if(isset($_SESSION['logged'])) {
$user = $_SESSION['userinfo']['username'];
echo "";
if(isset($_GET['id'])) {
$id = htmlspecialchars($_GET['id']);
if($id == 0){$randpoints = rand(5, 20); $cost = '0';}

$ip=$_SERVER['REMOTE_ADDR'];
$query=mysql_query("SELECT * FROM `users` where `username` = '$log[username]'") or die(mysql_error());
$my=mysql_fetch_array($query);
   if ($my[namepro] == 1)
   {
   $time = time() +24*3600;
   }
   elseif ($my[namepro] == 0)
   {
   $time = time() +24*3600;
   }
$user = $_SESSION['userinfo']['username'];

$query=mysql_query("SELECT * FROM `users` WHERE `username` = '$user'") or die(mysql_error());
$row=mysql_fetch_array($query);
$id=$row['id'];

$query2=mysql_query("SELECT * FROM `podarakip` WHERE `podarak_id` = '$id'") or die(mysql_error());
$row2=mysql_num_rows($query2);
$row3=mysql_fetch_array($query2);

if ($row2 >= 1 )
{
$ends = $row3['time'];
$now = time();
$end = $ends - $now;

echo "<table class='nqkvo_kool2' width='36%' align='center'>
<td class='nqkvo_kool2' rowspan='4' width='5%' align='center'>
<img src='images/task_error.gif' width='33' border='0' height='33'>
</td>
<td width='50%' align='center'><span style='font-weight: bold;'>След<center><b><div id='bxx' ></div></b></center>Ще може да изтеглиш отново подарък "; 
$r=$end; 
?>
<script type="text/javascript"> 
   v=new Date(); 
   var bxx=document.getElementById('bxx'); 
   function t(){ 
      n=new Date(); 
      ss=<?php echo $r; ?>; 
      s=ss-Math.round((n.getTime()-v.getTime())/1000.); 
      m=0; 
      h=0; 
      if(s<0){ 
         bxx.innerHTML='00:00:00'; 
      }else{ 
         if(s>59){m=Math.floor(s/60);s=s-m*60;} 
         if(m>59){h=Math.floor(m/60);m=m-h*60;} 
         if(s<10){s="0"+s} 
         if(m<10){m="0"+m} 
         bxx.innerHTML=h+':'+m+':'+s+'';} 
      window.setTimeout("t();",999); 
   } 
   window.onload=t; 

</script></span></td>
</table>
<?
}
else 
{

$insert=mysql_query("INSERT INTO `podarakip` (`id`, `podarak_id`, `ip`, `time`) VALUES ('', '$id', '$ip', '$time')") or die(mysql_error());

if ($insert)

$sql = "SELECT * FROM users WHERE username = '$user'";
$do = mysql_query($sql);
$my = mysql_fetch_array($do);
$newpoints= $my[points] + $randpoints;
$sql = "UPDATE users SET points='$newpoints' WHERE username = '$user'";
$done=mysql_query($sql) or die(mysql_error());
if($done) { echo "

<table class='nqkvo_kool' width='36%' align='center'>
<td class='nqkvo_kool' rowspan='4' width='5%' align='center'>
<img src='images/task_done.gif' width='33' border='0' height='33'>
</td>
<td width='50%' align='center'>Успешно Изтегли Подарък.<br><br>Ти спечели $randpoints точки.</td>
</table><meta http-equiv=refresh content=15;url='gifts.php'><br>"; }}} else { ?>

<?php
$query=mysql_query("SELECT * FROM `users` WHERE `username` = '$user'") or die(mysql_error());
$row=mysql_fetch_array($query);
$id=$row['id'];

$query2=mysql_query("SELECT * FROM `podarakip` WHERE `podarak_id` = '$id'") or die(mysql_error());
$row2=mysql_num_rows($query2);
$row3=mysql_fetch_array($query2);

if ($row2 >= 1 )
{
$ends = $row3['time'];
$now = time();
$end = $ends - $now;
echo "<table class='nqkvo_kool2' width='36%' align='center'>
<td class='nqkvo_kool2' rowspan='4' width='5%' align='center'>
</td>
<td width='50%' align='center'>След<center><b><div id='bxx' ></div></center>Ще може да изтеглиш отново подарък "; 
$r=$end;
?>
<script type="text/javascript"> 
   v=new Date(); 
   var bxx=document.getElementById('bxx'); 
   function t(){ 
      n=new Date(); 
      ss=<?php echo $r; ?>; 
      s=ss-Math.round((n.getTime()-v.getTime())/1000.); 
      m=0; 
      h=0; 
      if(s<0){ 
         bxx.innerHTML='00:00:00'; 
      }else{ 
         if(s>59){m=Math.floor(s/60);s=s-m*60;} 
         if(m>59){h=Math.floor(m/60);m=m-h*60;} 
         if(s<10){s="0"+s} 
         if(m<10){m="0"+m} 
         bxx.innerHTML=h+':'+m+':'+s+'';} 
      window.setTimeout("t();",999); 
   } 
   window.onload=t; 
</script></span></td>
</table>


<?
}
else 
{
$sql = "SELECT * FROM users WHERE username = '$user'";
$do = mysql_query($sql);
$my = mysql_fetch_array($do);
echo "
<br><a href='?a=gifs&id=0'><center><h3>Изтегли ПОДАРЪК !</h3></center></a>
";}
?>
<? }} else { echo 'Не си логнат'; } ?>
				</div>
				<div class="right_box_bottom"></div>
			</div>
								<div class="right_box">
				<div class="right_box_top">Реклама</div>
				<div class="right_box_middle">
<?php include "includes/reklama.php"; ?>
				
				</div>
				<div class="right_box_bottom"></div>
			</div>
        <?
        footer();
?>
 
Не съм го преглеждал целия код, но от това което прочетох го разбирам по следния начин:
За да може след като изтече времето да ти покаже колко време остават до следващото теглене, трябва да си записал някаде другаде времето на следващото теглене и брояча да почне да брой по него, след като изтече първото ти броене. На кратко ти трябват 2 полета, където в първото поле да имаш тегленето, а във второто да имаш времето за следващото теглене.
 
Е аз съм го направил така :
Код:
v=new Date();
Код:
 n=new Date();
Код:
 s=ss-Math.round((n.getTime()-v.getTime())/1000.);

двете полета за които говориш v, n
 
Неразбирам много от javascript, но ще се помъча да помогна :)
Мисля, че в този ред: bxx.innerHTML='00:00:00'; трябва да си направиш да ти отброява другото време. С две думи то си е направено когато свърши времето да ти покаже 00:00:00 и ти вместо да ти показва тези 0 си го правиш посъщия начин само, че с друго време. Малко тъпо обяснение така че ще пробвам да го направя ;)
[js]<script type="text/javascript">
v=new Date();
var bxx=document.getElementById('bxx');
function t(){
n=new Date();
ss=<?php echo $r; ?>;
s=ss-Math.round((n.getTime()-v.getTime())/1000.);
m=0;
h=0;
if(s<0){
ss2=<?php echo $r2; ?>;
s2=ss2-Math.round((n.getTime()-v.getTime())/1000.);
m2=0;
h2=0;
if(s2>59){m2=Math.floor(s2/60);s2=s2-m2*60;}
if(m2>59){h2=Math.floor(m2/60);m2=m2-h2*60;}
if(s2<10){s2="0"+s2}
if(m2<10){m2="0"+m2}
bxx.innerHTML=h2+':'+m2+':'+s2+'';}
window.setTimeout("t();",999);
}else{
if(s>59){m=Math.floor(s/60);s=s-m*60;}
if(m>59){h=Math.floor(m/60);m=m-h*60;}
if(s<10){s="0"+s}
if(m<10){m="0"+m}
bxx.innerHTML=h+':'+m+':'+s+'';}
window.setTimeout("t();",999);
}
window.onload=t;

</script>[/js]
В момента ти имаш извадена променлива $r, която ти съдържа времето което стартира, направи $r2 с времето след края смисъл такъв, че във $r напиши времето за което ще се изпълнява тегленето и в $r2 напиши времето след което ще се изпълнява следващото теглене.
 

Back
Горе