这种写法以及函数的用法是有些奇葩,但是能用就行啦
/**
* 根据session控制form表单一定时间内提交次数
*
* @date2020-01-17
* @return boolean
*/
public function submit_nu() {// 获取客户端ip
$ip = 'ip'.ip_2_long(request()->ip());
// 获取当前时间戳
$now = time();
// 开始循环判断
if (! empty(request()->session()->get($ip))) {
// 两分钟间隔内
$last_submit_time = request()->session()->get($ip.'.last_submit_time');
$submit_times = request()->session()->get($ip.'.submit_times');
if ($now - $last_submit_time < 60 * 2) {
// 判断两分钟内的次数 3次
if ($submit_times && $submit_times >= 3) {
return false;
}
else {
// 小于3次
if ($submit_times) {
session([$ip.'.submit_times'=>$submit_times+1]);
}
return true;
}
}
else {
// 两分钟间隔外
session([$ip.'.last_submit_time'=>$now]);
session([$ip.'.submit_times'=>1]);
return true;
}
}
else {
// 第一次
session([$ip.'.last_submit_time'=>$now]);
session([$ip.'.submit_times'=>1]);
return true;
}
}
【PHP根据session控制一定时间内form表单提交次数】
推荐阅读
- 对GO切片的理解
- 小程序商城网站开发秒杀模块篇
- 盲盒购物网站系统开发建设 第三篇
- Netty核心概念之ChannelHandler&Pipeline&ChannelHandlerContext
- 简单的线程池实现多线程对大文件的读取
- SSH 端口转发与 SOCKS 代理
- Ubuntu16.04/Scala2.11.8安装教程
- 学习PHP中的高精度计时器HRTime扩展
- 使用OpenResty+Lua实现灰度测试(金丝雀)
- 使用源码编译安装PHP扩展