[英]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.