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

1header("Content-type: image/png");
2$desecurity = $_GET[code];
3$znak = Base64_Decode($desecurity);
4$podklad = ImageCreateFromPNG("captcha.png");
5$preklad = imagecreatefromPNG("captcha1.png");
6$color = ImageColorAllocate($podklad, rand(0,50), rand(20,90), rand(0,255));
7$color1 = ImageColorAllocate($podklad, rand(0,90), rand(40,190), rand(0,205));
8$color2 = ImageColorAllocate($podklad, rand(0,50), rand(40,110), rand(0,255));
9$color3 = ImageColorAllocate($podklad, rand(0,90), rand(90,180), rand(20,255));
10 
11$barva = $color;
12ImageTTFText($podklad, rand(25,30), rand(-10,40), 15, 40, $barva, "captcha.ttf", $znak[0]);
13$barva = $color1;
14ImageTTFText($podklad, rand(25,30), rand(-10,40), 45, 40, $barva, "captcha.ttf", $znak[1]);
15$barva = $color2;
16ImageTTFText($podklad, rand(25,30), rand(-10,40), 80, 40, $barva, "captcha.ttf", $znak[2]);
17$barva = $color3;
18ImageTTFText($podklad, rand(25,30), rand(-10,40), 115, 40, $barva, "captcha.ttf", $znak[3]);
19 
20imagecopy($podklad, $podklad, 0, 0, 0, 0, 0, 0);
21 
22ImagePNG($podklad);
23ImageDestroy($podklad);
24ImageDestroy($preklad);
header("Content-type: image/png");
$desecurity $_GET[code];
$znak Base64_Decode($desecurity);
$podklad ImageCreateFromPNG("captcha.png");
$preklad imagecreatefromPNG("captcha1.png");
$color ImageColorAllocate($podkladrand(0,50), rand(20,90), rand(0,255));
$color1 ImageColorAllocate($podkladrand(0,90), rand(40,190), rand(0,205));
$color2 ImageColorAllocate($podkladrand(0,50), rand(40,110), rand(0,255));
$color3 ImageColorAllocate($podkladrand(0,90), rand(90,180), rand(20,255));
 
$barva $color;
ImageTTFText($podkladrand(25,30), rand(-10,40), 1540$barva"captcha.ttf"$znak[0]);
$barva $color1;
ImageTTFText($podkladrand(25,30), rand(-10,40), 4540$barva"captcha.ttf"$znak[1]);
$barva $color2;
ImageTTFText($podkladrand(25,30), rand(-10,40), 8040$barva"captcha.ttf"$znak[2]);
$barva $color3;
ImageTTFText($podkladrand(25,30), rand(-10,40), 11540$barva"captcha.ttf"$znak[3]);
 
imagecopy($podklad$podklad000000);
 
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'>"; ?>
<?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]);
ImageTTFText($podkladrand(25,30), rand(-10,40), 1540$barva"./captcha.ttf"$znak[0]);
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.

Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:


Běda vám, jestli to bude blábol.

0