题
出于某种原因,使用此代码它输出文件就被称为“.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';
貌似安全问题的世界里,但!覆写它有权与攻击者的文件选择任何文件的脚本!
不隶属于 StackOverflow