Innanzitutto colgo l'occasione per presentarmi e salutare tutti gli utenti del forum visto che sono nuovo e questo è il mio primo post.Salve a tutti sono gr0ss0 ed è un piacere per me essermi unito a questo forum...
Bene..adesso passiamo al mio problema: ho modificato uno script trovato su internet per creare dei captcha direttamente con le librerie gd di php,ma quando cerco di integrarlo all'interno di una pagina html riesco a vedere solo l'immagine che vado a creare col php e niente html.
Questo è il codice del captcha:
Codice PHP:
<?php
/*
+-------------------------------------------------------------------------------------+
| SELEZIONE TESTO CAPTCHA DA DB |
| Dall esecuzione della prima query ricavo il valore dell'id massimo e di quello |
| minimo, che mi serivranno per scegliere in maniera random l'id del captcha da |
| visualizzare. Nella tabella devono essere presenti un id univoco e ad ognuno di |
| essi dovrà essere associato un testo di massimo 10 caratteri che sarà quello |
| visualizzato all'interno dell'apposito box. |
+-------------------------------------------------------------------------------------+
*/
header("Content-type: image/png");
include("connect.php");
//ricavo il valore massimo e quello minimo degli id presenti nella tabella
$sql="SELECT min(id),max(id) FROM captcha";
$result=mysql_query("$sql",$db);
$record=mysql_fetch_array($result);
$min=$record['min(id)'];
$max=$record['max(id)'];
$casuale=rand($min,$max); // genero un numero casuale
//scelgo una frase casuale da visualizzare nel box del captcha
$sql="SELECT cap FROM captcha WHERE id=".$casuale;
$result=mysql_query($sql,$db);
$record=mysql_fetch_array($result);
$altezza=100;
$larghezza=300;
$messaggio=substr($record['cap'],0,10); //se il testo è piu' lungo di 10 caratteri elimino quelli in eccesso
$spazio = $larghezza / (strlen($messaggio)+1); //lo spazio tra un carattere e un altro
$immagine=imagecreatetruecolor($larghezza,$altezza); //creo il riquadro all'interno della quale vedrò la mia immagine
$sfondo=imagecolorallocate($immagine, 255,255,255); //assegno alla variabile $sfondo un colore che userò poi in $immagine
$bordo=imagecolorallocate($immagine,120,170,0); //
imagerectangle($immagine, 3, 3, $larghezza-3, $altezza-3, $bordo); //creo il bordo del rettangolo all'interno di $immagine
imagefilledrectangle($immagine,7,93,293,7,$sfondo); //creo un ulteriore rettangolo all'interno di $immagine e $bordo ma con colore di riempimento
for($i=0;$i<strlen($messaggio);$i++)
{
$colore=imagecolorallocate($immagine,rand(0,255),rand(0,255),rand(0,255)); //il colore che andrò a usare per i caratteri
//stampo a video i caratteri(uno per uno) del testo selezionato precedentemente
imagettftext($immagine,28+rand(0,8),-20+rand(0,40),($i+0.6)*$spazio,50+rand(0,10),$colore,'FORTE.TTF',$messaggio[$i]);
}
imagepng($immagine);
?>
Qualche idea??