Toon posts:

[php] probleem met imagepng in netscape 7

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, ik heb de volgende code in mijn bestand front.php staan die prima door IE wordt uitgevoerd. In Netscape 6/7/Mozilla gaat dit echter niet goed want dan krijg ik de volgende error:
The image front.php cannot be displayed, because it contains errors.

De code staat nog tussen een loop waarin $i en $top[$i] bekend zijn.
PHP:
1
<?                      $im = @imagecreatefromjpeg ('thumb/'.$top[$i]);                                        $imm = @imagecreate (100, 69);                  $wit = imagecolorallocate ($imm, 255, 255, 255);                                                         imagecopy ( $imm, $im, 0, 0, 0, 0, 100, 69);                   imagestring ($imm,1,75,5,number_format($mark[$i],2),$wit);                                     header ("Content-type: image/png");                  $name='best'.$i.'.png';                   Imagepng($imm,$name); //<-- hier gaat het mis ?                  ImageDestroy ($imm);?>

Het vreemde is dat de plaatjes wel goed in de directory aangemaakt worden (namelijk best1.png, best2.png, enz...)
Iemand enig idee wat hier fout gaat?

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:47
Welke versie van GD gebruik je?

Mij zijn namelijk twee dingen opgevallen aan de Mozilla engine ten opzichte van Internet Explorer, met betrekking tot het weergeven van plaatjes:

1. Mozilla keurt sommige plaatjes af, die Internet Explorer zonder problemen (of zichtbare afwijkingen) laten zien. Het kan zijn dat er een interne fout in de opbouw van het bestand zit, die het niet onmogelijk maakt het bestand goed weer te geven, maar die dermate in strijd is met de specificatie van het bestandsformaat dat de Mozilla engine 'm (niet onterecht) als ongeldig afdoet.

2. De plaatjes (en misschien ook andere files?) in de Mozilla cache lijken met zekere regelmaat 'stuk' te gaan. Ik merk dat vooral als ik op 'n eigen webserver werk (en dus vaak dezelfde plaatjes moet laden). Aangezien de last-modified date niet wijzigd, wordt het exemplaar in de cache niet vervangen bij 'n reload. De cache leegmaken en reloaden werkt dan eigenlijk altijd wel.

Ik kan je dus aanraden om in ieder geval nummer 2 te proberen; als dat niets helpt, genereert je versie van GD waarschijnlijk foute bestanden. Veel zinnigs kan ik daar verder niet over zeggen.

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
je mag toch geen imagecreate en imagecreatefrom** door elkaar gebruiken :?

Of zit ik er nu compleet naast....

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Verwijderd

Topicstarter
Op donderdag 13 juni 2002 21:10 schreef Soultaker het volgende:
Welke versie van GD gebruik je?

Mij zijn namelijk twee dingen opgevallen aan de Mozilla engine ten opzichte van Internet Explorer, met betrekking tot het weergeven van plaatjes:

1. Mozilla keurt sommige plaatjes af, die Internet Explorer zonder problemen (of zichtbare afwijkingen) laten zien. Het kan zijn dat er een interne fout in de opbouw van het bestand zit, die het niet onmogelijk maakt het bestand goed weer te geven, maar die dermate in strijd is met de specificatie van het bestandsformaat dat de Mozilla engine 'm (niet onterecht) als ongeldig afdoet.

2. De plaatjes (en misschien ook andere files?) in de Mozilla cache lijken met zekere regelmaat 'stuk' te gaan. Ik merk dat vooral als ik op 'n eigen webserver werk (en dus vaak dezelfde plaatjes moet laden). Aangezien de last-modified date niet wijzigd, wordt het exemplaar in de cache niet vervangen bij 'n reload. De cache leegmaken en reloaden werkt dan eigenlijk altijd wel.

Ik kan je dus aanraden om in ieder geval nummer 2 te proberen; als dat niets helpt, genereert je versie van GD waarschijnlijk foute bestanden. Veel zinnigs kan ik daar verder niet over zeggen.
Nummer twee werkt i.i.g. niet. Versie 1.6.2 van GD_lib is trouwens geinstalleerd.

Blijkbaar is het toch een mozilla probleem die deze bewerkte plaatjes niet 'lust', beetje jammer want gif kan ik ook niet gebruiken.

Het vreemde is dat de plaatjes die wel gemaakt worden op de server wel direct in Netscape te bekijken zijn dus blijkbaar kan i het wel ... Imagepng($imm); gaat b.v. wel goed

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:47
Op donderdag 13 juni 2002 21:20 schreef kadaver het volgende:
Blijkbaar is het toch een mozilla probleem die deze bewerkte plaatjes niet 'lust', beetje jammer want gif kan ik ook niet gebruiken.
Waarom niet? En waarom dan geen JPEG?

Verwijderd

Topicstarter
Op donderdag 13 juni 2002 21:24 schreef Soultaker het volgende:

[..]

