我有一个问题,我无法理解从哪里来。它不会经常发生,例如每2-3个月2-3次。
在网站上我有表单,用户可以从中向管理员发送消息。一切正常,但有时一条消息在数据库中保存30-40次,与1秒不同。
可能是页面加载问题。我怀疑用户在页面加载之前可以在提交按钮上单击30次以上。我的控制器中的代码也很简单
public function indexSubmit() {
$validatorRules = array(
'message' => 'required|min:5',
);
Input::merge(array_map('trim', Input::all()));
$validator = Validator::make(Input::all(), $validatorRules);
if ($validator->fails()) {
return Redirect::to('/messages')->withErrors($validator->errors())->withInput(Input::all());
}
$message = new Message;
$message->user_id = self::$user['user_id'];
$message->text = Input::get('message');
$message->read_state = 0;
$message->from_admin = 0;
$message->save();
return Redirect::to('/messages')->with('message_success', 'Message sent.');
}
我认为一个解决方案可能是以某种方式将提交限制为每10秒1次。我怎么能做到这一点?
试过这个似乎不起作用
$message = new Message;
if($message->created_at + 10 < time()) {
// insert
}
else{
// error
}
答案 0 :(得分:0)
有人可能只是在向您的表单发送垃圾邮件,您也可以添加CAPTCHA或AYAH测试。如果要限制请求,请将最后一个请求if($stored_time + 10 < time())
存储在某处并与之进行比较。
[UINavigationBar appearance].barTintColor = [UIColor colorWith RGBA]