2016-04-30 3 views
0

私は簡単な形式で検索できるパブリックデータベースを提供するウェブサイトを持っています。私はその質問に対してPDOを使用しています。
私はGoogleに挑戦しましたが、自分自身を助けるための適切なキーワードが不足しているように感じます。mysqlデータベースの1分あたりの検索数を

私は毎回5回の検索にユーザーができる検索を制限したいと思います。少ない労力でこれを行う正しい方法は何でしょうか?私は高いセキュリティソリューションは必要ありません。何かを全面的に遅らせるものは少し助けになります。

名前はありますか?何が検索できますか?

// Create a session variable called something like this after you start the session: 
$_SESSION['user_start'] = time(); 

// Then when they get to submitting the payment, just check whether they're within the 5 minute window 
if (time() - $_SESSION['user_start'] < 300) { // 300 seconds = 5 minutes 
    // they're within the 5 minutes so save the details to the database 
} else { 
    // sorry, you're out of time 
    unset($_SESSION['user_start']); // and unset any other session vars for this task 
} 
+0

ユーザーがデータを検索したとき(ユーザーが最初に検索したときに格納され、1が検索の数として格納されるとき)にCookieを設定し、その後の検索ごとにCookieを増やし、値が最大に達し、最初の検索の時間は5分未満です。 解決策は簡単ではありませんが、すばやく簡単で、ほとんどの使用例で使用できます。 –

+0

あなたもありがとう!すでに含まれていたセッションを使って解決策を見つけました。 :) –

答えて

1

実際には、MySQLの設定から制限することはできません。しかし、PHPでそれを避けることができます。あなたがすべきことは、すべてのユーザーごとにセッションを設定し、 "SearchTimes"という名前のパラメータを設定することです。検索操作を5回停止する場合は、検索ごとに1を追加します。あなたはIPアドレスのブロックでそれにいくつかのセキュリティを追加することができます。

+1

実際には、私のユーザーはSteamアカウントでログインする必要があります。これにより、このソリューションはかなり安全になります。だから私はすでに私のユーザーのためのセッションがあり、私はセッションIDとすべてのものを確認することができます。質問は、検索の量はどこに保存できますか?そしてそれをどうやってブロックすることができますか? (私はこのすべてに慣れていないし、友人の助けを借りてログインとセッションの作業をすることしかできなかった)。ああ、一定の時間が経過したらどのように制限を取り除くことができますか? –

+1

私はこれを見つけました:http://www.thesitewizard.com/php/sessions.shtml - "変数の保存とアクセス"は私が探している事ですか? 1分に1回変数を消去する方法を除いて、すべてがわかります。 –

+1

現在のセッションに書き込むことができます。あなたは何をするつもりですこのパラメータをセッションに入れます: $ _SESSION ['SearchAmount'] = 0;すべての前 は、あなたがこれをチェックします検索: 場合($ _SESSION [ 'SearchAmount'] <5){// 検索ものを行う $ _SESSION [ 'SearchAmount'] + = 1; } else { //ユーザーが検索できません。 } –

関連する問題