2017-03-09 4 views
0

どこから来たのかわからない問題があります。 2〜3ヶ月に2〜3回ほど頻繁に起こることはありません。データベースに複数のメッセージを短時間保存するのを防ぐ

サイトには、ユーザーが管理者にメッセージを送信できるフォームがあります。すべて正常に動作していますが、時には1つのメッセージが30秒〜40回データベースに1秒間の差で保存されます。

ページが読み込まれる可能性があります。私は、ページロードの前にユーザーが送信ボタンを30回以上クリックすることはできないとは思っていません。私のコントローラのコードもとてもシンプルです

私が考えているのは、何とか10秒間に1つのサブミットに制限されていると思います。どうすればこれを達成できますか?

はこれを試してみました

$message = new Message; 
    if($message->created_at + 10 < time()) { 
     // insert 
    } 
    else{ 

     // error 
    } 

答えて

0

誰かが自分のフォームをスパムすることができ動作しているようですしない、あなたはまた、CAPTCHAやアヤテストを追加することができます。リクエストを制限したい場合は、最後のリクエストtime()をどこかに保存して比較してください。

​​
+0

これは電子商取引であり、マッサージは実際に発注した顧客からのものです。したがって、私は彼が同じメッセージで30回以上スパムすることは疑います。しかし、誰が知っている... – VLS

+0

私はコントローラで試してみたものの私の質問を更新したが動作していないようです – VLS

関連する問題