我正在为一个小型独立唱片公司设计一个网站,他们丢了一个重磅炸弹,询问我是否可以实现一个功能,用户可以输入代码以接收数字下载。
有没有一个简单的解决方案来做到这一点?我在想我只需要一个输入字段,用户可以在其中输入代码,经过验证然后允许下载,但这听起来太简单了。这甚至可能与 .php (完整的初学者)之类的东西一起使用吗?
我愿意学习,否则我已经把它打包了,所以任何建议都会很棒。谢谢。
编辑:
多亏了一些很好的建议,我才能创建这个!
我正在为一个小型独立唱片公司设计一个网站,他们丢了一个重磅炸弹,询问我是否可以实现一个功能,用户可以输入代码以接收数字下载。
有没有一个简单的解决方案来做到这一点?我在想我只需要一个输入字段,用户可以在其中输入代码,经过验证然后允许下载,但这听起来太简单了。这甚至可能与 .php (完整的初学者)之类的东西一起使用吗?
我愿意学习,否则我已经把它打包了,所以任何建议都会很棒。谢谢。
编辑:
多亏了一些很好的建议,我才能创建这个!
如果你想在一个非常简单的层面上做到这一点,它并不比你描述的要多。您需要熟悉 PHP 和 MySQL 或其他一些数据库,但创建起来并不难。
您需要弄清楚一些事情,例如您想如何限制代码,在前 24 小时内下载 3 次以允许下载失败,将其限制为 IP,或者严格限制一次完整下载。由于您已经给出了 1000 个代码的列表,您可能希望您的系统基于预先生成并插入数据库中的代码,而不是拥有可以即时验证代码然后检查是否已使用的算法代码。
您可能希望将下载内容存储在无法从 Web 访问的目录中,并且 php 脚本将验证代码,如果有效,则将下载内容提供给用户。
您可能可以查看 wordpress 插件的数据库结构以获取其他想法,但我认为至少您需要:
download_code (the code itself, probably primary key or at least index)
download_file (optional, the name/path of the file this code allows them to download)
redeemed (0 if not redeemed, 1 if redeemed)
redemption_time (timestamp of the first, or last redemption based on your requirements)
download_count (how many times downloaded if allowing more than 1)
ip_address (ip address of the redeemer)
email_address (email address if you want to collect it, or give user the option)
download_url (the unique string for the download url. this could be one way to implement download verification beyond the code, but is not necessary)
然后,您需要创建一个 html 页面,其中包含用于输入代码的文本框以及您希望收集的任何其他可选数据。该表单将提交给您的 PHP 脚本。
当 PHP 脚本收到表单后,它将验证所有数据(即,如果您正在收集电子邮件地址)。一旦所有数据都有效,您就可以从数据库中读取与用户输入的内容匹配的代码。
如果在代码中没有找到数据,请将它们发送回表单以尝试重新输入。如果找到记录,您可以检查redeemed
数据库中的值并查看该代码是否已被使用。如果有,您可以在此处使用自定义逻辑来确定它们是否仍在其下载窗口内,IP 地址是否相同,或者您希望使用的任何标准来允许重新下载。
如果已兑换,则显示错误消息。如果仍然可以下载,您可以通过读取文件并将其发送到浏览器来提供下载,请参见此处的示例 #1。
在某些时候,您必须更新数据库以将redeemed
标志设置为 1 并更新其他值,例如时间戳和下载计数。您可以在提供下载之前运行此代码,也可以在提供下载后运行它。在某些情况下,如果下载被切断,脚本的最后一部分将不会运行,因此不会更新兑换或下载计数。这可能是也可能不是您想要的,因此您可以决定要在哪里进行更新。
最终你可以更新它以包含一个管理面板,但一开始所有配置都可以在 php 脚本或配置文件中完成。最终您可以更新它以使用闪存或其他一些技术来下载文件并显示进度条等。
希望这会让您对是否要尝试实施它有所了解。否则,您可以随时在 Hotscripts 上搜索 php,以查看是否有您想要的独立版本。