php - 如何限制脚本在特定 ip 地址上运行的时间

标签 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';
        }

谢谢。

最佳答案

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

Security issue 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';
            }

关于php - 如何限制脚本在特定 ip 地址上运行的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23303392/

相关文章:

php - mysqli_fetch_array() foreach 循环重复

php - Phinx - php 应用程序的数据库迁移 - postgreSQL 模式不起作用

MySQL。应使用什么隔离级别?

MySQL:按计划中的下一个日期排序

mysql - 使用where语句批量更新mysql

objective-c - 基于ID的Objective C SQLite更新查询

php - mysql 查询中奇怪的额外等号。我该如何删除它?

php - 打开数据库记录时,不允许其他用户更改记录(PHP+MySQL)

MySQL 查询计票

sql-server - 使用 Microsoft SQL Server 从 SELECT 更新