2009-01-21 122 views
0

我試圖下載保存在一個url中的圖像到本地文件夾,並做了下面的嘗試,這樣做與捲曲。我想知道是否有必要包括捲曲或下載它seperateley,或者如果我的功能將工作。我想知道下面我的實施是否有任何明顯的問題。我意識到這個sql漏洞,並且正在切換到準備好的語句。爲簡潔起見,我修剪了代碼中不相關的部分。捲曲和php問題 - 空白頁

edit:該函數不在while循環中。如果我將該函數註釋掉,該頁面將顯示,否則我只會得到一個空白頁面。爲什麼是這樣的

<?php 
header("Content-Type: text/html; charset=utf-8"); 
if (isset($_GET["cmd"])) 

    $cmd = $_GET["cmd"]; 

else 

    die("You should have a 'cmd' parameter in your URL"); 

$pk = $_GET["pk"]; 

$con = mysql_connect("localhost","someuser","notreal"); 

if(!$con) 

{ 

die('Connection failed because of' .mysql_error()); 

} 
mysql_query('SET NAMES utf8'); 

mysql_select_db("somedb",$con); 

if($cmd=="GetAuctionData") 

{ 

$sql="SELECT * FROM AUCTIONS WHERE ARTICLE_NO ='$pk'"; 

$sql2="SELECT ARTICLE_DESC FROM AUCTIONS WHERE ARTICLE_NO ='$pk'"; 

$htmlset = mysql_query($sql2); 

$row2 = mysql_fetch_array($htmlset); 



$result = mysql_query($sql); 

function savePicture($imageUrl) { 
    $ch = curl_init(); 
    curl_setopt ($ch, CURLOPT_URL, $lastImg); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0); 
    $fileContents = curl_exec($ch); 
    curl_close($ch); 
    $newImg = imagecreatefromstring($fileContents); 
    return imagejpeg($newImg, "./{$pk}.jpg",100); 
} 

while ($row = mysql_fetch_array($result)) 
{ 



$lastImg = $row['PIC_URL']; 


savePicture($lastImg); 


<div id='rightlayer'> 

<img src='./".$pk.".jpg' width='".$outputWidth."' height='".$outputHeight."'> 


</div> 

</div> 

</div>"; 



} 



} 

mysql_free_result($result); 
+0

savePhoto()vs savePicture()? – Gumbo 2009-01-21 13:53:44

+0

爲什麼不直接將error_reporting設置爲E_ALL(或更好:E_STRICT)並測試腳本?如果有任何錯誤,這將是最容易看到的。 – Gumbo 2009-01-21 14:05:07

回答

1

如果在循環運行多次時在循環中聲明函數,則會出現錯誤。所以你應該在while之外聲明savePicture函數。

0

我想從while塊的函數定義。

在我看來,你使用捲曲爲了在這裏使用捲曲,更簡單的方法是使用file get contents