2012-07-24 45 views
0

我有一個小圖片上傳腳本,這是一種多圖片上傳的目的之一。圖片從php上傳到mysql,上傳後BLOBS中的字段爲空

這裏是「提交後」的總數。問題是,上傳後,所有的圖片字段都是空的。沒有任何圖片不能在sql中登錄。可能是什麼問題呢?

<?php 

ini_set('display_errors',1); 
error_reporting(E_ALL); 
$conn = mysql_connect("127.0.0.1","root",""); 
if(!$conn) 
{ 
    echo mysql_error(); 
} 
$db = mysql_select_db("newone",$conn); 
if(!$db) 
{ 
echo mysql_error(); 
} 

$aphoto = addslashes(file_get_contents($_FILES['picone']['tmp_name'])); 
$aphoto = addslashes(file_get_contents($_FILES['pictwo']['tmp_name'])); 
$aphoto = addslashes(file_get_contents($_FILES['picthree']['tmp_name'])); 
$aphoto = addslashes(file_get_contents($_FILES['picfour']['tmp_name'])); 
$image = getimagesize($_FILES['picone']['tmp_name']); //to know about image type etc. 
$image = getimagesize($_FILES['pictwo']['tmp_name']); 
$image = getimagesize($_FILES['picthree']['tmp_name']); 
$image = getimagesize($_FILES['picfour']['tmp_name']); 




$q = "INSERT INTO pictures(picone, pictwo, picthree, picfour) Values('$picone','$pictwo','$picthree','$picfour')"; 


$r = mysql_query($q,$conn); 
if($r) 
{ 
    header("Location: main.php"); 
    echo "Information stored successfully"; 
} 
else 
{ 
    echo mysql_error(); 
} 

?> 
+0

在數據庫中存儲的圖像的第一線

$q = "INSERT INTO pictures(picone, pictwo, picthree, pic four) Values('$picone','$pictwo','$picthree','$picfour')"; 

看跌是不是一個很好的做法。存儲圖片的路徑 – asprin 2012-07-24 10:42:53

+0

強制性的:您的查詢很容易進行sql注入,而且我很確定我能夠上傳一個shell。消毒和驗證輸入,否則你將被黑客攻擊 – Kush 2012-07-24 10:44:52

+0

嗯,我對你給我的建議很失落,基本上,我可以在腳本中添加這些保護性附加信息,但是,我不知道在哪裏如何...其次,我不知道如何將圖像保存到文件夾中,並通過它名稱從那裏調用數據庫。你對我需要搜索的標籤有什麼想法,或者你有什麼跡象可以描述我將其添加到腳本中? – Articillusion 2012-07-24 10:58:14

回答

-1
file_get_contents($_FILES['picone']['tmp_name']) 

..looks相當冒險。

你應該先把它複製到某處。

0

你應該瞭解一點PHP你到php.net解決這個 頭前,先學

你的基本語法是完全不正確的基本知識。 例如,$ picone從哪裏來?

0

什麼是你想在這裏做的:

$aphoto = addslashes(file_get_contents($_FILES['picone']['tmp_name'])); 
$aphoto = addslashes(file_get_contents($_FILES['pictwo']['tmp_name'])); 

從何處得到這些變量($picone$pictwo$picthree$picfour)?在你的腳本error_reporting(E_ALL)