0
我遇到了一个问题,我无法理解来自哪里。它不经常发生,如每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.');
}
我觉得一个解决办法是在莫名其妙的提交限制为1,每10秒的例子。我怎样才能做到这一点?
尝试这样做,不似乎工作
$message = new Message;
if($message->created_at + 10 < time()) {
// insert
}
else{
// error
}
这是电子商务和按摩从实际上是由订单客户..所以我怀疑,他/她将只是相同的消息30+次垃圾邮件。但谁知道... – VLS
更新我的问题与我在控制器中尝试过,但似乎不工作 – VLS