Waarom niet? De enige significante meerwaarde van een PNGtje (vanuit apolitiek oogpunt) is de alpha-channel. Die wordt in sommige browsers toch al niet goed geimplementeerd, dus dan kun je net zo goed een GIFje (met 'n transparante kleur) gebruiken.
het is niet mijn server...

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:47
Op donderdag 13 juni 2002 21:25 schreef kadaver het volgende:
het is niet mijn server...
Hmm, dan zou ik bedingen dat je GIF support moet hebben om je werk naar behoren te doen (tenzij 't om een Amerikaanse provider gaat ofzo). Of natuurlijk gewoon een JPEGje gebruiken.

Verwijderd

Topicstarter
Op donderdag 13 juni 2002 21:26 schreef Soultaker het volgende:

[..]

Hmm, dan zou ik bedingen dat je GIF support moet hebben om je werk naar behoren te doen (tenzij 't om een Amerikaanse provider gaat ofzo). Of natuurlijk gewoon een JPEGje gebruiken.
Ik zie net dat de gif support wel aan staat. Maar ik krijg eenzelfde soort probleem. Het plaatje wordt wel correct op de server geschreven maar de rest van de code wordt niet uitgevoerd. Hij 'crashed' dus weer op Imagegif($imm,$name); door een 'gebroken' plaatje te laten zien.

Ik ga wel eens opnieuw scripten willicht zit ergens anders nog een fout.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:47
Op donderdag 13 juni 2002 21:34 schreef kadaver het volgende:
Ik zie net dat de gif support wel aan staat. Maar ik krijg eenzelfde soort probleem. Het plaatje wordt wel correct op de server geschreven maar de rest van de code wordt niet uitgevoerd. Hij 'crashed' dus weer op Imagegif($imm,$name); door een 'gebroken' plaatje te laten zien.
Ik lees je post pas ECHT goed nu, geloof ik. Als je 'm naar HDD schrijft, en je vraagt 'm met Mozilla DIRECT bij de webserver op (dus met de absolute URL, zonder PHP ertussen) dan gaat het wel goed, als ik het nu goed begrijp?

Dat is wel erg gek. In dat geval kan je natuurlijk als workaround gewoon dat filetje wegschrijven en een readfile doen in PHP om 'm naar de browser te sturen.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Open de url es met een telnet oid
dus iets als:
code:
1
2
GET /plaatje.php HTTP/1.1
Host: www.jouwhost.com

En kijk naar de eerste paar regels tekst, daar zou heel goed een foutmelding tussendoor kunnen staan.

Verwijderd

Topicstarter
Probleem gevonden na een nachtje slapen .. gaat altijd beter in de ochtend :)

Ik was vergeten om de content type weer op text/html te zetten. IE snap blijkbaar meteen dat er weer op html over wordt gestapt maar Netscape/Mozilla wil dat toch even bevestigd krijgen.

Bedankt voor jullie hulp

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 03-09 15:18

Crazy D

I think we should take a look.

Op vrijdag 14 juni 2002 10:38 schreef kadaver het volgende:
Ik was vergeten om de content type weer op text/html te zetten. IE snap blijkbaar meteen dat er weer op html over wordt gestapt maar Netscape/Mozilla wil dat toch even bevestigd krijgen.
[kan het niet laten modus]
fijn he, die vergevingsgezindheid van IE. Daarom gebruik ik altijd Mozilla, die luistert een stuk stricter, maar daarom vind je (soms...) een probleem wel veel sneller... (hoewel ik de content type ook niet zo snel had verzonnen, hoewel dat wel zou moeten want ik bedenk me dat ik vorige week precies hetzelfde probleem had |:().
[/kan het niet laten modus]

Exact expert nodig?


  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Op vrijdag 14 juni 2002 11:01 schreef Crazy_D het volgende:

[..]

[kan het niet laten modus]
fijn he, die vergevingsgezindheid van IE. Daarom gebruik ik altijd Mozilla, die luistert een stuk stricter, maar daarom vind je (soms...) een probleem wel veel sneller... (hoewel ik de content type ook niet zo snel had verzonnen, hoewel dat wel zou moeten want ik bedenk me dat ik vorige week precies hetzelfde probleem had |:().
[/kan het niet laten modus]
Ja... ik vond IE een goede browser... maar nu niet meer :(
Zelfde is ook met een frameset waarin je een andere site inlaad die cookies gebruikt, IE wil die cookies niet herkennen terwijl Mozilla/Netscape/Opera dat wel doet...

Ik ben wel zo'n beetje uitgekeken op IE :{

[/offtopic]

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 12:47
OFFTOPIC:
Op vrijdag 14 juni 2002 11:38 schreef SWINX het volgende:
Zelfde is ook met een frameset waarin je een andere site inlaad die cookies gebruikt, IE wil die cookies niet herkennen terwijl Mozilla/Netscape/Opera dat wel doet...
Dat is een verschil in beveiligingsbeleid. Ik zou niet willen beweren dat het beleid van IE op dit punt minder goed is. Het gaat er om, dat je browser alleen cookies van/naar domeinen stuurt, waarvan het adres in je titelbalk staat.

Als je het echt irritant vind, kun je het uitzetten natuurlijk. Ik ben op zich wel een voorstander van 't assertief weren van ongewenste cookies. Er is zelden een goede reden om functionaliteit te eisen die niet standaard door IE 6 geleverd wordt.
Pagina: 1