Impossible d'obtenir php pour enregistrer le nom de fichier avec le nom correct
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.
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!