| Autor | Zpráva | ||
|---|---|---|---|
| Mixsak Profil |
#1 · Zasláno: 14. 5. 2010, 13:44:14
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 |
#2 · Zasláno: 14. 5. 2010, 14:06:18
Mixsak:
Jakou máte verzi PHP / Apache? Popřípadě použít jinou fci, viz manuál. |
||
| mckay Profil |
#3 · Zasláno: 14. 5. 2010, 15:01:32
Mixsak:
Funkce imagecreate(); funguje pouze v php4 a php5 pořiďte si vyšší verzi, než máte. |
||
| Mixsak Profil |
#4 · Zasláno: 14. 5. 2010, 15:04:48
Mám jen php. Šlo by to nějka udělat aby to šlo v php?
|
||
| Kajman_ Profil * |
#5 · Zasláno: 14. 5. 2010, 15:17:47
Je potřeba v php povolit rozšíření gd.
|
||
| Mixsak Profil |
#6 · Zasláno: 14. 5. 2010, 15:22:27
Jak? Jsem začátečník a vůbec o tom nic nevím tak omluvte ty hloupý otázky.
|
||
| Kajman_ Profil * |
#7 · Zasláno: 14. 5. 2010, 15:30:21
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 |
#8 · Zasláno: 14. 5. 2010, 15:36:20 · Upravil/a: Mixsak
Jsem začátečník a vůbec o tom nic nevím, tak omluvte ty hloupý otázky.
Nechápu |
||
| denCo Profil |
#9 · Zasláno: 14. 5. 2010, 15:37:32
máte nainštalované PHP na domácom PC alebo na webhostingu?
|
||
| Mixsak Profil |
#10 · Zasláno: 14. 5. 2010, 16:32:50
Na webhostingu
|
||
| Davex Profil |
#11 · Zasláno: 16. 5. 2010, 21:02:31
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); |
||
|
Časová prodleva: 15 let
|
|||
0