PHP刷新倒计时停止在零


PHP refresh countdown stop at zero

我有一个网站,它向新访问者显示一个随机数字,并将该数字存储在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,但找不到阻止这种情况发生的解决方案。

有什么想法吗?

我想我看错了,但你试过替换吗:

$places = $places - $decrease;

有了这个:

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

这应该做到:

<?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;
}
?>

这样的东西怎么样?如果$places-$reduce将导致一个负数,请添加该数字。我认为它应该达到你想要的效果。。。

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);
}

如果你的目标是将下限限制在零,那么其他答案比我的简单。如果保持一个随机数是必要的,我认为加法会更好。