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