2009-06-28 135 views
0

由於某種原因,使用此代碼時,它輸出的文件被稱爲「.jpg」。不能得到PHP以正確的名稱保存文件名

<? 
$title = $GET['title']; 
$url = $GET['url']; 

$ourFileName = $title.jpg; 
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file"); 
fclose($ourFileHandle); 

$ch = curl_init ("http://www.address.com/url=$url"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); 
$rawdata=curl_exec ($ch); 
curl_close ($ch); 

$fp = fopen("images/$ourFileName",'w'); 
fwrite($fp, $rawdata); 
fclose($fp); 

echo ("<img src=images/$ourFileName>"); 
?> 

很確定它與聲明$ ourFileName有關,任何幫助將不勝感激。

回答

1

看起來這行

$ourFileName = $title.jpg; 

應該

$ourFileName = $title . ".jpg"; 

應該這樣做,只要你相信能有是$ _GET ['title']中的一個值;

1

看起來應該是如下:

$ourFileName = $title.'.jpg'; 
1

當然應該是

$title = $_GET['title']; 
$url = $_GET['url']; 
$ourFileName = $title.'.jpg'; 

貌似安全問題的世界裏,但!一個腳本,用攻擊者選擇的文件覆蓋它有權訪問的任何文件!

3

您確定$GET['title']是正確的嗎?用於訪問GET參數值的超全局變量是$_GET,而不是$GET

2

試試這個 $ ourFileName = $ title。 「.JPG」;

相關問題