我正在尝试开发一个应用程序,来宾用户只能看到搜索结果 10 次,之后他应该被定向到付款页面。我可以在搜索结果页面上使用会话,但我怎样才能在上面设置一个计数器。任何人都可以帮助我。
6 回答
如果您应该对当前正在运行的会话设置搜索限制,那么您可以使用$_SESSION['count']++
. 如果你应该设置每天的搜索限制而不是你可以使用'UPDATE users SET search_count = search_count+1'
每次创建搜索请求时,您只需执行
$_SESSION['counter']++
尽管他可以通过删除 cookie 来摆脱限制。另一种方法是,将搜索请求的数量存储在包含 IP 地址的数据库表中,但这也可以绕过,尽管这样做需要更多的工作。
这取决于您是否允许他在访问您的网站时再次搜索,或者即使在他一年后访问后也只允许他搜索 10 次。
对于临时基地,您可以使用 cookie(参见setcookie
功能),但如果您想一劳永逸地限制他,则必须将该信息保存在数据库中。
您将编写如下代码:
<?php
session_start();
$_SESSION['counter'] += 1;
// more logic/code
现在您必须保存 的值$_SESSION['counter']
。
如果您的用户只能在登录时搜索,那么我认为没有问题 - 您肯定有用户的 db 表,所以只需向其中添加另一列,例如“search_count”,并在每次用户尝试搜索时将其增加一。
例如:
UPDATE `users` SET search_count = search_count+1
您还可以在数据库的用户表中使用计数器,并在用户每次查找结果时调用一个函数,该函数将值加一,因此是一个简单的 UPDATE。
我认为维护数据库会比维护 SESSION 好得多,因为可能是由于某些原因会话被删除或删除。
users
例如visit
,在表名中添加一个字段,default value 0
并在每次访问搜索结果页面时更新此字段。
"update usertablename set visitfield = visitfield + 1 where user_id = ".$current_user_id
谢谢