Demonic Posted November 26, 2007 Share Posted November 26, 2007 Okay I have this class and it makes a image simple. http://uni-code.com/cap.txt If I comment this line out: imagettftext($this->img, 16, 0, 10, 25, $this->txtcolor , $this->font , $this->str); It works perfectly with a black box, but when i uncomment it the font doesn't want to show up. Server is PHP 5.1.6 It works perfectly on my other server, what could be the problem? Quote Link to comment Share on other sites More sharing options...
Demonic Posted November 26, 2007 Author Share Posted November 26, 2007 Srry for double posting: What i mean by not showing up as the image just shows the link of the PHP captcha page. Quote Link to comment Share on other sites More sharing options...
Demonic Posted November 26, 2007 Author Share Posted November 26, 2007 bump Quote Link to comment Share on other sites More sharing options...
Demonic Posted November 26, 2007 Author Share Posted November 26, 2007 I know someone can help -.-... Quote Link to comment Share on other sites More sharing options...
Demonic Posted November 27, 2007 Author Share Posted November 27, 2007 I know pros are online any help will be appreciated. Quote Link to comment Share on other sites More sharing options...
suttercain Posted November 27, 2007 Share Posted November 27, 2007 Don't know if this will get you on the right path, but this is the class I use for my captcha and it uses a true typr font (which reside in the same directory) <?php class CaptchaSecurityImages { var $font = 'arial.ttf'; function generateCode($characters) { /* list all possible characters, similar looking characters and vowels have been removed */ $possible = '23456789bcdfghjkmnpqrstvwxyz'; $code = ''; $i = 0; while ($i < $characters) { $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1); $i++; } return $code; } function CaptchaSecurityImages($width='120',$height='40',$characters='6') { $code = $this->generateCode($characters); /* font size will be 75% of the image height */ $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++ ) { imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color); } /* create textbox and add text */ $textbox = imagettfbbox($font_size, 0, $this->font, $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, $this->font , $code) or die('Error in imagettftext function'); /* output captcha image to browser */ header('Content-Type: image/jpeg'); imagejpeg($image); imagedestroy($image); $_SESSION['security_code'] = $code; } } $width = isset($_GET['width']) && $_GET['height'] < 600 ? $_GET['width'] : '120'; $height = isset($_GET['height']) && $_GET['height'] < 200 ? $_GET['height'] : '40'; $characters = isset($_GET['characters']) && $_GET['characters'] > 2 ? $_GET['characters'] : '6'; $captcha = new CaptchaSecurityImages($width,$height,$characters); ?> FYI, I got it from here. http://www.white-hat-web-design.co.uk/articles/php-captcha.php Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.