如何限制脚本在特定IP地址上运行一段时间的时间

时间:2014-04-25 21:29:41

标签: php mysql sql-update increment

每当从桌子中选择歌曲的脚本运行时,我会增加一首歌的播放值,但我想只增加一次,比如说可能是5个小时。因此意味着用户将播放一首歌并且它将仅在第一次被计为播放,然后等待5小时才允许再次增加。

PHP

我根本不知道该怎么做。

$_SESSION['play_id'] = $_SERVER["REMOTE_ADDR"];
    $_SESSION['play_time'] = time();
    $then = $_SESSION['play_time'];
    $now  = time();
    $diff = $now->diff($then);
    if ($diff > 2 * 1000){
    $query = mysql_query("UPDATE music SET plays = plays + 1  WHERE sid = '$id'") or die (mysql_error());
    } else {
        echo 'not yet';
        }

感谢。

2 个答案:

答案 0 :(得分:0)

$ip = 0
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
} else {
    $ip = $_SERVER['REMOTE_ADDR'];
}
  

安全问题   elseif(!empty($ _ SERVER [' HTTP_X_FORWARDED_FOR'])){           $ ip = $ _SERVER [' HTTP_X_FORWARDED_FOR'];       }

$_SESSION['play_id'] = $ip;
        $_SESSION['play_time'] = time();
        $then = $_SESSION['play_time'];
        $now  = time();
        $diff = $now->diff($then);
        if ($diff > 2 * 1000){
        $query = mysql_query("UPDATE music SET plays = plays + 1  WHERE sid = '$id'") or die (mysql_error());
        } else {
            echo 'not yet';
            }

答案 1 :(得分:0)

会话可能会在5个小时之前到期,而Cookie会在您设置之后持续。这里的一些想法是设置与正在播放的每首音乐的id相对应的唯一cookie。让内容为时代,即日期('U')时间。当用户即将播放音乐时,只需检查cookie是否存在,如果存在,则时间差是否仍在一小时内。如果没有,请进行更新。这就是全部