Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Php ja GD skripti ei toimi

Sivun loppuun

Basic 6.0 [28.06.2006 23:18:25]

#

Tämä PHP skripti ei toimi. Näyttää vain selaimessa tekstin:
"http://127.0.0.1:1101/kuva.php?url=pics\gamedevice.png".

<?php
if (isset($_GET['url'])){
	header("Content-type: image/png");

	$kuva_tiedot = getimagesize($_GET['url']);
	$width = $kuva_tiedot[0];
	$height = $kuva_tiedot[1];

	$kuva=imagecreate($width,$height);

	$tausta=imagecolorallocate($kuva, 255, 255, 255);

	$teksti=imagecolorallocate($kuva,138,210,11);

	imagestring($kuva,2,10,10,"Copyright Basic 6.0 ".date("Y"),$teksti);

	ImagePNG($kuva,$_GET['url']);

	imagedestroy($kuva);

}
?>

Olen aloittelija GDn kanssa.
Sen pitäisi ladata kuva jonka polun $_GET hakee, ja GDllä lisätä siihen teksti "Copyright Basic 6.0 " + nykyinen vuosi.

ajv [28.06.2006 23:34:29]

#

Lähetä tuo kuva-otsake vasta juuri ennen kuvan luomista ja tarkasta sitä ennen että puskuri on tyhjä, niin saat PHP:n virheilmot näkyviin:

<?php
ob_start();
if (isset($_GET['url'])){

	$kuva_tiedot = getimagesize($_GET['url']);
	$width = $kuva_tiedot[0];
	$height = $kuva_tiedot[1];

	$kuva=imagecreate($width,$height);
	$tausta=imagecolorallocate($kuva, 255, 255, 255);
	$teksti=imagecolorallocate($kuva,138,210,11);
	imagestring($kuva,2,10,10,"Copyright Basic 6.0 ".date("Y"),$teksti);

	if(ob_get_length() == 0){
		header("Content-type: image/png");
		ImagePNG($kuva,$_GET['url']);
		imagedestroy($kuva);
	}
}
ob_end_flush();
?>

Testaamatonta hatusta vedettyä koodia, mutta toivottavasti pääset tuosta eteenpäin.

Basic 6.0 [29.06.2006 09:23:14]

#

Nyt se antaa virheilmoitusta:


Warning: getimagesize("pics\gamedevice.png") [function.getimagesize]: failed to open stream: Invalid argument in D:\Program Files\Abyss Web Server\htdocs\kuva.php on line 5

Warning: imagecreate() [function.imagecreate]: Invalid image dimensions in D:\Program Files\Abyss Web Server\htdocs\kuva.php on line 9

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in D:\Program Files\Abyss Web Server\htdocs\kuva.php on line 10

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in D:\Program Files\Abyss Web Server\htdocs\kuva.php on line 11

Warning: imagestring(): supplied argument is not a valid Image resource in D:\Program Files\Abyss Web Server\htdocs\kuva.php on line 12

Ymmärrän että imagesize ei saa haettua kuvaa tai jotain.

ajv [29.06.2006 10:33:37]

#

Veikkaisin, että kuvaa ei löydy. Windowsissa tuskin kyse on oikeuksista. Tarkasta, että polku kuvaan todella on
D:\Program Files\Abyss Web Server\htdocs\pics\gamedevice.png.

Ja koita antaa parametrinä myös pics/gamedevice.png. Siitä on aikaa kun viimeksi windowsissa noilla kikkaillu, mutta muistaakseni noita kenoja ja takakenoja sai käyttää ainakin jossain tapauksessa täysin epäloogisesti...

Basic 6.0 [29.06.2006 11:05:13]

#

Olinkin vahingossa laittanut " merkit parametrin eteen ja taakse.
Kun poistin ne, sivulla lukee:

http://127.0.0.1:1101/kuva.php?url=pics/gamedevice.png

Olga [29.06.2006 11:16:50]

#

Jos haluat että muut näkee tuon sun virheilmoituksen, tarvitaan sun julkinen ip-osoite. Ei valitettavasti onnistu tuon sun oman loopbackin kautta :)

Heikki [29.06.2006 11:27:28]

#

127.0.0.1 viittaa siis juuri omaan koneeseen (nk. loopback). Jotta sinun koneeseesi saataisiin yhteys muualta verkosta, tarvitaan koneesi julkinen, Internettiin näkyvä IP-osoite.

Julkisen ip-osoitteesi saat selville esim. kirjoittamalla komentoriville ipconfig tai vierailemalla osoitteessa http://www.whatismyip.com/

Basic 6.0 [29.06.2006 11:34:42]

#

Eiku sivulla lukee juuri tuo teksti:

TÄMÄ-->http://127.0.0.1:1101/kuva.php?url=pics/gamedevice.png<--TÄMÄ

Ohjelmointiputka vaan laittaa tuon linkiksi


Sivun alkuun

Vastaus

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

Tietoa sivustosta