正しい名前を持つファイル名を保存するためにPHPを得るカント

StackOverflow https://stackoverflow.com/questions/1055295

  •  20-08-2019
  •  | 
  •  

質問

何らかの理由で、それが出力し、このコードを使用してファイルを単に「.JPG」と呼ばれます。

<?
$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を宣言して行う必要があり、任意の助けをいただければ幸いです。

役に立ちましたか?

解決

この行のように見える。

$ourFileName = $title.jpg;

$ourFileName = $title . ".jpg";

;

それは限り、あなたは$ _GET [「タイトル」]に値があることを確認しているようにそれを行う必要があります

他のヒント

あなたは確か$GET['title']ですが正しいのですか? GETパラメータの値にアクセスするためのスーパーグローバル変数は$_GET、ない$GETです。

これを試してみてください     $ ourFileName = $タイトル。 ".JPG";

それは次のようでなければなりませんように見えます

$ourFileName = $title.'.jpg';

確かにする必要があります。

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

がしかし、セキュリティ上の問題の世界のように見えます!それは攻撃者のファイルを選択するとする権限を持つ任意のファイルを上書きするスクリプト!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top