实施下载代码时出现问题

时间:2011-09-18 01:31:15

标签: php wordpress download-manager

我正在设计一个小型独立唱片公司的网站,他们已经放弃了一个重磅炸弹,询问我是否可以实现一个用户可以输入代码来接收数字下载的功能。

这样做有简单的解决方案吗?我认为我需要的是一个输入字段,用户可以输入代码,验证然后允许下载,但听起来太简单了。这甚至可以用.php(完全初学者)这样的东西吗?

我愿意学习,或者我已经把它打包好了,所以任何建议都会很棒。感谢。


修改

感谢一些很好的建议,我能够创造这个!

1 个答案:

答案 0 :(得分:2)

如果你想在一个非常简单的层面上做到这一点,它只不过是你所描述的那么多。您需要熟悉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地址是相同的,或者您希望用于重新下载的任何标准。

如果已兑换,请显示错误消息。如果仍然可以下载,您可以通过阅读文件并将其发送到浏览器see example #1 here来提供下载。

在某些时候,您必须更新数据库以将redeemed标志设置为1并更新其他值,例如时间戳和下载计数。您可以在提供下载之前运行此代码,也可以在提供下载后运行此代码。在某些情况下,如果下载被截断,则脚本的最后一部分将无法运行,因此不会更新已兑换或download_count。这可能是你想要的,也可能不是你想要的,所以你可以决定你想要更新的地方。

最终您可以将其更新为包含管理面板,但最初所有配置都可以在php脚本或配置文件中完成。最终你可以更新它以使用flash或其他技术来下载文件并显示进度条等。

希望这能让您了解是否要尝试实施它。否则,您总是可以搜索php on Hotscripts以查看是否已经推出了您想要的独立版本。