Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Image-funktiot eri palvelimilla

Sivun loppuun

pistemies [14.09.2006 21:44:47]

#

Mistä mahtaa johtua, erttä tämä php.netistä poimittu skiripti toimii minun kotikoneellani (php 4.4.4), mutta ei int2000:ssa (php 4.4.2)

<html>
<head>
</head>
<body>

<?php
$pic=ImageCreate(600,600);
$col1=ImageColorAllocate($pic,200,200,200);
$col2=ImageColorAllocate($pic,0,0,255);
ImageFilledRectangle($pic,1,1,100,100,$col2);
ImagePNG($pic,"pic.png");
ImageDestroy($pic);
?>
<img src="pic.png" border=0>
</body>
</html>

Olga [14.09.2006 21:46:54]

#

Miten toimimattomuus ilmenee? Löytyykö GD-kirjasto? Onko kirjoitusoikeudet hakemistoon?

pistemies [14.09.2006 22:05:42]

#

Ilmeisesti int2000:ssa on gd-kirjasto, koska toiset skriptit toimii, toiset ei. Tuo herjaa int2000:ssa näitä rivejä:

ImagePNG($pic,"pic.png");
ImageDestroy($pic);

ei luo kuvatiedostoa.
Kotikoneellani toimii hyvin.

Kirjoitusoikeudet on.

Olga [14.09.2006 22:22:00]

#

Mitä skripti herjaa?

pistemies [15.09.2006 09:35:52]

#

Warning: imagepng(): Unable to open 'pic.png' for writing in /www/int2000/a/10507/html/img3.php on line 11

Tällä hetkellä tätä. Itse arvelin, että vika on functiossa ImageColorAllocate, sillä kun testailin jotain muuta itse tekemääni skriptiä laittamalla jokaisen function perään or die tarkistuksen, niin se tulosti virheilmoituksen, joka oli ensimmäisen imagecolorallocate-funktion perässä.
Teki muuten saman omalla koneellani, mutta kun otin tuo tarkistuksen pois, niin omalla koneella alkoi toimia, in2000:ssa ei. Voiko käyttöjärjestelmien erilaisuus vaikuttaa tuohon toimivuuteen (windows:toimii/unix:ei).
Entä gd-kirjasto? Itse olen ottanut sen käyttöön tekemällä muutoksia php.ini-tiedostoon. Onko php:n mukana tuleva laajennus tarpeeksi tehokas vai pitäisikö ladata isompi paketti?

Lebe80 [15.09.2006 10:15:59]

#

Tarkistapa ensin kirjoitusoikeudet kyseiseen hakemistoon.
edit:
oho, se olikin siellä, noh "Double check". ;)

Kokeile myös imagepng(...) (pienellä), sekä varmuuden vuoksi imagejpeg(...).

pistemies [15.09.2006 15:14:12]

#

Vähän jännä juttu. Kun asetin kotisivun juuren yläpuoliselle html-hakemistolle täydet oikeudet (en tiedä onko tuo kovin suotavaa), niin toimii.
Mutta jos taas laitan seuraavat tarkistukset:

$pic=ImageCreate(600,600)or die("ImageCreate ei toimi");

$col1=ImageColorAllocate($pic,200,200,200) or die("ImageColorAllocate ei toimi");
$col2=ImageColorAllocate($pic,0,0,255);
ImageFilledRectangle($pic,1,1,100,100,$col2);
ImagePNG($pic,"pic.png")or die("ImagePng ei toimi");

tulostaa:
"ImageColorAllocate ei toimi"
Nyt tämä muuten täsmää täysin sitä, miten se toimii myös kotikoneella eli noita funktion toimivuus-tarkistuksia ei suvaita.

T.M. [15.09.2006 16:18:53]

#

Lebe80 kirjoitti:

Kokeile myös imagepng(...) (pienellä), sekä varmuuden vuoksi imagejpeg(...).

Minkä ihmeen takia? Virhehän jo kertoo että se funktio on olemassa, mutta se ei vaan voi avata sitä tiedostoa.
Ja PHP:ssä funktioiden nimissä ei ole väliä kirjainkoolla.

Kentti [15.09.2006 16:23:38]

#

Pekka Mansikka kirjoitti:

Vähän jännä juttu. Kun asetin kotisivun juuren yläpuoliselle html-hakemistolle täydet oikeudet (en tiedä onko tuo kovin suotavaa), niin toimii.
Mutta jos taas laitan seuraavat tarkistukset:

$pic=ImageCreate(600,600)or die("ImageCreate ei toimi");

$col1=ImageColorAllocate($pic,200,200,200) or die("ImageColorAllocate ei toimi");
$col2=ImageColorAllocate($pic,0,0,255);
ImageFilledRectangle($pic,1,1,100,100,$col2);
ImagePNG($pic,"pic.png")or die("ImagePng ei toimi");

tulostaa:
"ImageColorAllocate ei toimi"

Samantapainen juttu oli itselläni rename():n kanssa.
Kaikki or die():t ja if ($joku == false) pois tuosta kohdasta, niin toimii, vaikka saattaa silti tulostaa muutaman warningin / noticen.

odys [15.09.2006 20:47:27]

#

Katso peiliin tarkasti.. pyöri 7 kertaa ympäri pyöritä silmiä samalla.. hyppää ja nuolase nenää.. ja sano abraga dabra... sen jälkeen voit todeta että olet vieläkin ruma!


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta