Autor Zpráva
Mixsak
Profil
Dobrý den, mám roblém s captcha.
<?php
session_start();
class CaptchaSecurityImages {

   var $font = 'arial.ttf';

   function generateCode($characters) {
      /* list all possible characters, similar looking characters and vowels have been removed */
      $possible = 'abcdefghijklmnopqrstuvwxyz';
      $code = '';
      $i = 0;
      while ($i < $characters) {
         $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
         $i++;
      }
      return $code;
   }
////////////////////Thanks for http://www.white-hat-web-design.co.uk/////////////////////////////
   function CaptchaSecurityImages($width='70',$height='20',$characters='5') {
      $code = $this->generateCode($characters);
      /* font size will be 60% of the image height */
      $font_size = $height * 0.6;
      $image = imagecreate($width, $height);
      /* set the colours */
      $background_color = imagecolorallocate($image, 255, 255, 255);
      $text_color = imagecolorallocate($image, 20, 40, 100);
      $noise_color = imagecolorallocate($image, 100, 120, 180);

      /* create textbox and add text */
      $textbox = imagettfbbox($font_size, 0, $this->font, $code);
      $x = ($width - $textbox[4])/2;
      $y = ($height - $textbox[5])/2;
      imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code);
      /* output captcha image to browser */
      header('Content-Type: image/jpeg');
      imagejpeg($image);
      imagedestroy($image);
      $_SESSION['vcode'] = $code;
   }

}

$width = isset($_GET['width']) && $_GET['width'] < 600 ? $_GET['width'] : '70';
$height = isset($_GET['height']) && $_GET['height'] < 200 ? $_GET['height'] : '20';
$characters = isset($_GET['characters']) && $_GET['characters'] > 4 ? $_GET['characters'] : '5';
$captcha = new CaptchaSecurityImages($width,$height,$characters);
?>


A hází mi to tuto chybu:
Fatal error: Call to undefined function: imagecreate() in /home/ftponly/usr/fwitpekc/web/comments/captcha.php on line 23

Nemoh byste mi někdo poradit?
Beavis
Profil
Mixsak:
Jakou máte verzi PHP / Apache? Popřípadě použít jinou fci, viz manuál.
mckay
Profil
Mixsak:
Funkce imagecreate(); funguje pouze v php4 a php5 pořiďte si vyšší verzi, než máte.
Mixsak
Profil
Mám jen php. Šlo by to nějka udělat aby to šlo v php?
Kajman_
Profil *
Je potřeba v php povolit rozšíření gd.
Mixsak
Profil
Jak? Jsem začátečník a vůbec o tom nic nevím tak omluvte ty hloupý otázky.
Kajman_
Profil *
Zkuste najít soubor php.ini a v něm řádek
#extension=php_gd2.dll

A umazat tu mřížku na začátkku.
Mixsak
Profil
Jsem začátečník a vůbec o tom nic nevím, tak omluvte ty hloupý otázky.

Nechápu
denCo
Profil
máte nainštalované PHP na domácom PC alebo na webhostingu?
Mixsak
Profil
Na webhostingu
Davex
Profil
Zkus vyměnit funkci na řádku č. 23 za
$image = imagecreatetruecolor($width, $height);


Pak ještě bude potřeba vyplnit barvu pozadí přidáním kódu na řádek č. 28:
imagefill($image, 0, 0, $background_color);

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