Php 点击限制

Php 点击限制,php,click,limit,Php,Click,Limit,我有这个简单的点击限制,我的网站使用会话,我只想知道这是好的,还是一个可以接受的检查快速页面刷新的方式 此代码位于每个页面的顶部,然后再向数据库请求数据 session_start(); $now = date('Y-m-d H:i:s', time()); if ($_SESSION['click'] > date("Y-m-d H:i:s", strtotime("$now - 1 second"))) { exit("You're clicking too fast")

我有这个简单的点击限制,我的网站使用会话,我只想知道这是好的,还是一个可以接受的检查快速页面刷新的方式

此代码位于每个页面的顶部,然后再向数据库请求数据

session_start(); 
$now = date('Y-m-d H:i:s', time());

if ($_SESSION['click'] > date("Y-m-d H:i:s", strtotime("$now - 1 second"))) { 
    exit("You're clicking too fast") ; 
    }

$_SESSION['click'] = $now; 

这基本上是相同的,但功能较少

session_start();

$now = time();

if ($_SESSION['click'] > ($now-1)) { 
    exit("You're clicking too fast") ; 
}

$_SESSION['click'] = $now;


基本上,这一功能相同,但功能较少

session_start();

$now = time();

if ($_SESSION['click'] > ($now-1)) { 
    exit("You're clicking too fast") ; 
}

$_SESSION['click'] = $now;


我想说,这是一种可以接受的从普通人那里获取快速页面刷新的方式。机器人将丢弃会话cookie,并使您的支票无效

检查IP不是备选方案,因为您的用户可以通过网络和/或多台计算机共享的公共IP使用站点。例如:大学、学校、工作场所(是的,对),AOL(AOL使用代理!)

尽管您的代码可以改进:

session_start(); 
$now = time();

if ($_SESSION['click'] > ($now - 1)) { 
    exit("You're clicking too fast") ; end(); 
    }

$_SESSION['click'] = $now;

我认为这是一种可以接受的从普通人那里快速刷新页面的方式。机器人将丢弃会话cookie,并使您的支票无效

检查IP不是备选方案,因为您的用户可以通过网络和/或多台计算机共享的公共IP使用站点。例如:大学、学校、工作场所(是的,对),AOL(AOL使用代理!)

尽管您的代码可以改进:

session_start(); 
$now = time();

if ($_SESSION['click'] > ($now - 1)) { 
    exit("You're clicking too fast") ; end(); 
    }

$_SESSION['click'] = $now;

不确定
end
的作用是什么……你不是已经打开了关于这个问题的另一个主题了吗?你可以把这个问题放到你原来的问题中,而不是开始一个全新的问题:通过使用
date
函数,你通过比较字符串表示来比较日期
time
返回一个整数(自Unix纪元以来的秒数),以便进行直接比较。如果你想说得更精确一些(因为你说的只是1秒的差异),你可以使用
microtime
。不知道
结尾是干什么用的……你不是已经打开了关于这个问题的另一个话题了吗?你可以把这个问题放到你原来的问题中,而不是开始一个全新的问题:通过使用
date
函数,您正在通过比较字符串表示来比较日期
time
返回一个整数(自Unix纪元以来的秒数),以便进行直接比较。如果你想更精确一些(因为你只说1秒的差异),你可以使用
microtime
。如果是他正在创建的游戏(他有一个双主题),扔掉会话cookie将注销机器人,从而使其移动或动作无效。如果是他正在创建的游戏(他有一个双主题)丢弃会话cookie将注销bot,从而使其移动或操作无效。