如何在PHP中限制每个用户的搜索次数

时间:2012-04-26 11:28:16

标签: php search

我正在尝试开发一个应用程序,其中访客用户只能看到搜索结果10次,之后他应该被定向到付款页面。我可以在搜索结果页面上使用会话,但我如何在其上设置计数器。请帮助我。

6 个答案:

答案 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

感谢