每当从桌子中选择歌曲的脚本运行时,我会增加一首歌的播放值,但我想只增加一次,比如说可能是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';
}
感谢。
答案 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是否存在,如果存在,则时间差是否仍在一小时内。如果没有,请进行更新。这就是全部