Newsgroup: it.comp.www.php
Titolo: GD: non so più dove sbattere la testa

Salve a tutti...
Sto tentando di far funzionare uno scriptino che usa le GD e che a suo 
tempo usao su Win2k.
Uso Apache e PHP 4, tutto funziona...
Solo che se uso gli script di questo link:
http://www.hostingsolutions.it/guide/gd2.php
funzionano tutti tranne l'ultimo (che è quello che mi serve) ma non 
visualizza nulla.
Sono su Mac OS X 10.4 (Tiger) e ho provato sia ad utilizzare Safari che 
Camino... niente da fare...
Per esclusione, direi che il problema si verifica dall'istruzione 
header("Content-type: image/jpeg") in poi, dato che è l'unica differenza 
reale tra quello script e gli altri...
-- 
Quando noi ignoranti eravamo di più, tutto era più bello...
(A. Celentano)

 (A. Celentano)


http://www.hostingsolutions.it/guide/gd2.php
Nella cartella dove gira lo script c'è la cartella images? Ha i
permessi di scrittura?
-- 
Per rispondermi togli il cappello

 script e gli altri...
Fa attenzione che non ci sia neanche un ritorno a capo all'interno del file 
o degli eventuali include precedenti l'istruzione header("Content-type: 
image/jpeg"). Basta un solo ritorno a capo perche' la pagina sia 
considerata con header plain-text.
Il 99% delle volte che un header image non funziona dipende da questo.
hth,
Lokar 

 permessi di scrittura?
Quegli script che salvano l'immagine su disco funzionano...
Li ho modificati in modo da non salvare nella cartella images/ ma nella 
dir corrente, ed effettivamente salva l'immagine e la visualizza.
Il problema č se non faccio salvare l'immagine ma faccio un:
header("content-type: image/png");
imagepng($img);
A questo punto nel browser mi compaiono tutti i dati binari 
dell'immagine, come se la vedesse come testo. E l'unica cosa leggibile č:
Warning: Cannot modify header information - headers already sent by 
(output started at /../prova.php:1) in /../prova.php on line 28
E a seguire tutto il contenuto binario inviato dal file php al browser...
-- 


 Il 99% delle volte che un header image non funziona dipende da questo.
Non includo nessun file :\
Il tag
<?php
è all'inizio del file (no righe vuote) e a concludere il file (ultima 
riga, dopo nemmeno un ritorno a capo) c'è ?>
Prima dell'header("content-type....) non c'è nessuna riga vuota.
Ecco il file php dell'esempio:
<?php
   $maxX = 400;
   $maxY = 200;
   $img = imagecreatetruecolor($maxX, $maxY);
   $background = imagecolorallocate($img, 0x4D, 0x65, 0x73);
   imagefill($img, 0, 0, $background);
   $pencolor = imagecolorallocate($img, 0xFF, 0xFF, 0x00);
   $ascissecolor = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
   $xnumerico = 6.28;
   $passo = $xnumerico / $maxX;
   $mezzo = round($maxY/2);
   $i = 0;
   $x0 = 0;
   $y0 = $mezzo;
   imageline($img, $x0, $mezzo, $maxX, $mezzo, $ascissecolor);
   while ($i<=$xnumerico)
   {
     $y = round($mezzo - sin($i)/$passo);
     $x =  round($i/$passo);
     imageline($img, $x0, $y0, $x, $y, $pencolor);
     $i += $passo;
     $x0 = $x;
     $y0 = $y;
   }
   $messaggio = "y = sin(x)";
   $textcolor = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
   imagestring($img, 3, 5, 5, $messaggio, $textcolor);
   imagepng($img, "prova.png");
   imagedestroy($img);
?>
<img src="prova.png">
Così facendo, prova.php salva tutto su disco e alla fine visualizza 
correttamente l'immagine.
Se invece tolgo la parte finale (<img src="prova.png">) e modifico le 
ultime righe php in:
   imagestring($img, 3, 5, 5, $messaggio, $textcolor);
   header("Content-type: image/png");
   imagepng($img);
   imagedestroy($img);
?>
Allora mi compare quel messaggio di errore, seguito dalla sfilza di dati 
binari che dovrebbero essere l'immagine png...




A me il tuo script funziona... comunque sembrerebbe davvero che un
output ci sia... copia/icolla proprio il tuo script (che spero
ovviamente non sia incluso con un include o require da un altro
file...).


Risolto: problema di un text editor che sto usando da qk giorno sul Mac.
Mi inserisce (il bestio) tre caratteri esadecimali nascosti all'inizio 
del file.
Infatti apache mi diceva che l'output era partito alla riga 1.
Ho scoperto la truffa con un hex editor.
Ora funziona tutto!!!
E pensare che ho perso un paio di giorni a tentare di compilare gd con 
tutti gli amenicoli di cui necessita, a reinstallare apache, php e 
compagnia bella...
Grazie comunque a tutti per l'interessamento!


 Ora funziona tutto!!!
CVD =)
Lokar