Afbeelding worden niet weergegeven na php 5.4 upgrade
Oude code (100% werkend in php 5.3, maar niet meer na een upgrade naar php 5.4):
Code (php)
1
2
3
2
3
<?php
$system_afbeelding_screen = "<img src=\"/afbeelding?w=175&h=175&i=$system_afbeelding\" alt=\"$title\" style=\"border-width:0px;\" />";
?>
$system_afbeelding_screen = "<img src=\"/afbeelding?w=175&h=175&i=$system_afbeelding\" alt=\"$title\" style=\"border-width:0px;\" />";
?>
En daar lijkt hij het stukje: ?w=175&h=175&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):
Code (php)
1
2
3
2
3
<?php
$system_afbeelding_screen = "<img src=\"$system_afbeelding\" height=\"175\" alt=\"$title\" style=\"border-width:0px;\" />";
?>
$system_afbeelding_screen = "<img src=\"$system_afbeelding\" height=\"175\" alt=\"$title\" style=\"border-width:0px;\" />";
?>
Alvast bedankt
Gewijzigd op 07/03/2014 12:11:13 door Patrick cos
Waar komen $system_afbeelding en $title vandaan? Een speciale functie?
Code (php)
1
2
3
2
3
<?php //kleurtjes in dit blok tonen
$system_afbeelding_screen = '<img src="afbeelding?w=175&h=175&i='.$system_afbeelding.'" alt="'.$title.'" style="border-width:0px;" />';
?>
$system_afbeelding_screen = '<img src="afbeelding?w=175&h=175&i='.$system_afbeelding.'" alt="'.$title.'" style="border-width:0px;" />';
?>
Gewijzigd op 07/03/2014 11:40:46 door - Ariën -
De $system_afbeelding is wel de afbeelding (wordt uit de database gehaald).
De $title is de naam de het systeem waar de afbeelding bijstaat.
@Aar
Bedankt voor de tip.
afbeelding moet iets zijn, hoe kan je anders een afbeelding weergeven...
Is het probleem al opgelost?
Ik heb alleen een tijdelijke oplossing, maar als er te breede afbeelding geplaatst worden dan staat dit niet goed op de website.
Code (php)
1
2
3
2
3
<?php
$system_afbeelding_screen = "<img src=\"$system_afbeelding\" height=\"175\" alt=\"$title\" style=\"border-width:0px;\" />";
?>
$system_afbeelding_screen = "<img src=\"$system_afbeelding\" height=\"175\" alt=\"$title\" style=\"border-width:0px;\" />";
?>
Hierbij heb ik dus alleen de weggehaald. en toegevoegd.
Gewijzigd op 07/03/2014 12:20:45 door patrick cos
Is dit een php pagina? Dit bedoelt Michael te vragen volgens mij.
De afbeelding zie ik nergens naar verwijzen, ook niet naar een pagina.
Of wij snappen jou niet of jij ons niet.
Je wil een afbeelding weergeven. In je script verwijs je naar 'afbeelding' wat een pagina zou moeten zijn. Deze geef je variabelen als w,h en i mee die daarna jou plaatje zoude moeten vormen.
Ikzelf heb dit script niet geschreven, maar ik kan ook geen verwijzing naar een pagina zien.
want als ik afbeelding?w=175&h=175&i= weghaal dan wordt deze nog steeds doorgestuurd, naar een andere pagina.
Toevoeging op 07/03/2014 16:03:16:
Heeft iemand een idee of een andere manier van het goed schalen van de afbeeldingen? binnen deze context?
Patrick cos op 07/03/2014 13:18:25:
Het enige wat belangrijk is, dat de de afbeelding weer goed geschaald wordt.
Ikzelf heb dit script niet geschreven, maar ik kan ook geen verwijzing naar een pagina zien.
want als ik afbeelding?w=175&h=175&i= weghaal dan wordt deze nog steeds doorgestuurd, naar een andere pagina.
Toevoeging op 07/03/2014 16:03:16:
Heeft iemand een idee of een andere manier van het goed schalen van de afbeeldingen? binnen deze context?
Ikzelf heb dit script niet geschreven, maar ik kan ook geen verwijzing naar een pagina zien.
want als ik afbeelding?w=175&h=175&i= weghaal dan wordt deze nog steeds doorgestuurd, naar een andere pagina.
Toevoeging op 07/03/2014 16:03:16:
Heeft iemand een idee of een andere manier van het goed schalen van de afbeeldingen? binnen deze context?
Ik stel voor dat je eerst onderzoekt waar het woord afbeelding op slaat. Het zou al helpen als je zelf in ieder geval begrijpt wat je script doet.
Mijn vermoeden is dat je 90% kans hebt dat zodra je je script begrijpt de fout zelf wellicht ontdekt.
Staat er bijvoorbeeld in de map waar dit script staat een bestand met de naam 'afbeelding' oid?
Gewijzigd op 07/03/2014 16:44:20 door Peter K
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?
Verwijs je script ook eens hierna
Michael - op 10/03/2014 08:10:47:
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...
Zou je de output van dit willen geven?
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$system_afbeelding_screen = '<img src="/afbeelding?w=175&h=175&i=' . $system_afbeelding . '" alt="' . $title . '" style="border-width:0px;" />';
var_dump(htmlentities($system_afbeelding_screen));
?>
$system_afbeelding_screen = '<img src="/afbeelding?w=175&h=175&i=' . $system_afbeelding . '" alt="' . $title . '" style="border-width:0px;" />';
var_dump(htmlentities($system_afbeelding_screen));
?>
Hier staat wel input voor de afbeeldingen in:
i= is de url
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?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);
}
?>
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);
}
?>
Gewijzigd op 14/03/2014 10:05:53 door patrick cos
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.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$system_afbeelding_screen = '<img src="/afbeelding.php?w=175&h=175&i=' . $system_afbeelding . '" alt="' . $title . '" style="border-width:0px;" />';
echo $system_afbeelding_screen;
var_dump(htmlentities($system_afbeelding_screen));
?>
$system_afbeelding_screen = '<img src="/afbeelding.php?w=175&h=175&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.
Gewijzigd op 14/03/2014 10:32:40 door Erwin H
Dan zou je foutmeldingen om die functies moeten krijgen.
Staat de error reporting aan?