| Autor | Zpráva | ||
|---|---|---|---|
| Skorpion Profil |
#1 · Zasláno: 8. 9. 2009, 22:25:41
Ahoj, snažím se nějak vytvořit obrázek, takový, aby se do něj dal napsat text, který se vygeneruje při vyplnění jakéhosi formuláře.
zatim se mi povedlo jenom vypsat chyby v kódování. Ví někdo jak na to? Díky |
||
| SwimX Profil |
#2 · Zasláno: 8. 9. 2009, 22:39:13
Skorpion:
toto je můj skript na tvorbu captchy, pomůže? <?php
session_start();
define ("POCET", 5); // číslo = náhodných písmen nebo čísel v captche
$capt = "";
for($i=0; $i<POCET; $i++){
$nahoda = mt_rand(0, 1);
if ($nahoda == 0) // mala pismenka
$capt .= chr(mt_rand(97, 122));
else // cisla
$capt .= chr(mt_rand(49, 57)); // nenačítám nulu aby nedošlo ke zmatení zda jde o nulu nebo o
}
$_SESSION['capta'] = $capt; // uložení do sessionu abych to moohl porovnávat na jiné stránce
$img = imagecreate((POCET+1)*30, 50); // vytvoření obrázku podle počtu cifer
$color_bg = imagecolorallocate($img, 11, 11, 11); // barva pozadí
imagefill($img, 0, 0, $color_bg); // vyplnění obrázku barvou
for ($i = 0; $i<3; $i++){ // 3krát zamíchání souřadnic, barev
$x1 = mt_rand(0, (POCET+2)*10);
$x2 = mt_rand($x1, (POCET+2)*30);
$y1 = mt_rand(0, 20);
$y2 = mt_rand($y1, 50);
$r = mt_rand(50, 255);
$g = mt_rand(50, 255);
$b = mt_rand(50, 255);
$color_line = imagecolorallocate($img, $r, $g, $b);
imageline($img, $x1, $y1, $x2, $y2, $color_line); // udělání čar do obrázků
}
for($i=0; $i<POCET; $i++){ // vytisknutí písmenek do obrázku
$size = mt_rand(20, 30); // náhodná velikost
$angel = mt_rand(-30, 30); // náhodný sklon
$r = mt_rand(100, 255); //náhodná barva
$g = mt_rand(100, 255);
$b = mt_rand(100, 255);
$color_txt = imagecolorallocate($img, $r, $g, $b);
imagettftext($img, $size, $angel, $i*30+10, 40, $color_txt, "Mias.ttf", $_SESSION['capta'][$i]); // vložení textu do obrázku pomocí fontu Mias.ttf
}
for ($i = 0; $i<3; $i++){ // zase 3 čáry, ale tentokrát přes písmo
$x1 = mt_rand(0, (POCET+2)*10);
$x2 = mt_rand($x1, (POCET+2)*30);
$y1 = mt_rand(0, 20);
$y2 = mt_rand($y1, 50);
$r = mt_rand(50, 255);
$g = mt_rand(50, 255);
$b = mt_rand(50, 255);
$color_line = imagecolorallocate($img, $r, $g, $b);
imageline($img, $x1, $y1, $x2, $y2, $color_line);
}
header("Content-type: image/png"); // nastavení headru na image/png
ImagePng($img); // prirazeni obrazku do captcha.php
imagedestroy($img); // uvolneni promnene img - aby nemusela byt v pameti zbytecne
?>
|
||
| Skorpion Profil |
#3 · Zasláno: 8. 9. 2009, 22:43:11
jjj, díky, dobrý;)
|
||
|
Časová prodleva: 16 let
|
|||
0