Afbeelding worden niet weergegeven na php 5.4 upgrade

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick cos

patrick cos

07/03/2014 11:31:36
Quote Anchor link
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):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?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):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$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
 
PHP hulp

PHP hulp

23/12/2024 02:57:02
 
Michael -

Michael -

07/03/2014 11:36:32
Quote Anchor link
Wat is 'afbeelding'? Een pagina?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$system_afbeelding_screen
= '<img src="afbeelding?w=175&amp;h=175&amp;i=' . $system_afbeelding . '" alt="' . $title . '" style="border-width:0px;" />';
?>
 
- Ariën  -
Beheerder

- Ariën -

07/03/2014 11:40:00
Quote Anchor link
Wel zou ik gewoon single-quotes gebruiken, dat scheelt de 'escaping' en maakt je lijn nog meer overzichtelijker.

Waar komen $system_afbeelding en $title vandaan? Een speciale functie?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php //kleurtjes in dit blok tonen
$system_afbeelding_screen = '<img src="afbeelding?w=175&amp;h=175&amp;i='.$system_afbeelding.'" alt="'.$title.'" style="border-width:0px;" />';
?>
Gewijzigd op 07/03/2014 11:40:46 door - Ariën -
 
Patrick cos

patrick cos

07/03/2014 12:10:27
Quote Anchor link
afbeelding?w=175 verwijst nergerns naar, is gewoon een tijdelijke naam om de hoogte en breede aan te geven.
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.
 
Michael -

Michael -

07/03/2014 12:13:39
Quote Anchor link
>> afbeelding?w=175 verwijst nergerns naar,

afbeelding moet iets zijn, hoe kan je anders een afbeelding weergeven...

Is het probleem al opgelost?
 
Patrick cos

patrick cos

07/03/2014 12:19:17
Quote Anchor link
Nee, het probleem is nog niet 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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$system_afbeelding_screen
= "<img src=\"$system_afbeelding\" height=\"175\" alt=\"$title\" style=\"border-width:0px;\" />";
?>


Hierbij heb ik dus alleen de
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
afbeelding?w=175&amp;h=175&amp;i=
weggehaald. en
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
height=\"175\"
toegevoegd.
Gewijzigd op 07/03/2014 12:20:45 door patrick cos
 
Peter K

Peter K

07/03/2014 12:43:45
Quote Anchor link
waar staat de tekst 'afbeelding' voor in:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
afbeelding?w=175&amp;h=175&amp;i=
?>


Is dit een php pagina? Dit bedoelt Michael te vragen volgens mij.
 
Patrick cos

patrick cos

07/03/2014 13:02:54
Quote Anchor link
De afbeelding zie ik nergens naar verwijzen, ook niet naar een pagina.
 
Michael -

Michael -

07/03/2014 13:07:20
Quote Anchor link
>>> 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.
 
Patrick cos

patrick cos

07/03/2014 13:18:25
Quote Anchor link
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&amp;h=175&amp;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?
 
Peter K

Peter K

07/03/2014 16:42:55
Quote Anchor link
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&amp;h=175&amp;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
 
Patrick cos

patrick cos

07/03/2014 17:06:45
Quote Anchor link
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..
 
Peter K

Peter K

10/03/2014 07:36:12
Quote Anchor link
Wat is de inhoud van het bestand afbeelding.php?
 
Michael -

Michael -

10/03/2014 08:10:47
Quote Anchor link
Dus je hebt wel een pagina afbeelding.php
Verwijs je script ook eens hierna
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$system_afbeelding_screen
= '<img src="/afbeelding.php?w=175&amp;h=175&amp;i=' . $system_afbeelding . '" alt="' . $title . '" style="border-width:0px;" />';
?>
 
Peter K

Peter K

10/03/2014 09:15:16
Quote Anchor link
Michael - op 10/03/2014 08:10:47:
Dus je hebt wel een pagina afbeelding.php
Verwijs je script ook eens hierna
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?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?
 
Patrick cos

patrick cos

14/03/2014 08:48:50
Quote Anchor link
Zodra ik dat verder heeft dit ook geen effect, ook niet als ik de naam afbeelding verander naar iets anders...
 
Michael -

Michael -

14/03/2014 08:53:50
Quote Anchor link
Wat staat er in afbeelding.php?
Zou je de output van dit willen geven?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?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));
?>
 
Patrick cos

patrick cos

14/03/2014 10:04:51
Quote Anchor link
Ik had schijnbaar inderdaad niet goed gekeken.
Hier staat wel input voor de afbeeldingen in:

i= is de url

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);
        }

?>
Gewijzigd op 14/03/2014 10:05:53 door patrick cos
 
Michael -

Michael -

14/03/2014 10:20:18
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?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));
?>
 
Erwin H

Erwin H

14/03/2014 10:32:02
Quote Anchor link
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
 
Ivo P

Ivo P

14/03/2014 10:48:22
Quote Anchor link
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?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.