代码之家  ›  专栏  ›  技术社区  ›  Don

控制试用订阅的访问

  •  2
  • Don  · 技术社区  · 14 年前

    我的任务是建立一个系统,允许我们公司的人发送一封电子邮件,其中包含一个PDF文件的链接,该文件将保存在我们的Web服务器上。收件人可以通过链接查看我们通常销售的新闻稿。我们的想法是这样做三个月,然后看看他们是否愿意继续和支付全额订阅。

    我已经建立了注册部分,但我正在努力寻找发送电子邮件的最佳解决方案。这是我的想法,但如果其他人有更好的东西,我会感兴趣的。

    1)发送电子邮件时,生成附加到URL的通用代码。使用将遵循URL,它将检查数据库中的“OK”条目,并通过/失败它们的访问。这似乎没问题,但一个链接可以传递,甚至可以加载到任何人都可以访问的公共站点。

    2)为了扩展以上内容,我想我可能会有一种“一次性点击”的东西,一旦我知道链接被点击,它可能会过期,所以任何后续的点击都会失败。缺点是如果他们点击查看并关闭窗口,他们就完成了。同样地,如果他们在下载完成之前点击并导致电脑崩溃,他们也会被锁定。我不知道是否有方法(在php中)来确认文件下载已经完成…

    3)我可以把这些文件放在像/trials/201009/r@ndomstr1n6.pdf这样的目录中,在那里文件被上传,链接的名称是随机的,所以很难猜测。然后我可以使用.htaccess用不同的密码保护每个月的文件夹。这可能会变得单调乏味,很可能会让用户感到恼火。

    我们不想强迫他们管理自己的密码,B/C必须登录并记住另一个帐户可能会阻碍他们的参与。

    谢谢你的建议。 d.

    3 回复  |  直到 14 年前
        1
  •  1
  •   Fanis Hatzidakis    14 年前

    我会说,使用随机代码对每个电子邮件地址进行身份验证,并在5天后过期。如果您限制对第一个访问URL哈希的IP的访问,这也可以工作,但可以保护合法用户/客户。

    在任何情况下,都可以方便合法用户在需要时请求新的身份验证代码。这样,即使您的任何限制给您的潜在客户带来不便,他们也不会因此而生气。

    最后,考虑到如果他们喜欢并想分享PDF,他们可能会立刻分享PDF本身,而不必费心链接。

        2
  •  0
  •   Andrew    14 年前

    首先,要意识到你在这里能做的只有这么多。您允许用户下载一个PDF,然后他们可以按照自己的意愿(法律上或其他方式)使用它。因此,阻止传递链接并不一定会阻止人们共享或发布PDF本身。

    也就是说,如果你想让它变得更难一点,你可以改变你的建议2,在链接被点击后过期之前,你会设置某种类型的时间延迟。您还可以限制链接为文件提供服务的次数。因为人们有各种各样的连接速度,而且因为我不知道你的pdf有多大,所以我不能确定如果你选择使用它,延时应该是什么。

    不过,正如我所说,如果有人决定共享文件,他们可以很容易地做到这一点。

        3
  •  0
  •   jduren    14 年前

    另一种可能性是,由于您已经知道了这些人的电子邮件地址,请在他们的电子邮件链接中为他们建立一个特定的URL。

    所以用户可以点击一个链接 http://www.yourdomain.com/download_pdf.php?email=person@test.com

    为电子邮件地址保留一个包含以下数据的表。

    身份证件 电子邮件地址 读取日期 到期日

    当他们点击链接时,检查他们以前是否读过它,以及他们是否检查过它还没有过期。如果没有,请将PDF文件发送给他们,如果给他们一个页面,上面写着“对不起,您的试用期已过…./”

    如果是他们第一次单击它,则设置读取日期并计算到期日期并设置该日期。

    或者,您也可以生成一个散列或其他东西,并使用散列来标识用户,而不是他们的电子邮件地址。

    您还可以在表中设置下载列,并通过每次单击链接时递增下载列来阻止下载超过20次或更多。