2011-06-15 74 views
0

我試圖做一個數據庫,上傳圖片並顯示它們,就像一個畫廊。它上傳他們,但問題是照片應該是哪裏給了我這個奇怪的符號(抱歉不能發佈,因爲我是新的| |),我不知道這是否意味着它只是拒絕顯示它們,或者出了些問題。幫幫我?奇怪的符號,我的照片應該在哪裏?

<?php 
    mysql_connect("localhost") or die(mysql_error()); 
    mysql_select_db("images") or die(mysql_error()); 

    $id=addslashes($_REQUEST['id']); 
    $image=mysql_query("SELECT * FROM dadsda WHERE id=$id"); 
    $image=mysql_fetch_assoc($image); 
    $image=$image['image']; 

    header("Content-type: image/jpeg"); 

    print($image); 
?> 
+0

對不起回合代碼錯誤 – SDuke 2011-06-15 21:05:33

+0

回顯$圖片。 – ssapkota 2011-06-15 21:10:15

+0

你輸出的值? – 2011-06-15 21:11:44

回答

3

該代碼中沒有任何一點是圖像實際輸出。

如果image是數據庫中的BLOB字段,則需要在調用header()之後執行print $image;。如果是文件名/路徑,則需要使用readfile()來輸出該文件的內容。

此外,此代碼易受SQL注入攻擊。如果我去script.php?id=1%3B+DROP+TABLE+dadsda%3B它會刪除你的數據庫表,因爲我剛剛讓你的代碼執行SQL查詢SELECT * FROM dadsda WHERE id=1; DROP TABLE dadsa;

+1

更進一步的SQL注入點上面,檢查出http://php.net/manual/en/function.mysql-real-escape-string.php – JustinW 2011-06-15 21:27:51

+0

感謝您的提示,但仍然與所有人都說的一切,它來具有相同的結果。 – SDuke 2011-06-15 21:33:20

+0

你可以用修改後的代碼更新你的問題嗎? – ceejayoz 2011-06-15 21:35:07

-2

有時如果圖像盒是空的我的JPEG是不是在服務器端的MIME類型定義..只是右鍵單擊空白圖像框,並給我屬性... 問候..

+0

這樣也不管用,反正在這裏,作爲'Content-Type的標題'正在被PHP腳本定義。 – Brad 2011-06-15 21:29:58