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