2013-08-23 105 views
0

我有一個網站向新訪問者顯示一個隨機數,並將該數字存儲在cookie中。PHP刷新倒計時停止爲零

如果用戶刷新頁面,那麼它會在顯示cookie值之前抽取cookie值並減去1之間的一個隨機數。

這是我迄今黑客一起:

<?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看,但我找不到解決方案,我需要停止這種情況發生。

任何想法?

回答

0

我想我誤讀這一點,但你嘗試過更換:

$places = $places - $decrease; 

有了這個:

if ($decrease > $places) { 
    $places = 0 
} else { 
    $places = $places - $decrease; 
} 
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; 
} 
?> 
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); 
} 

如果你的目標是在地板上限制到零,然後其他的答案比我的更簡單。如果保持一個隨機數是必不可少的,我認爲增加會更好。