[PHP] Fout in PNG

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 10:05
Als ik de volgende code gebruik:

Zeer ingekorte versie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$image=new imgtest2;

header ("Content-type: image/png");

echo $image->CreateImage();

class imgtest2 {

function CreateImage() {
    $im = @imagecreatetruecolor(600, 380);
    return imagepng($im);
}

}
?>


Dan krijg ik mooi een zwart vlak.

Dat werkt, echter als ik class verhuis naar een 2e bestand:
PHP:
1
2
3
4
5
6
7
8
9
<?php
class imgtest2 {

function CreateImage() {
    $im = @imagecreatetruecolor(600, 380);
    return imagepng($im);
}
}
?>

en ik roep hem aan:
PHP:
1
2
3
4
5
6
7
8
9
<?php
include 'imgtest2.php5';

$image=new imgtest2;

header ("Content-type: image/png");

echo $image->CreateImage();
?>


dan verschijnt er binnen mozilla:
The image "http://localhost/imgtest.php5" cannot be displayed, because it containsd errors.
En ik ben compleet clueless. De complete class heb ik voor deze situatie helemaal gestript tot bovenstaande voorbeeld, en ik blijf de error houden. Wie kan me helpen?

Als ik de header regel verwijder, verschijnt er netjes de PNG file signature.

Acties:
  • 0 Henk 'm!

Verwijderd

Moest je bij PHP5 niet altijd include_once gebruiken? Of sla ik de bal nu helemaal mis?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Heb je ergens een lege regel staan buiten de <?php tags? Als er nm een legen regel voor de headers gestuurd wordt gaat het mis!

Acties:
  • 0 Henk 'm!

  • ADT_Phantom
  • Registratie: April 2006
  • Laatst online: 17-08 18:22
kijk of je in het bestand dat je include geen spaties of tabs per ongeluk na je sluit tag (?>) hebt staan. Of probeer de output buffer eens leeg te gooien voordat je de afbeelding echot

Acties:
  • 0 Henk 'm!

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 10:05
Je hebt nog gelijk ook... ik had gelet op lege regels, echter 1 spatie achter de sluittag viel niet op. En daar maar 1 hele avond naar lopen zoeken :X

Acties:
  • 0 Henk 'm!

  • Zeror
  • Registratie: September 2003
  • Laatst online: 20-09 18:07

Zeror

Ik Henk 'm!

Hey, die is best handig. :o
Nooit eerder gezien. Misschien omdat ie niet sticky is??

@BalusC,
Een aantal Faq's kende ik al wel, maar bijv. die image manipulation van -NMe- was me nog nooit opgevallen ;)
Maar thanks

[ Voor 18% gewijzigd door Zeror op 14-02-2007 10:40 ]

Trans-life! :::: Nintendo ID: Zeror_rk / SW-6670-3316-6323 :::: BattleTag: Zerora#21213 :: Twitch: ZERORAh


Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Alle FAQ's staan gewoon gelinkt in de hoofd-FAQ van de subforum. In dit geval dus Welkom in Programming - FAQ en Beleid. Het is als subforumbezoeker toch best wel verplicht om de subforum-FAQ uit hoofd te kennen ;)

[ Voor 24% gewijzigd door BalusC op 14-02-2007 10:37 ]


Acties:
  • 0 Henk 'm!

  • lammert
  • Registratie: Maart 2004
  • Laatst online: 03-09 11:50
jvdmeer schreef op woensdag 14 februari 2007 @ 10:23:
[...]


Je hebt nog gelijk ook... ik had gelet op lege regels, echter 1 spatie achter de sluittag viel niet op. En daar maar 1 hele avond naar lopen zoeken :X
Haha... ik denk dat die situatie iedereen hier wel bekend voorkomt, maar kreeg je geen "headers already sent" error? Of had je error reporting uit staan?

Acties:
  • 0 Henk 'm!

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 10:05
lammert schreef op woensdag 14 februari 2007 @ 11:05:
[...]

Haha... ik denk dat die situatie iedereen hier wel bekend voorkomt, maar kreeg je geen "headers already sent" error? Of had je error reporting uit staan?
Error reporting staat bij mij zelf helemaal aan, wat leidt tot vage constructies om een notice te vermijden: (voorbeeldje)
PHP:
1
2
3
4
5
// Liefst had ik hier gedaan:
//    $url[$value]=$_GET[$value]
// maar dat levert consequent een E_Notice op. Dit is een
// manier om daar omheen te werken.
$url = array_merge ($url, array($value => $_GET[$value]));


Nee, ik kreeg die melding niet, en dat is wel vaag, want de file werd eerst geïnclude, en daarna werden de headers verstuurd. Dus je zou die melding wel verwachten. Dan had ik trouwens de fout ook sneller gevonden.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

lammert schreef op woensdag 14 februari 2007 @ 11:05:
[...]

Haha... ik denk dat die situatie iedereen hier wel bekend voorkomt, maar kreeg je geen "headers already sent" error? Of had je error reporting uit staan?
Waarom zou je die krijgen? De header staat toch vóór die extra spatie die achter de sluittag kwam? Dat levert geen "headers already sent" op. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Krijg je geen foutmelding als je in de bron kijkt?

Acties:
  • 0 Henk 'm!

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 10:05
-NMe- schreef op woensdag 14 februari 2007 @ 11:51:
[...]

Waarom zou je die krijgen? De header staat toch vóór die extra spatie die achter de sluittag kwam? Dat levert geen "headers already sent" op. :)
Weet nu zelf niet meer waar de spatie stond. Aan het einde van de included-file of aan het einde van de main-file. Logischerwijs zou je zeggen dat hij stond op het einde van de main-file, doordat er geen melding kwam. Hij zou er volgens mij wel moeten komen als hij aan het einde van de include stond. (correct me if i'm wrong).
Verwijderd schreef op woensdag 14 februari 2007 @ 11:55:
Krijg je geen foutmelding als je in de bron kijkt?
Hoe bedoel u dit?

[ Voor 13% gewijzigd door jvdmeer op 14-02-2007 12:06 ]


Acties:
  • 0 Henk 'm!

Verwijderd

The image "http://localhost/imgtest.php5" cannot be displayed, because it containsd errors.
Als hij dit weergeeft, moet je even in de bron kijken, daar zie je dan waarschijnlijk een foutmelding staan.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op woensdag 14 februari 2007 @ 12:58:
[...]


[...]

Als hij dit weergeeft, moet je even in de bron kijken, daar zie je dan waarschijnlijk een foutmelding staan.
Als je even wat meer naar boven scrollt zul je zien dat hij zijn probleem allang opgelost heeft. ;)
jvdmeer schreef op woensdag 14 februari 2007 @ 12:06:
[...]


Weet nu zelf niet meer waar de spatie stond. Aan het einde van de included-file of aan het einde van de main-file. Logischerwijs zou je zeggen dat hij stond op het einde van de main-file, doordat er geen melding kwam. Hij zou er volgens mij wel moeten komen als hij aan het einde van de include stond. (correct me if i'm wrong).
Klopt volgens mij als een bus. :)

[ Voor 41% gewijzigd door NMe op 14-02-2007 13:02 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

-NMe- schreef op woensdag 14 februari 2007 @ 13:01:
[...]

Als je even wat meer naar boven scrollt zul je zien dat hij zijn probleem allang opgelost heeft. ;)
Whoops, over het hoofd gezien :o
Pagina: 1