2013-03-24 62 views
0

你好,我讨厌在这里问愚蠢的问题,所以我希望这不是,我怎么去限制某人到我的下载页面?所以如果他们试图再次访问该页面(多于一次)下载一些东西,它只会重定向,或者最好将下载链接更改为link 2,然后Link 3,是否可以在没有数据库的情况下进行?如何限制用户在单个页面上进行一次访问?

例如:

  1. 首先访问 - 主连杆
  2. 二Visit-链路2
  3. 第三Visit-连杆3
  4. 4和最多访问没有链接和重定向

也许用饼干?我真的不知道该怎么做,我已经谷歌搜索,但我的措辞不能在那里...

是否有这个或脚本的名称?

感谢您的时间伙计们。

+0

您是否尝试过Cookie? – Mido 2013-03-24 06:17:53

+0

请勿使用cookies。用户可以删除任何cookie,使您的“保护”无用。 – 2013-03-24 06:18:28

+0

没有数据库,可能很难做到万无一失,但'$ _ SESSION'变量可能是您最好的选择。 – anson 2013-03-24 06:25:14

回答

1

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

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

B. 您可以用太大的COOKIE的帮助下实现自己的目标。

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

每次,游客访问您的网站,获取访问者IP,并检查是否$_COOKIE["Visitor IP"]设置与否,如果将其设置,然后更新现有的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 .....]

- 如果RowCount> 0,则IP ($fetched_IP)存在于数据库中。检查$fetched_IP访问的最后一个链接。

- 如果LASTLINK!=$URL,则允许他从$URL下载内容。 Update数据库表中的LAST_LINK列为$URL

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

+0

它是多么容易编码/设置数据库? – Benjamin 2013-03-24 06:55:35

+0

@ user1871802:检查我的更新(UPD) – 2013-03-24 07:14:11

0

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

相关问题