我正在为乐队制作网站,他们正在免费发放他们的EP,但他们想要它,所以用户必须在下载之前输入他们的电子邮件地址...这将如何在PHP中完成?防止下载媒体,除非用户已填写表格
3
A
回答
2
可以下载的应该放在web用户无法触及的范围内,但在PHP脚本范围内。然后,一旦用户完成填写表单,就可以通过使用“fopen”来强制下载文件内容。
更新(添加示例代码):
假设该文件是“txt.txt”这可能是在您的脚本范围。如果要存储的电子邮件,你会打开它,阅读,然后把内容调用头并告诉它,它的附件(力下载)后
$done = true;
if($done == true){
$filename = "txt.txt";
$conn = fopen($filename,"r");
$contents = fread($conn, filesize($filename));
fclose($conn);
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="downloaded.txt"');
echo $contents;
}
0
不知何故,后来干脆设置一个$_SESSION
值,当他们提交他们的电子邮件,并在编写页面时,如果$_SESSION
值的一部分已设置,则提供一个链接到媒体。
启动一个会话&设定值:
session_start();
$_SERVER['hasEmail']=true;
,并在页面:
session_start();
if ($_SERVER['hasEmail']) {
//Provide link
}
然后,您可以也有媒体链接带你到使用fopen()
或PHP脚本类似于从您的文件系统上的另一个位置获取文件,该文件系统不在用户的范围之内,例如在.htaccess之下阻止一个文件系统,并且它只会提供介质值为$_SESSION
的值。
相关问题
- 1. 防止自动填写表格数据
- 2. 防止从用户下载
- 3. 停止提交表格,除非填写所有字段
- 4. 防止从Magento中的媒体文件夹下载
- 5. 如何防止Web字体被非法下载和使用?
- 6. 防止媒体重播
- 7. 防止用户下载或打开PowerPoint
- 8. 防止窗体加载,除非条件得到满足
- 9. 防止下载?
- 10. 与媒体下载
- 11. 下载:删除社交媒体链接?
- 12. 如何使用iTextSharp填写已填写的PDF表格
- 13. Java媒体API:java媒体API下载
- 14. 防止下载http内容主体
- 15. 用户已经存在,请填写表格
- 16. scrapy防止下载文件,如果已经下载
- 17. 手写笔:防止媒体标签解释字符串
- 18. 防止用户移动到下一个表格
- 19. VBA用户表格填写整列
- 20. 防止媒体扫描器扫描JPG下载Android上的DownloadManager? (开发人员)
- 21. 防止移动/ javascript媒体上的视频下载查询宽度
- 22. 用R填写表格后下载文件
- 23. 清除一个字段当用户开始填写表格
- 24. Android如何停止/终止/取消媒体上传或下载
- 25. 红宝石轨道不能填写表格,除非是真的
- 26. 非阻止下载
- 27. 如何防止多个帐户与社交媒体登录?
- 28. Sitecore媒体项目下载
- 29. 部队下载媒体
- 30. Javascript - 下载所有媒体
如何使用fopen下载文件? –
我已经用代码更新了我的答案。文件名“download.txt”将显示给用户的文件名称。 – Arfeen