probleme de variable

nano855
Invité n'ayant pas de compte PHPfrance

27 févr. 2012, 11:20

Bonjour à tous!

j'ai trouvé un script pour recadré/redimenssionné les images. et quand je fait mon test sur un serveur type perso chez ovh ca marche... mais quand je veux le mettre sur un serveur type pro (toujours chez ovh) ca la me met

Notice: Undefined variable: src in /homez.488/xxxxxx/www/xxxx/thumb.php on line 46

ma question est: Pourquoi une difference entre les 2 serveurs alors que c'est le même code... Et comment arrangé ca?
Voici le code:
<?php

class cropImage{
 var $imgSrc,$myImage,$cropHeight,$cropWidth,$x,$y,$thumb;  
 var $src = "";
 function setImage($image)
	{

	//Your Image
	   $this->imgSrc = $image; 
	
	//getting the image dimensions
	   list($width, $height) = getimagesize($this->imgSrc); 
	
	//create image from the jpeg
	   $this->myImage = imagecreatefromjpeg($this->imgSrc) or die("Error: Cannot find image!");

		   if($width > $height) $biggestSide = $width; //find biggest length
		   else $biggestSide = $height;
						$ratio =1-( 79/$width); 
	//The crop size will be half that of the largest side
	   $cropPercent = $ratio; // This will zoom in to 50% zoom (crop)
	   $this->cropWidth   = $width*$cropPercent;
	   $this->cropHeight  = $height*$cropPercent;		 
	//getting the top left coordinate
	   $this->x = 0; //($width-$this->cropWidth)/2;
	   $this->y = 0; //($height-$this->cropHeight)/2;	 
	}  
 function createThumb()
	{				
	  $thumbSizeWidth = 79; // will create a 250 x 250 thumb
	  $thumbSizeHeight = 53;
	  $this->thumb = imagecreatetruecolor($thumbSizeWidth, $thumbSizeHeight); 

	  imagecopyresampled($this->thumb, $this->myImage, 0, 0, $this->x, $this->y,  $thumbSizeWidth,  $thumbSizeHeight, $this->cropWidth, $this->cropHeight); 
	}  
 function renderImage()
	{				 
	   header('Content-type: image/jpeg');
	   imagejpeg($this->thumb);
	   imagedestroy($this->thumb); 
	}  
}  

$image = new cropImage;
$image->setImage($src);
$image->createThumb();
$image->renderImage();  
?>
Merci pour l'aide.

Eléphant du PHP | 179 Messages

27 févr. 2012, 11:23

Une notice est une sorte d'avertissement cependant, ca ne génera pas ton script de fonctionné.
Pour ce qui est de la différence entre tes deux serveurs, c'est la configuration qui change. Dans celui ou tu n'as pas ceci, tu as les avertissements et erreurs desactivés, et dans l'autre elles sont activées :)

nano855
Invité n'ayant pas de compte PHPfrance

27 févr. 2012, 11:38

Merci pour ta réponse aussi rapide.

tu dis que ça n’empêchera pas mon script de fonctionner cependant lorsque je fait appel à lui en faisant:
<img src="thumb.php?src=xxx.jpg" >
cela ne marche pas alors que ca marchais sur l'autre serveur où je n'ai pas la notification.

ViPHP
xTG
ViPHP | 7331 Messages

27 févr. 2012, 11:39

Il est faux de dire qu'un warning n'implique rien. Dans ce cas là on génère des erreurs à la chaîne car on travaille sur du vide au lieu d'un image...

Dans ton cas le message d'erreur est tout à fait correct, tu n'as pas de variable nommée $src.
Tu en as bien une mais à l'intérieur de la class.

Il faut utiliser $_GET['src'], register_global est désactivé depuis PHP5 pour des raisons de sécurité.

nano855
Invité n'ayant pas de compte PHPfrance

27 févr. 2012, 12:00

ok je pensais que déclarer dans la class suffisait.
ca marche avec $_GET["src"];
Je te remercie pour l'info et pour la rapidité de la réponse !