Autor Zpráva
Skorpion
Profil
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
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
jjj, díky, dobrý;)

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: