Newsgroup: it.comp.www.php
Titolo: php4 e php_gd.dll

ciao a tutti.
volevo  divertirmi a creare qualche grafico con php.
quindi ho cercato di far funzionare " php_gd.dll ", purtroppo, come spesso
accade, il tutto, semplicemente non funziona.
vi dico cosa ho fatto, così magari mi dite dove ho sbagliato.
premetto che ho provato il tutto sia con IIS (fino a che, leggendo bene ho
scoperto che php.ini riporta il seguente avviso:" The dl() function does NOT
work  properly in multithreaded servers, such as IIS or Zeus, and is
automatically disabled on them.")
che ovviamente con apache.
1)ho copiato il file " php_gd.dll " dentro la directory c:/php/extensions/
ho abilitato extension=php_gd.dll, ho fatto ripartire apache che mi ha
detto:Unable to load dynamic library './php_gd.dll' - impossibile trovare il
modulo specificato.
2) allora ho copiato il file " php_gd.dll " dentro la directory
c:/php/extensions/ e per maggiore sicurezza anche in c:/php, conscio del
fatto che era abbastanza inutile, ma non si sa mai....
ho fatto ripartire apache che mi ha detto:Unable to load dynamic library
'./php_gd.dll' - impossibile trovare il modulo specificato.
3) ho cambiato in php.ini il percorso di dove risiedono i moduli "Directory
in which the loadable extensions (modules) reside."
da: extension_dir = ./
a: extension_dir = C:\php\extensions\
ho fatto ripartire apache che mi ha detto:Unable to load dynamic library
'C:\php\extensions/php_gd.dll' - impossibile trovare il modulo specificato.
ho ricambiato tale percorso in:
extension_dir = C:/php/extensions/
ho fatto ripartire apache che mi ha detto: impossibile trovare il punto di
ingresso zend_list_find della procedura nella libreria di collegamento
dinamico php4ts.dll, e poi, ovviamente mi ha detto: Unable to load dynamic
library 'C:/php/extensions/php_gd.dll' - impossibile trovare il modulo
specificato.
ci ho messo le virgolette, ho messo \\ e così via.
ma, nulla, mi tornano sempre questi ultimi due errori.
eppure la dll c'è!
dove sbaglio?
grazie
lith

 accade, il tutto, semplicemente non funziona.
Devi mettere quella dll nella dir system32 del tuo win (win2k e xp
sicuramente... non ricordo se in 98 sia solo system).
Nel php.ini puoi lasciare extension_dir = ./
Poi riavvia apache.

 ha scritto nel messaggio
news:8siW9.19983$ZE.5...@twister2.libero.it...


 imagePng ($im);
Lo script ti genera un'imagine non un documento html.
Devi togliere la roba html (che non ha niente da fare con un
png e disturba il formato che si aspetti il browser da un imagine).
Inoltre devi citare meglio i messaggi
(
http://php.dopoil.com/faq.php?NGRules
 [citare]).

 ha scritto nel messaggio
news:%EiW9.28397$lj5.3...@tornado.fastwebnet.it...

Il quoting please...
Ci sono diverse cose che non vanno...
- Togli tutto l'html prima e dopo il codice php (la pagina poi la linki da
un altro html.. come se fosse un'immagine... ex <img src="immagine.php">).
- mancano un po' di parentesi graffe.
- se vuoi usare una costante devi definirla
- quell'if pare risulti sempre falso. Perň non avevo voglia di controllarlo
con attenzione... semplicemente se lo lasci non butta fuori niente.
- imagePng ($im); lo devi mettere solo una volta.. alla fine... non in un
ciclo
- Ci sta bene anche imagedestroy($im);
- L'ultimo parametro di imageline dovrebbe essere un colore (penso tu voglia
mettere $txtc)
- In ImageColorAllocate dovresti usare multipli di 51 per creare colori web
corretti.
Dovrebbe essere tutto ... forse..
Comunque cosě hai un bel triangolo rosso rovesciato... :)
Magari dovrai mettere a posto un po' di cose.. l'ho aggiustato un po'.. non
so se sia quello che vuoi... se $n=0 o 1 non č un gran che me con $n=30 č
davvero carino :).
<?php
header ("Content-type: image/png");
define (M_PI,3.14);
$n=3;
$im = ImageCreate(600, 600) or die ("errore");
$bgc =ImageColorAllocate ($im, 255,255,255);
$txtc = ImageColorAllocate ($im, 250,0,0);
for ($x=0;$x<$n;$x++) {
 for ($y=0;$y<$n;$y++) {
  imageline
($im,300+300*sin($x*2*M_PI/$n),300+300*cos($x*2*M_PI/$n),300+300*sin($y*2*M_
PI/$n),300+300*cos($y*2*M_PI/$n),$txtc);
 }
}
imagePng ($im);
imagedestroy($im);
?>

 $txtc = ImageColorAllocate ($im, 250,0,0);
ops... $txtc = ImageColorAllocate ($im, 255,0,0);

 - se vuoi usare una costante devi definirla
pardon... non sapevo che ci fossero tutte le costanti matematiche già
definite...
Del resto non le ho mai usate e sul manuale sono citate su
http://it.php.net/manual/tw/ref.math.php
 mentre pensavo che il discorso
fosse esaurito in
http://it.php.net/manual/it/language.constants.predefined.php

 davvero carino :).
perfetto!!!
$n deve essere settato dal'utente.
ciao
e grazie!
lith