限制单击链接的次数

问题描述 投票:0回答:3

我需要限制人们下载pdf的次数(到500)。理想情况下,它会将点击次数计算为500,然后删除链接。我突然意识到我还需要阻止每个人多次点击。基本上我被要求允许前500人下载文件,然后结束它。 PHP或javascript将是首选(它在wordpress网站上)

问候

丰富

php wordpress
3个回答
5
投票

您不希望限制链接可以单击的次数,您希望限制特定链接返回PDF文件的次数。

换句话说,您的链接不应直接指向所请求的资源(PDF),而应指向可以断言文件未下载超过500次的PHP文件。

这是关于如何将www目录之外的文件输出到浏览器的an example


0
投票

链接到PHP脚本,该脚本将控制访问并在允许的情况下提供PDF(例如readfile()。使用$_SESSION管理单个用户下载的次数 - 下载后更新值。

使用数据库表或其他数据源计算总下载量,以便在达到500时,您可以拒绝对PDF的所有访问。


0
投票

要扩展Sherlock的解决方案,您希望将PDF隐藏在PHP文件后面。当我说隐藏时,我的意思是将它放在一个无法直接访问的地方:考虑将其移出“www root”或使用.htaccess来防止直接访问文件。如果文档可以猜测并且公开可用,大多数高级用户都会知道如何访问PDF。

您的PHP应该只执行以下操作:

  • 检查文档是否已下载少于500次或者用户的IP已“解锁”文档(您可能希望允许“窗口”,用户可以在此期间再次下载文档 - 有些人将open文件时他们实际上想要save它,并且不知道如何从他们的读者保存到磁盘) - 否则显示错误
  • 存储此文档的用户的IP地址
  • 发送文件类型的相应标头:header('Content-type: application/pdf');
  • 发送文件名:header('Content-Disposition: attachment; filename="the document.pdf"');
  • 发送文件内容:readfile($pathToPDF);
© www.soinside.com 2019 - 2024. All rights reserved.