PHP刷新倒计时停在零

时间:2013-08-23 22:05:29

标签: php subtraction

我有一个网站向新访客和商店显示一个随机数,该数字存储在Cookie中。

如果用户刷新页面,则它会提取cookie值并减去1&之间的随机数。 3在显示之前。

到目前为止,这是我一直在攻击的内容:

<?php
if (isset($_COOKIE['places'])) {
$places=$_COOKIE['places'];
$decrease=mt_rand(1, 3);
$places=$places-$decrease;
$expire=time()+60*60*24*30;
setcookie('places', $places, $expire);
}
else {
$randomString = mt_rand ( 11 , 23 );
$expire=time()+60*60*24*30;
setcookie('places', $randomString, $expire);
$places=$randomString;
}
?>

我遇到的问题是,如果你继续刷新(我怀疑任何人会这样做),它会继续通过0进入负数。我已经浏览了php.net,但我找不到解决这个问题所需的解决方案。

任何想法?

3 个答案:

答案 0 :(得分:0)

我想我误解了这一点,但你有没有尝试过更换:

$places = $places - $decrease;

有了这个:

if ( $decrease > $places ) {
    $places = 0
} else {
    $places = $places - $decrease;
}

答案 1 :(得分:0)

这应该这样做:

<?php
if (isset($_COOKIE['places'])) {
    $places=$_COOKIE['places'];
    $decrease=mt_rand(1, 3);
    $places=$places-$decrease;
    if($places < 0) 
      $places = 0;
    $expire=time()+60*60*24*30;
    setcookie('places', $places, $expire);
}
else {
    $randomString = mt_rand ( 11 , 23 );
    $expire=time()+60*60*24*30;
    setcookie('places', $randomString, $expire);
    $places=$randomString;
}
?>

答案 2 :(得分:0)

这样的事情怎么样?如果$ places - $ decrease将导致负数,请添加该数字。我认为它应该达到你想要的效果......

if (isset($_COOKIE['places'])) {
    $places=$_COOKIE['places'];
    $decrease=mt_rand(1, 3);
        if(($places - $decrease) <= 0) {
            $places = $places + $decrease;
        } else {
            $places=$places-$decrease;
        }
    $expire=time()+60*60*24*30;
    setcookie('places', $places, $expire);
}

如果您的目标是将场地限制为零,那么其他答案比我的更简单。如果保持随机数是必要的,我认为增加会更好。