ゲスト ユーザーが検索結果を 10 回しか表示できず、その後支払いページに移動するアプリケーションを開発しようとしています。検索結果ページでセッションを使用できますが、どうすればカウンターを配置できますか? それについて私を助けてください。
6 に答える
検索リクエストが作成されるたびに、あなたはただ行うだけです
$_SESSION['counter']++
ただし、Cookie を削除することで制限を取り除くことができます。別のアプローチとして、IP アドレスを含むデータベース テーブルに検索要求の数を格納する方法がありますが、これはバイパスすることもできますが、そのためにはより多くの作業が必要です。
使用できるよりも現在実行中のセッションに検索制限を設定する必要がある場合$_SESSION['count']++
。そして、使用できるよりも1日あたりの検索制限を設定する必要がある場合'UPDATE users SET search_count = search_count+1'
彼があなたのウェブサイトに来たときにもう一度検索することを許可するか、それとも 1 年後に訪問した後でも 10 回だけ許可するかによって異なります。
一時的なベースの場合、Cookie を使用できます (setcookie
機能を参照)。ただし、一度だけ制限したい場合は、その情報をデータベースに保存する必要があります。
次のようにコーディングします。
<?php
session_start();
$_SESSION['counter'] += 1;
// more logic/code
の値を保存する必要があります$_SESSION['counter']
。
ユーザーがログインしている間だけ検索できる場合、問題はありません。間違いなくユーザーの db テーブルがあるので、そこに別の列を追加し、「search_count」と言って、ユーザーが検索を試みるたびに 1 ずつ増やします。
例えば:
UPDATE `users` SET search_count = search_count+1
また、db のテーブル user でカウンターを使用し、ユーザーが結果を探すたびに関数を呼び出すこともできます。これにより、値が 1 ずつ増加するため、単純な UPDATE になります。
何らかの理由でセッションが削除または消去された可能性があるため、データベースを維持する方がSESSIONを維持するよりもはるかに優れていると思います。
users
たとえば、テーブル名visit
内にフィールドを追加し、default value 0
検索結果ページにアクセスするたびにこのフィールドを更新します。
"update usertablename set visitfield = visitfield + 1 where user_id = ".$current_user_id
ありがとう