加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 一次性密码下载

发布时间:2020-12-13 21:45:05 所属栏目:PHP教程 来源:网络整理
导读:实现一次性密码下载文件的最佳方法是什么?最初我考虑过使用 PHP,为用户分配密码,并在登录时删除帐户.我会将帐户保存在一个文件中,因为我预计在任何给定时间都不会有超过少数有效用户.我是否需要跟踪会话,或者是否有一种简单的方法可以通过单个站点实现此目
实现一次性密码下载文件的最佳方法是什么?最初我考虑过使用 PHP,为用户分配密码,并在登录时删除帐户.我会将帐户保存在一个文件中,因为我预计在任何给定时间都不会有超过少数有效用户.我是否需要跟踪会话,或者是否有一种简单的方法可以通过单个站点实现此目的?

哦,我不能使用外部网站,因为数据是敏感的,必须保存在本地,也不能下载任何新软件,因此仅限于HTML,JavaScript和PHP(我相信).

解决方法

几乎只是Ilmari Karonen和martinstoeckli的答案的组合,但更详细.

使用这种数据库表:

temp_passes

uuid  | createTime | expireTime | filename
------------------------------------------
123-4 | 1326735047 | 1327735047 | myDisk.iso

不知何故,您为用户生成一个UUID,并将其插入数据库.然后,在提供下载链接时,您可以像这样使用UUID:

http://example.com/download.php?id=123-4

或者,有一个密码字段,用户必须在其中输入他们的ID,并将其提交给download.php.无论哪种方式:

>根据数据库验证ID,确保它存在且尚未过期.
>从数据库中删除ID,因此无法再次使用.
>让PHP生成下载,可能使用readFile().

您可以选择在下载完成之前或之后删除ID,这取决于您.但是,如果它是一个大文件,您可能希望首先执行此操作,以便其他人不能使用相同的“密码”来同时进行多个下载.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读