我正在使用CakePHP,我需要限制特定页面上的页面查看,以获得一小段随机秒数。然而,我编写代码,有时候,即使它不应该,阻塞触发器也会被欺骗。
$site_seconds = "100";
$get15 = $site_seconds * 5 / 100;
$ip_session = $credits_one - $get15;
$ip_session_time = round($ip_session);
我使用这个,所以我得到的数字低于实际访问时间,它的创建是为了避免像我那样的错误,而不是真的很有用。 因此,如果我们得到100秒,我们将计数95秒。
$conditions_check = array(
'date >=' => date('Y-m-d H:i:s', strtotime("-$ip_session_time SECONDS")),
'user' => $user_id,
'value1' => $ip,
'type' => '3'
);
/// we check if the condition has any rows
if ($this->Log->hasAny($conditions_check)){
// If found I send a private message to the user
$this->Log->set('date', date('Y-m-d H:i:s')); // time here is only for ordering when displayed to user
$this->Log->set('user', $user_id);
$this->Log->set('value1', $ip);
$this->Log->set('value2', "No credits received for this visit. To many conditions from same IP.");
$this->Log->set('value3', "1");
$this->Log->set('type', '4');
$this->Log->save();
}else{
// The code runs
}
我尝试使用strtotime(*now*);
但更糟糕的是,错误每次出现,使用此代码,可能每2分钟一次。
答案 0 :(得分:0)
我意识到我的错误在哪里,我设置了时间,但是当我检查用户是否访问过快时,我会检查新计时器,如果数字高于旧计时器,则会触发错误。 修复它的方法是在释放IP时插入新的时间值。
感谢@Stefan的帮助。