Heeft iemand enige idee waarom de onderstaande code van php 5.3 naar php 5.4 niet meer werkt?

Oude code (100% werkend in php 5.3, maar niet meer na een upgrade naar php 5.4):

<?php
$system_afbeelding_screen = "<img src=\"/afbeelding?w=175&amp;h=175&amp;i=$system_afbeelding\" alt=\"$title\" style=\"border-width:0px;\" />";
?>


En daar lijkt hij het stukje: ?w=175&amp;h=175&amp;i=$system_afbeelding voor problemen te zorgen


Tijdelijke code (echter worden plaatjes hierbij soms te breed, maar als ik dit instel worden de plaatjes uit hun verband gerukt):

<?php
$system_afbeelding_screen = "<img src=\"$system_afbeelding\" height=\"175\" alt=\"$title\" style=\"border-width:0px;\" />";
?>


Alvast bedankt
Ik heb al gekeken, maar 'afbeelding' lijkt geen functie te hebben, naast dat de afbeelding goed geschaald wordt. er staat er een map afbeeldingen en afbeelding.php.

Daarnaast werkt het wel in php 5.3 maar na de update naar 5.4 van onze provider niet meer..
Wat is de inhoud van het bestand afbeelding.php?
Dus je hebt wel een pagina afbeelding.php
Verwijs je script ook eens hierna
<?php
$system_afbeelding_screen = '<img src="/afbeelding.php?w=175&amp;h=175&amp;i=' . $system_afbeelding . '" alt="' . $title . '" style="border-width:0px;" />';
?>
Michael - op 10/03/2014 08:10:47

Dus je hebt wel een pagina afbeelding.php
Verwijs je script ook eens hierna
<?php
$system_afbeelding_screen = '<img src="/afbeelding.php?w=175&amp;h=175&amp;i=' . $system_afbeelding . '" alt="' . $title . '" style="border-width:0px;" />';
?>


Ook dit zou al kunnen helpen. Ik snap uberhaubt niet waarom de extensie niet vermeld staat in de link. Wellicht verkeerd overgenomen?
Zodra ik dat verder heeft dit ook geen effect, ook niet als ik de naam afbeelding verander naar iets anders...
Wat staat er in afbeelding.php?
Zou je de output van dit willen geven?
<?php
$system_afbeelding_screen = '<img src="/afbeelding?w=175&amp;h=175&amp;i=' . $system_afbeelding . '" alt="' . $title . '" style="border-width:0px;" />';

var_dump(htmlentities($system_afbeelding_screen));
?>
Ik had schijnbaar inderdaad niet goed gekeken.
Hier staat wel input voor de afbeeldingen in:

i= is de url


<?php
	if (substr($image_path, 0, 1)=="/") 
		$image_path = substr($image_path, 1);
		
	if (is_file($image_path)) {
	
		$maxwidth = 100;
		if (isset($_GET["w"])) $maxwidth = $_GET["w"];
		$maxheight = 150;
		if (isset($_GET["h"])) $maxheight = $_GET["h"];
		
		$img = null;
		if ($image_ext == 'jpg' || $image_ext == 'jpeg') {
			$img = @imagecreatefromjpeg($image_path);
		} else if ($image_ext == 'png') {
			$img = @imagecreatefrompng($image_path);
		} else if ($image_ext == 'gif') {
			$img = @imagecreatefromgif($image_path);
		}
		
		if ($img) {
			$width = imagesx($img);
			$height = imagesy($img);
			$scale = min($maxwidth/$width, $maxheight/$height);
		
			if ($scale < 1) {
				$new_width = floor($scale*$width);
				$new_height = floor($scale*$height);
		
				$tmp_img = imagecreatetruecolor($new_width, $new_height);
		
				imagecopyresized($tmp_img, $img, 0, 0, 0, 0, 
								 $new_width, $new_height, $width, $height);
				imagedestroy($img);
				$img = $tmp_img;        
			}    
		}
		
		if (!$img) {
			$img = imagecreate(10, 10);
			imagecolorallocate($img,0,0,0);
			$c = imagecolorallocate($img,70,70,70);
			imageline($img,0,0,10,10,$c);
			imageline($img,10,0,0,10,$c); 
		}
?>
Dus zoals eerder gezegd moet je wel naar afbeelding.php wijzen.
Ik zie nergens $_GET['i'] ? Waar je haal je vandaan dat i de url is? (Dit zou de afbeelding moeten zijn?)

Geef even aan wat onderstaande code bij jou weergeeft en of er nog steeds een probleem is.

<?php
$system_afbeelding_screen = '<img src="/afbeelding.php?w=175&amp;h=175&amp;i=' . $system_afbeelding . '" alt="' . $title . '" style="border-width:0px;" />';

echo $system_afbeelding_screen;

var_dump(htmlentities($system_afbeelding_screen));
?>
Michael - op 14/03/2014 10:20:18

Dus zoals eerder gezegd moet je wel naar afbeelding.php wijzen.

Dat ligt er maar net aan wat er in je mod_rewrite staat. Als afbeelding naar afbeelding.php wordt herschreven dan maakt het niet uit.

Verder zou ik de fout niet in dit script gaan zoeken. Aan die img tag zal weinig mis zijn. De fout ligt ongetwijfeld in het script waar de afbeelding wordt opgemaakt. Wellicht een functie die niet meer bestaat in 5.4, of een andere set aan parameters verwacht. Roep dus de link die je in de img tag hebt staan eens direct op in de browser en loop regel voor regel door dat bestand heen. Zet gewoon regelmatig (alleen om te testen) een echo en zet een exit voor je het plaatje naar het scherm print. Kijk waar het script stokt, daar moet je het zoeken.
zou het kunnen dat je PHP zonder de GD-functies gebruikt?

Dan zou je foutmeldingen om die functies moeten krijgen.
Staat de error reporting aan?

Reageren