私はこの主題に関して何か役に立つものをグーグルで検索することができないので、この主題を扱っている記事へのリンクか、ここでの直接の答えのどちらかが良いです。
訪問者が非常に多いサイトでPHP/MySQLの検索システムを実装しているので、訪問者が検索フィールドに入力できる文字の長さと必要な最小時間にいくつかの制限を実装します。 2つの検索の間。私はこれらの問題に少し慣れておらず、これが通常行われる「本当の理由」を本当に知らないので、データベースが返す結果の数を最小限に抑えるために文字の最小長が実装されているというのは私の仮定だけです。また、検索間の時間は、ロボットが検索システムにスパムを送信してサイトの速度を低下させるのを防ぐために実装されています。そうですか?
そして最後に、2つの検索間の最小時間をどのように実装するかという問題です。私が思いついた解決策は、擬似コードで、これです
- 検索フォームが送信されるURLにテストCookieを設定します
- 検索結果を出力するURLにユーザーをリダイレクトします
- テストCookieが存在するかどうかを確認します
- そうでない場合は、検索システムの使用が許可されていないという警告を出力します(おそらくロボットです)。
- 最後の検索時刻を示すCookieが存在するかどうかを確認します
- これが5秒未満の場合は、再度検索する前に待機する必要があるという警告を出力します
- 探す
- 最後の検索時刻を現在の時刻に設定するCookieを設定します
- 検索結果を出力する
これはそれを行うための最良の方法ですか?
これは、Cookieを無効にしている訪問者が検索システムを使用できないことを意味することを理解していますが、それは最近本当に問題ですか?2012年の統計は見つかりませんでしたが、2009年に3.7%の人がCookieを無効にしたというデータを見つけることができました。それほど多くはないようで、最近はもっと少なくなるはずです。