Witajcie. Mam coś takiego:
formularz w pliku message.tpl a w nim linijka:
<img src="lib/core/class.CaptchaSecurityImages.php" />
za działanie formularza odpowiada plik message.php, w którym jest odpowiednia regułka porównująca kod captcha z sesji i kod wpisany w formularzu.
problem jest tego typu, że niby wszystko działa ale kiedy wywołam
w pliku message.php to otrzymuję zupełnie co innego niż jest ustawiane w class.CaptchaSecurityImages.php , no chyba,ze w ogóle tam nic nie ustawia, ale w takim razie powinna nie działać captcha a działa . Ponizej kod class.CaptchaSecurityImages.php :
function generateCode($characters) {
/* list all possible characters, similar looking characters and vowels have been removed */
$possible = '23456789';
//$possible = '23456789bcdfghjkmnpqrstvwxyz';
$code = '';
$i = 0;
while ($i < $characters) {
$i++;
}
return $code;
}
function CaptchaSecurityImages($width='120',$height='40',$characters='6') {
$font = $_SERVER["DOCUMENT_ROOT"].'/lib/fonts/monofont.ttf';
/* font size will be 75% of the image height */
$_SESSION['security_code'] = generateCode(6);
$font_size = $height * 0.75;
$image = @imagecreate
($width, $height) or
die('Cannot initialize new GD image stream'); /* set the colours */
$background_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 20, 40, 100);
$noise_color = imagecolorallocate($image, 100, 120, 180);
/* generate random dots in background */
for( $i=0; $i<($width*$height)/3; $i++ ) {
imagefilledellipse
($image, mt_rand(0
,$width), mt_rand(0
,$height), 1
, 1
, $noise_color); }
/* generate random lines in background */
for( $i=0; $i<($width*$height)/150; $i++ ) {
}
/* create textbox and add text */
$textbox = imagettfbbox
($font_size, 0
, $font, $_SESSION['security_code']) or
die('Error in imagettfbbox function'); $x = ($width - $textbox[4])/2;
$y = ($height - $textbox[5])/2;
imagettftext
($image, $font_size, 0
, $x, $y, $text_color, $font , $_SESSION['security_code']) or
die('Error in imagettftext function'); /* output captcha image to browser */
header('Content-Type: image/jpeg'); imagejpeg($image);
imagedestroy($image);
}
CaptchaSecurityImages(120,40,6);
Co robię nie tak?
i co?? nikt nie pomoże?
Zapraszam do odwiedzenia mojej strony.