簡體   English   中英

如何在PHP中限制每個用戶的搜索次數

[英]How to limit number of searches per user in PHP

我正在嘗試開發一個應用程序,其中訪客用戶只能看到搜索結果10次,之后他應該被定向到付款頁面。 我可以在搜索結果頁面上使用會話,但我如何在其上設置計數器。 可以請任何幫助我。

每次創建搜索請求時,您都可以

$_SESSION['counter']++

盡管他可以通過刪除cookie來擺脫限制。 另一種方法是,將搜索請求的數量存儲在包括IP地址的數據庫表中,但這也可以被繞過,而這需要做更多的工作。

如果你應該在當前運行的會話上設置搜索限制,你可以使用$_SESSION['count']++ 如果你應該每天使用搜索限制,你可以使用'UPDATE users SET search_count = search_count+1'

這取決於你是否允許他在訪問你的網站時再次搜索,或者只是在他一年后訪問之后再次搜索10次。

對於臨時基地,你可以使用cookies(參見setcookie功能),但如果你想一勞永逸地限制他,你將不得不在數據庫中保存這些信息。

您可以編寫如下代碼:

<?php
  session_start();

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

現在你必須保存$_SESSION['counter']

如果您的用戶只能在登錄時進行搜索,那么我認為沒有問題 - 您肯定有用戶的數據庫表,所以只需添加另一列,說'search_count'並在每次用戶嘗試搜索時將其增加1。

例如:

UPDATE `users` SET search_count = search_count+1

您還可以在數據庫的表用戶中使用計數器,並在每次用戶查找結果時調用函數,將值遞增1,這樣就可以進行簡單的更新。

我認為維護數據庫會比保持SESSION好得多,因為可能是由於某些原因導致會話被刪除或刪除。

users表名稱中添加一個字段,例如使用default value 0 visit ,並在每次訪問搜索結果頁面時更新此字段。

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

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM