risolto in qualche modo

il mio scopo (da cui la domanda nei 2 post precedenti) era quello di creare una
captcha per il form di upload delle immagini, il problema era dato dal fatto che cercavo di inserire il codice per generare l'immagine direttamente in una pagina che veniva inclusa nella index, questo generava quei caratteri strani dal momento che nell'head della index c'è il content type settato a text/html, quindi tutti i caratteri venivano stampati a video... inoltre non potevo usare
perchè andava ad interferire con l'header che veniva settato dal tag in cima alla pagina originando questo problema:
Per risolvere ho messo il codice per creare la captcha in una pagina che ho chiamato (con molta fantasia) captcha.php, e nella pagina in cui volevo visualizzare l'immagine ho messo questo tag:
e l'immagine è apparsa...

Infatti inviando l'header "image/png", l'output della pagina captcha.php altro non è se non direttamente l'immagine

Per chi fosse curioso questo è il codice che ho scritto per la captcha:
Codice: Seleziona tutto
<?php
session_start();
header("Content-type: image/png");
$x = 120;
$y = 40;
$prevcode = explode('-', $_SESSION["utenteautorizzato"]);
$code = $prevcode[1];
$img = imagecreatetruecolor($x,$y);
$bg = imagecolorallocate($img,255,255,255);
$border = imagecolorallocate($img,150,150,150);
$colors[] = imagecolorallocate($img,128,64,192);
$colors[] = imagecolorallocate($img,192,64,128);
$colors[] = imagecolorallocate($img,108,192,64);
imagefilledrectangle($img,1,1,$x-2,$y-2,$bg);
imagerectangle($img,0,0,$x-1,$y-2,$border);
for ($i=0; $i<strlen($code); $i++) {
$color = $colors[mt_rand(0, count($colors)-1)];
imagestring($img, 5, 30, 12, $code, $color);
}
for($i=0;$i<110;$i++) {
$x1 = rand(3,$x-3);
$y1 = rand(3,$y-3);
$x2 = $x1-2-rand(0,8);
$y2 = $y1-2-rand(0,8);
imageline($img,$x1,$y1,$x2,$y2,$colors[rand(0,count($colors)-1)]);
}
imagepng($img);
?>
Ovviamente siccome la captcha mi serve (almeno per ora) solo nelle pagine che richiedono autenticazione, ho pensato che il posto migliore per salvare il codice da digitare era quello di "appenderlo" alla sessione autenticata, infatti ora la sessione viene definita così:
Codice: Seleziona tutto
$numbers = explode(".",(round(microtime(),7)));
$code = $numbers[1];
$_SESSION["utenteautorizzato"]=mysql_result($risultatoutente,0,1).'-'.$code;
adesso una domanda però...
come mai non riesco ad inizializzare nessun tipo di font?? per creare la captcha mi sto appoggiando sui font di default di imagestring() ma è una cosa che mi sta stretta perchè non posso gestire quasi per niente il testo che viene generato...
le varie funzioni per caricare e usare i font mi hanno sempre restituito errori dicendo di non essere capaci di leggere il file dei font, ovviamente però il file c'era, ho provato sia con i .ttf e le funzioni imagefttext / imagettftext, sia con i font .gdf e la funzione imageloadfont ... niente, mi danno tutte lo stesso errore...

Io sospetto che il problema sia di GD o di php che magari non è compilato con il supporto a truetype, ma mi sembra strano...
Qualche idea??
Grazie mille dell'aiuto...
