我为乐队制作了一个网站,他们免费提供他们的 EP,但他们想要它,以便用户在下载之前必须输入他们的电子邮件地址......如何在 php 中做到这一点?
可下载的内容应该放在 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;
}
如果您
以某种方式存储电子邮件,则只需在他们提交电子邮件时设置一个$_SESSION
值,并且在编写页面时,如果已设置$_SESSION
值的一部分,则提供指向媒体的链接。
要启动会话并设置值,请执行以下操作:
session_start();
$_SERVER['hasEmail']=true;
在页面中:
session_start();
if ($_SERVER['hasEmail']) {
//Provide link
}
然后,您还可以让媒体链接将您带到一个 PHP 脚本,该脚本使用 fopen()
或类似功能从文件系统上用户无法访问的另一个位置获取文件,例如 .htaccess 阻止下的位置,并且它只会提供设置$_SESSION
值的媒体。