Php 根据用户单击的内容更改文件名

Php 根据用户单击的内容更改文件名,php,mysql,sql,function,header,Php,Mysql,Sql,Function,Header,我有三个文件被上传到数据库的用户一旦他们竞争的形式。。问题是我有3个不同的下载脚本来检索文件。。。这些文件作为fileName1、fileName2、fileName3和File1、File2、File3进入数据库。有没有办法只下载1个脚本而不是3个不同的脚本 以下是相关代码: $id = $_GET['id']; $query = "SELECT FileName3, File3 " . "FROM UserUploads WHERE ID = '$id'"; $re

我有三个文件被上传到数据库的用户一旦他们竞争的形式。。问题是我有3个不同的下载脚本来检索文件。。。这些文件作为
fileName1、fileName2、fileName3和File1、File2、File3进入数据库。有没有办法只下载1个脚本而不是3个不同的脚本

以下是相关代码:

$id    = $_GET['id'];
$query = "SELECT FileName3, File3 " .
         "FROM UserUploads WHERE ID = '$id'";

$result = mysqli_query($connection, $query) or die('Error, query failed');
list($filename3, $file3) = mysqli_fetch_array($result);

header("Content-Disposition: attachment; filename=$filename3");
echo $file3;

我可以将所有
fileName1、fileName2、fileName3和File1、File2、File3
添加到
SELECT
语句中,但问题是
header()
echo
后面的行。。。如何根据用户单击的内容更改此选项?

如果为一个用户提供3个下载链接。每个链接都有一个参数,例如“file”:

http://your-domain.com/download.php?file=1&id=1234
http://your-domain.com/download.php?file=2&id=1234
http://your-domain.com/download.php?file=3&id=1234
然后将开关盒块添加到文件中

$id    = (int)$_GET['id'];
$file  = (int)$_GET['file'];

if($file <= 0 || $file >= 4) {
    die('bad boy');
}

$query = "SELECT FileName$file as filename, File$file as file " .
         "FROM UserUploads WHERE ID = '$id'";

$result = mysqli_query($connection, $query) or die('Error, query failed');
list($fn, $data) = mysqli_fetch_array($result);

header("Content-Disposition: attachment; filename=$fn");
echo $data;
$id=(int)$\u GET['id'];
$file=(int)$\u GET['file'];
如果($file=4){
死(“坏男孩”);
}
$query=“选择文件名$file作为文件名,选择文件$file作为文件”。
“来自UserUploads,其中ID='$ID';
$result=mysqli_query($connection,$query)或die('Error,query failed');
list($fn,$data)=mysqli_fetch_数组($result);
标题(“内容处置:附件;文件名=$fn”);
回波数据;

没有测试它。

首先:你知道SQL注入吗?你的代码不好!