2009-01-21 10 views
0

Je tente de télécharger des images enregistrées dans une url dans un dossier local, et j'ai essayé de le faire avec curl. Je voudrais savoir s'il est nécessaire d'inclure curl ou le télécharger seperateley, ou si ma fonction va juste fonctionner. Je voudrais savoir s'il y a des problèmes évidents avec ma mise en œuvre ci-dessous. Je suis conscient de la vulnérabilité sql et je passe à des instructions préparées. J'ai coupé les parties non pertinentes du code pour la brièveté.Problème curl et php - page blanche

edit: la fonction est hors de la boucle while. La page s'affiche si je commente l'appel de la fonction, sinon je n'ai qu'une page blanche. Pourquoi est-ce

<?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); 
+0

savePhoto() vs savePicture()? – Gumbo

+0

Pourquoi ne pas simplement définir error_reporting sur E_ALL (ou mieux: E_STRICT) et tester votre script? Ce serait le plus facile à voir, s'il y a des erreurs. – Gumbo

+0

Je définis le rapport d'erreur sur E_ALL, mais je n'ai pas accès aux fichiers journaux et rien n'est affiché dans le navigateur. –

Répondre

1

Vous obtiendrez une erreur si vous déclarez une fonction dans une boucle lorsque la boucle est exécutée plusieurs fois. Vous devez donc déclarer la fonction savePicture en dehors de while.

0

Je prendrais la définition de fonction hors du bloc while. À mon avis votre utilisation curl pour l'utilisation de curl ici, une méthode plus simple serait d'utiliser file get contents.

+0

Je n'ai actuellement pas accès à une URL en tant que fichier, ce qui est nécessaire pour obtenir le contenu du fichier, n'est-ce pas? –