- Home
- Categorie
- Coding e Sistemistica
- Coding
- Problema con codice captcha
-
Problema con codice captcha
Ho una pagina php che mi genere l'immagine jpg (o almeno così dovrebbe essere) del codice captcha.
Il problema è che facendo l'IMG SCR del file php mi viene visualizzata un immagine BMP. Qualcuno potrebbe aiutarmi a capire dove sta il problema.
Questo è il codice della pagine PHP
[PHP]
<?php
header("Content-type: image/jpg");
function sfondi()
{
$dir = opendir("sfondi/");
$counter =0;
while (($file = readdir($dir)) == true ) {
if ($counter == 1) { $counter = ''; } else {
if ($file !== '.' AND $file !== '..') {
$sfondi[] = "sfondi/$file";
$counter = $counter+1;
}
}
}
$elemarray=$counter-1;
$sfondo = $sfondi[mt_rand(0,$elemarray)];
return $sfondo;
}$immagine = imagecreatefromjpeg(sfondi());
$nero = imagecolorallocate($immagine, 0, 0, 0);
$colore = array("$nero");
function cerca_carattere()
{
$carattere = mt_rand(49,122);
$charesclusi = array(58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,108,111);
if (in_array($carattere,$charesclusi))
{
return cerca_carattere();
}
else
{
return $carattere;
}
}function fonts()
{
$dir = opendir("fonts/");
$counter = 0;
while (($file = readdir($dir)) == true )
{
if ($file !== '.' AND $file !== '..')
{
$font[] = "fonts/$file";
$counter = $counter+1;
}
}
$elemarray=$counter-1;
$fonts = $font[mt_rand(0,$elemarray)];
return $fonts;
}$x = 11;
$y= 20;
for ($c=0; $c<=3; $c++)
{
$char = chr(cerca_carattere());
imagettftext($immagine, mt_rand(25,35), mt_rand(28,-28), rand($x,$y), 40, $colore[0], fonts(), $char);
$x=($y+27);
$y=($x+13);
$caratteri[] = $char;
}
imagejpeg($immagine, NULL, 90);
imagedestroy($immagine);
session_start();
$codice = $caratteri[0].$caratteri[1].$caratteri[2].$caratteri[3];
$_SESSION['codice'] = $codice;
?>[/PHP]
Grazie
-
Ciao DARKF3D3,
non ho ben capito qual'è il problema. Potresti speigare meglio cosa intendi per viene visualizzata un immagine BMP?
-
In pratica con quel codice, creo l'immagine del codice captcha, poi nel file html la visualizzo utilizzando l'IMG SCR.
Il fatto è che secondo, me stando al codice, l'immagine dovrebbe essere una jpg, però guardando le proprietà del immagine è una bitmap.
A me serve una jpg, però non riesco, viene creata sempre una bitmap.
-
Le funzioni che hai utlizzato generano un immagine jpg, la cosa mi sembra strana.
-
Lo so anche a me sembra strano, però non è un problema con easyphp o altro, infatti anche sul sito della guida che ho usato per creare il captcha, se si prova a salvare l'immagine è una bitmap e il codice è lo stesso.
Qui puoi vedere l'esempio della guida: