Autor Zpráva
johnl
Profil
Dobrý den, vytvořil jsem si captchu

header("Content-type: image/png");
$desecurity = $_GET[code];
$znak = Base64_Decode($desecurity);
$podklad = ImageCreateFromPNG("captcha.png");
$preklad = imagecreatefromPNG("captcha1.png");
$color = ImageColorAllocate($podklad, rand(0,50), rand(20,90), rand(0,255));
$color1 = ImageColorAllocate($podklad, rand(0,90), rand(40,190), rand(0,205));
$color2 = ImageColorAllocate($podklad, rand(0,50), rand(40,110), rand(0,255));
$color3 = ImageColorAllocate($podklad, rand(0,90), rand(90,180), rand(20,255));

$barva = $color;
ImageTTFText($podklad, rand(25,30), rand(-10,40), 15, 40, $barva, "captcha.ttf", $znak[0]);
$barva = $color1;
ImageTTFText($podklad, rand(25,30), rand(-10,40), 45, 40, $barva, "captcha.ttf", $znak[1]);
$barva = $color2;
ImageTTFText($podklad, rand(25,30), rand(-10,40), 80, 40, $barva, "captcha.ttf", $znak[2]);
$barva = $color3;
ImageTTFText($podklad, rand(25,30), rand(-10,40), 115, 40, $barva, "captcha.ttf", $znak[3]);

imagecopy($podklad, $podklad, 0, 0, 0, 0, 0, 0);

ImagePNG($podklad);
ImageDestroy($podklad);
ImageDestroy($preklad);

Do $_GET[code] posílám zaheslovaný text (zaheslovaný pomocí base64) např. MTczNA=

Obrázek captchy zavolám pomocí
<?php echo "<img src='captcha.php?code=$code' alt='Obrázek'>"; ?>


Obrázek pro podklad i přelad i font existuje. Tak nevím kde může být chyba..

Problém je v tom že na žádném hostingu ani placeném ani free mi to nefunguje (zobrazí se mi pouze alt) - funguje mi to jenom na localhostu. Nevíte někdo kde může být chyba?
keeehi
Profil
možná:
- $_GET["code"];
- je povolená GD knihovna?
t4nn3r
Profil
no ja by sem vam doporucil pouzivat reCaptcha. Ta funguje pomoci Iframe a jeji funkcnost je tim zarucena na vsem a jeji pouziti je trivialni. Odkaz.

jinak jak psal [#2] keeehi, code musi byt v '," , navic s temito knihovnami jsou problemy (hlavne na free hostingu, kde se s clovekem nejak moc nebavi...)
Alphard
Profil
johnl:
Pro účely ladění si vypište přímo obrázek a zakomentujte png hlavičku. PHP vám chybu vypíše samo.
ONdra28
Profil
Tenhle problém sem řešil taky..problém byl v udání cesty fontu..zkus to takhle :

ImageTTFText($podklad, rand(25,30), rand(-10,40), 15, 40, $barva, "./captcha.ttf", $znak[0]);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0