Autor Zpráva
jerremy
Profil *
Prosim, mohli by ste sa pozriet na daný kód? Slúži na vytvorenie jednoduchého CAPTCHA kódu, no nezobrazuje sa obrázok. Ďakujem

<?php
          $captcha = NULL;
          for($i=0;$i<6;$i++){
          $rozsah = rand(1,3);
          switch ($rozsah) {
          case 1: $captcha .= chr(rand(97,122)); break;
          case 2: $captcha .= chr(rand(65,90)); break;
          case 3: $captcha .= chr(rand(48,57)); break;
           }
           }

//Nastavenie Content-type
header('Content-type: image/png');

//Zadefinovanie obrázka a nastavenie velikosti
$img = imagecreatetruecolor(100, 25);

//Alokovanie farieb
$pozadie = imagecolorallocate($img,150,0,0);
$pismo = imagecolorallocate($img,255,255,255);

//vytvorenie "kresliacej" polchy
imagefilledrectangle($img, 0, 0, 100, 25, $pozadie);

//Písmo
$font = 'corbel.ttf';

//zápis do obrázka
imagettftext($img, 12, rand(-5,5), 24, 16, $pismo, $font, $vystup);

imagepng($img);
imagedestroy($img);?>
?>
Ugo
Profil
jerremy:
imagedestroy($img);?> ?>
jerremy
Profil *
Ugo:
Nie je tam ten riadok. Neviem prečo sa to tam doplnilo (možno zle skopriované), ale koniec je normalne
imagepng($img);
imagedestroy($img);
?>
Ugo
Profil
tak to je špatný, to byla jasná odpověď :-) zkus se podívat, jestli v $img je opravdu správný resource (nejspíš bude), pak bych zkusil soubor uložit (imagepng by to mělo umět do souboru, případně pustit samotnej script a uložit) a otevřít v nějakym editoru co poví - podle mě bude poškozenej. a první co udělej, zkontroluj jestli máš soubor bez BOM, je možné že se do něj zapisuje chyba s hlavičkama a nebo vadí ten byte
jerremy
Profil *
Môže to byť aj problém, že na mojom webhostingu (ic.cz) nefunguje nejaká funkcia, alebo knihovňa?
Davex
Profil
Zkus neposílat hlavičku header('Content-type: image/png'), abys viděl všechny chyby. Asi bude problém v tom, že není definována proměnná $vystup.
jerremy
Profil *
Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/free/ic.cz/g/gogy/root/www/inzercia/inzeraty/zlozky/captcha.php on line 27
‰PNG  IHDRČ2–3¶uIDATxśíŇÁ € Ŕ@d\•r^f ¦!š» účő 6ܧľbž༦EÂX$ŚEÂX$ŚEÂX$ŚEÂX$ŚEÂX$ŚEÂX$ŚEÂX$ŚEÂX$ŚEÂX$ŚEÂX$ŚEÂX$ŚEÂXĽ˛ÍR4>ĂIEND®B`‚

Ale to pismo mam v tej istej zlozke ako ten skript.
$vystup som zmenil na $captcha
Davex
Profil
jerremy:
Zkontroluj si velikost písmen ve jméně souboru s fontem na serveru nebo zkus přidat do cesty:
$font = './corbel.ttf';
kerry
Profil *
‰PNG  IHDRČ2–3¶ŕIDATxśíŰoHgđ×[š:˙„ΦѦ‡ŤiĚ2gWɲ´: í&RÚ’•BćR׉X‘ E$H?”RB~ !+’9˙WBś+Ą A˜ˆ­›«öY̢kĄKŰ4Ęiöá0˝zmgkŻ˝ŐçG>xďűÜ{ďŢ{ďÄ´.^@Ă›žŔ˙ö¦'ŢNPX€PX€PX€PX€PX€PX€PX€PX€PX€PX€PX€PX€PX€PX€Ľ...

a tak ďalej, takže error nevyhodi, ale problem pretrvava. Skusit zmenit font?
Davex
Profil
Teď už by mělo stačit vrátit zpět ten header() se správnou hlavičkou, aby se tyhle nesmysly přeměnily v obrázek.

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: