0
我在我的PHP中遇到了一個小問題。php mysql返回代碼文件
目的是創建一個mySQL數據庫,並創建PHP頁面來上傳,列出和下載文件。
mySQL,上傳和列表頁面都很好,但是當我嘗試下載時,我得到的是代替文件,源代碼或者什麼也沒有。
你能幫我看看我的錯誤嗎?
這是read.php的腳本(文件列表)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Carica file nel database</title>
</head>
<p><b>Clicca su uno dei seguenti file</b><p><p></p>
<?php
include ("config.php");
include ("menu.php");
// connessione e selezione del database
mysql_connect('localhost', $userdb, $passdb)
or die('Connessione non riuscita: ' . mysql_error());
if(!mysql_select_db($database))
die('Selezione database fallita!');
// query per ottenere l'elenco dei files nel DB
$query = "SELECT * FROM data";
$risultato = mysql_query($query)
or die('Query non valida: ' . mysql_error());
// se ci sono files nel DB
if(mysql_numrows($risultato))
{
// estrazione dei risultati e stampa dei link ai files
while ($tmp = mysql_fetch_array($risultato))
{
echo "<p><a href=\"mostra.php?id=$tmp[id]\">$tmp[titolo]</a></p>\n";
}
}
else
{
echo '<p>Nessun file presente nel database</p>';
}
?>
<body></body>
</html>
而mostra.php(在意大利語中的意思是「秀」),這將使我下載的文件,方法是:
<?php
include ("config.php");
include ("menu.php");
// connessione e selezione del database
mysql_connect('localhost', $userdb, $passdb)
or die('Connessione non riuscita: ' . mysql_error());
if(!mysql_select_db($database))
die('Selezione database fallita!');
// query per recuperare il file
$query = 'SELECT file FROM data WHERE id = '.$_GET['id'];
$risultato = mysql_query($query) or die('Query non valida: ' . mysql_error());
$tmp = mysql_fetch_array($risultato);
// invio una intestazione contenente il tipo MIME
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$tmp[titolo]\"");
// invio il contenuto del file
echo $file;
?>
我想推薦你改變了'mysql_ *''爲* mysqli_'(http://br2.php.net/manual/en/book.mysqli.php)。 'mysql_ *'已棄用。 – Minoru
甚至使用PDO – Mina
添加上面的使用PDO而不是mysql_ *函數的註釋,也請注意,用戶可以通過SQL注入修改完整的數據庫,因爲您不驗證$ _GET ['id']中的你的mostra.php!請注意,不要在生產中使用上述代碼。 – Luceos