2012-04-26 7 views
2

ゲストユーザーが検索結果を10回しか表示できないアプリケーションを開発しようとしていますが、そのあとで支払いページに移動する必要があります。検索結果ページでセッションを使用することはできますが、どうすればその上にカウンタを置くことができますか。いずれにしても助けてくれますか?PHPのユーザーあたりの検索数を制限する方法

答えて

4

検索要求が、彼はちょうどクッキーを削除することで、制限を取り除くことができAltoughあなただけの

$_SESSION['counter']++ 

を行い作成されるたびに。他のアプローチは、IPアドレスを含むデータベーステーブルに検索要求の数を格納することですが、これをバイパスすることもできますが、これには多くの作業が必要です。

2

あなたのウェブサイトにアクセスしたときに再度検索するか、1年後に訪問しても10回だけ検索するかどうかによって異なります。

一時的な拠点の場合は、クッキーを使用することができます(setcookie機能を参照)。ただし、彼を一度に制限したい場合は、その情報をデータベースに保存する必要があります。今、あなたは$_SESSION['counter']の値を保存する必要があります

<?php 
    session_start(); 

    $_SESSION['counter'] += 1; 
    // more logic/code 

あなたは次のようにコーディングします。

2

ユーザーがログインしている間だけ検索できる場合は、問題はありません。ユーザーにはdbテーブルがありますので、別の列を追加して「search_count」と言うと、ユーザーがサーチ。例えば

:あなたはまた、あなたのDBのテーブルのユーザーにカウンタを使用すると、毎回ユーザーが結果を検索する関数を呼び出すことができます

UPDATE `users` SET search_count = search_count+1 
+1

default value 0と例visitためusersテーブル名内のフィールドを追加し、検索結果ページのすべての訪問で、このフィールドを更新ログインしていないと仮定します。 – Ahatius

+0

@Ahatius:それに気付かなかった。ゲストについては、良い答えが与えられますが、とにかく - クッキーは消去され、セッションは期限切れになります。 –

+0

ログインはしていませんが、ユーザーはそのページに行くために自分のメールアドレスを入力する必要があります。これにより、検索カウントをメールとIPでデータベースに保存できます。 – user434509

2

は、それは、そう単純でUPDATEを一つ値をインクリメント。

4

現在実行中のセッションに検索制限を設定する場合は、$_SESSION['count']++を使用できます。 1日あたりの検索制限を置く必要がある場合は、'UPDATE users SET search_count = search_count+1'

0

私はデータベースを維持する方がセッションを削除または消去する理由がある可能性がありますので、セッションを維持する方がはるかに良いと思います。

彼が言ったように、それは私のゲストのためだ..

"update usertablename set visitfield = visitfield + 1 where user_id = ".$current_user_id 

おかげ

+0

ゲストにはユーザーIDがありません – Ahatius

+0

ユーザーがログインしていない場合、ユーザーはブラウザーに基づいてクッキーまたはセッションを維持し、各訪問時にそれを増やす必要があります。そのセッションまたはクッキーはブラウザの終了時に削除する必要があります。 –

関連する問題