проблема с curl и php - пустая страница - PullRequest
0 голосов
/ 21 января 2009

Я пытаюсь загрузить изображения, сохраненные в URL, в локальную папку и предпринял следующую попытку сделать это с помощью curl. Хотелось бы узнать, стоит ли включать curl или скачивать его отдельно, или же моя функция будет просто работать. Я хотел бы знать, есть ли какие-либо очевидные проблемы с моей реализацией ниже. Я знаю об уязвимости sql и перехожу к подготовленным утверждениям. Я сократил несоответствующие части кода для краткости.

edit: функция находится вне цикла while. Страница отображается, если я закомментирую вызов функции, в противном случае я получу только пустую страницу. Почему это

<?php
header("Content-Type: text/html; charset=utf-8");
if (isset($_GET["cmd"]))

  $cmd = $_GET["cmd"];

else

  die("You should have a 'cmd' parameter in your URL");

 $pk = $_GET["pk"];

$con = mysql_connect("localhost","someuser","notreal");

if(!$con)

{

die('Connection failed because of' .mysql_error());

}
mysql_query('SET NAMES utf8'); 

mysql_select_db("somedb",$con);

if($cmd=="GetAuctionData")

{

$sql="SELECT * FROM AUCTIONS WHERE ARTICLE_NO ='$pk'";

$sql2="SELECT ARTICLE_DESC FROM AUCTIONS WHERE ARTICLE_NO ='$pk'";

$htmlset = mysql_query($sql2);

$row2 = mysql_fetch_array($htmlset);



$result = mysql_query($sql);

function savePicture($imageUrl) {
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, $lastImg);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
    $fileContents = curl_exec($ch);
    curl_close($ch);
    $newImg = imagecreatefromstring($fileContents);
    return imagejpeg($newImg, "./{$pk}.jpg",100);
}

while ($row = mysql_fetch_array($result))
{



$lastImg = $row['PIC_URL']; 


savePicture($lastImg);


<div id='rightlayer'>

<img src='./".$pk.".jpg' width='".$outputWidth."' height='".$outputHeight."'>


</div>

</div>

</div>";



}



}

mysql_free_result($result);

Ответы [ 2 ]

1 голос
/ 21 января 2009

Вы получите ошибку, если объявите функцию внутри цикла, если цикл выполняется более одного раза. Поэтому вы должны объявить функцию savePicture вне while.

0 голосов
/ 21 января 2009

Я бы взял определение функции из блока while.

По моему мнению, вы используете curl ради использования curl здесь, более простой способ - использовать file get content .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...