sql格式
/*
Navicat MySQL Data Transfer
Source Server : (新)党员积分
Source Server Version : 50650
Source Host : 43.142.117.209:3306
Source Database : dz31_jscxkf_com
Target Server Type : MYSQL
Target Server Version : 50650
File Encoding : 65001
Date: 2022-09-23 12:04:15
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for cmf_member_number
-- ----------------------------
DROP TABLE IF EXISTS `cmf_member_number`;
CREATE TABLE `cmf_member_number` (
`number` int(11) DEFAULT NULL,
`time` int(11) DEFAULT NULL,
`mobile` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='登录次数验证';
代码:
public function member_login()
{
$data = $this->request->param();
$mobile = $this->request->param('mobile');
$password = $this->request->param('password');
$mobile = trim($mobile);
if (empty($mobile)) $this->error("手机号不能为空!");
$member_number = Db::name('member_number')->where('mobile', '=', $mobile)->find();
if ($member_number) {
$end_time = $member_number['time'] + 5 * 60;//五分钟后
if ($member_number['number'] >= 3 && $end_time > time()) {
$this->error('已锁定,请等' . (int)ceil(($end_time - time()) / 60) . '分钟重试');
}
if ($member_number['number'] >= 3 && $end_time < time()) {
//五分钟过后 锁定状态关闭
Db::name('member_number')->where(['mobile' => $mobile])->delete();
}
}
if (empty($password) || !preg_match('/^(?![0-9]+$)(?![a-zA-Z]+$)/', $password) || strlen($password) < 8) $this->error('密码不合规');
$result = Db::name('member')->where('mobile', '=', $mobile)->where('password', '=', cmf_password($password))->find();
if (!$result) {
//插入
if ($member_number) {
Db::name('member_number')->where('mobile', '=', $mobile)->update(['number' => $member_number['number'] + 1, 'time' => time()]);
} else {
Db::name('member_number')->insert(['mobile' => $mobile, 'number' => 1, 'time' => time()]);
}
$this->error('账号或密码不正确');
}
Db::name('member_number')->where(['mobile' => $mobile])->delete();
$this->success("登录成功!", $result);
}