如何限制用户在一个页面上访问一次?

时间:2013-03-24 06:15:18

标签: php redirect

Hello Guys我讨厌在这里问愚蠢的问题,所以我希望不是这样,我怎样才能限制某人到我的下载页面?因此,如果他们再次尝试访问该页面(超过一次)以下载某些内容,它只会重定向或最好将下载链接更改为link 2然后Link 3,是否可以不使用数据库?< / p>

例如:

  1. 首次访问 - 主要链接
  2. 第二次访问 - 链接2
  3. 第三次访问 - 链接3
  4. 4及以上访问没有链接并重定向
  5. 也许有饼干?我真的不知道怎么做,我用Google搜索了,但我的措辞一定不在那里......

    这个或脚本有名字吗?

    感谢您的时间伙计。

2 个答案:

答案 0 :(得分:1)

:一种。 实现预期目标的最佳方法是database。创建一个包含两列的数据库表:

(1)Page Visitors IP
(2)The Last Download link used by the visitor to download
 file(contents) from your website.

<强>乙 您也可以在COOKIE的帮助下实现目标。

setcookie("Visitor IP", "Download Link used by the Visitor", $expire);

每次访问者都会访问您的网站,获取访问者IP并检查$_COOKIE["Visitor IP"]是否已设置,如果已设置,则更新现有Cookie,否则创建新Cookie。

但是,使用Cookie不是一种方便的方法,因为可能存在

的情况
  Browser does NOT Support Cookies.
  Client  alter the Cookies value and use the previous link for download.

因此,最简单,最优雅的方法是使用Database

<强> UPD: * 编码/设置数据库有多容易? *

在php中设置/连接数据库非常简单。 请参阅以下LINK

编码也很简单。

- 无论访问者点击下载链接,都可以通过POST或GET方法获取访客IP($ fetched_IP)。同时获取已点击的链接($ URL)访问者。

- Query the database [例如:Select DB_IP,来自数据库的LASTLINK WHERE DB_IP = $ fetched_IP .....]

-If RowCount&gt; 0,则IP ($fetched_IP)存在于数据库中。检查$fetched_IP访问过的最后一个链接。

- 如果LASTLINK!=$URL,则允许他通过$URL$URLUpdate数据库表格中的LAST_LINK列下载内容。

- 如果rowcount == 0,(New UserInsert一行包含DB_IP = $ fetched_IP(访客IP)和LAST_LINK = $ URL。

答案 1 :(得分:0)

一个简单的方法是使用哈希表(关联数组)。当它们满足访问文件的条件时,使用唯一URL作为键并将文档路径作为值,向哈希表添加条目。将其保存到会话中。当他们访问url时,页面会检查url是否在哈希表中。如果是,则从哈希表中删除URL并流式传输该文件。如果你想允许多次使用,你可以存储一个倒计时变量和url,它会随着每次访问而减少,只有当计数为零时才从哈希表中删除url。