Impossible d'obtenir php pour enregistrer le nom de fichier avec le nom correct

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

  •  20-08-2019
  •  | 
  •  

Question

Pour une raison quelconque, lors de l'utilisation de ce code, le fichier qu'il génère est simplement appelé & ".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>");
?>

Je suis sûr que cela concerne la déclaration de $ ourFileName. Toute aide serait la bienvenue.

Était-ce utile?

La solution

Ressemble à cette ligne

$ourFileName = $title.jpg;

Devrait être

$ourFileName = $title . ".jpg";

Cela devrait le faire tant que vous êtes sûr qu'il y a une valeur dans $ _GET ['title'];

Autres conseils

Êtes-vous sûr que $GET['title'] est correct? La variable superglobale permettant d’accéder aux valeurs du paramètre GET est $_GET et non $GET.

Essayez ceci     $ ourFileName = $ title. " .jpg " ;;

On dirait que cela devrait être le suivant:

$ourFileName = $title.'.jpg';

devrait sûrement être

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

Cela ressemble à un monde de problèmes de sécurité! Un script qui écrase tous les fichiers pour lesquels il dispose d’autorisations avec le fichier d’un attaquant choisissant!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top