SkyRanger Posted May 3, 2007 Share Posted May 3, 2007 I am working with a captcha form script and getting an undefined function problem. Not sure what the problem is: Fatal error: Call to undefined function imagettfbbox() in /home/prodco/public_html/mailcode-includes/txt2png.php on line 60 Here is the text2png file: session_start(); class CaptchaSecurityImages { var $font = 'fonts/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='5') { $code = $this->generateCode($characters); /* font size will be 60% of the image height */ $font_size = $height * 0.60; $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, 0, 150, 0); $noise_color = imagecolorallocate($image, 50, 180, 40); /* 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 */ Line 60 --> $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['width'] : '120'; $height = isset($_GET['height']) ? $_GET['height'] : '40'; $characters = isset($_GET['characters']) && $_GET['characters'] > 1 ? $_GET['characters'] : '5'; $captcha = new CaptchaSecurityImages($width,$height,$characters); Below is the file that calls it: contact.php <script language="javascript" type="text/javascript"> function rand(n) { return (Math.floor(Math.random()*n+1)); } function newcode() { var sec; sec = document.getElementById("img"); if (sec) sec.setAttribute("src",sec.src+rand(9)); } // --> </script> <? $userip = $_SERVER['REMOTE_ADDR']; ?> <table class="forumtext" align="center"> <tr> <td align="left"> <form action="mailcode-includes/mailer.php" method="post"> <? echo "<input type=\"hidden\" name=\"address\" value=\"$userip\"><br>"; ?> Name: <br /> <input class="textbox" type="text" name="name" size="40"><br> Email Address: <br /> <input class="textbox" type="text" name="email" size="40"><br> Message: <br /> <textarea class="textbox" name="message" rows="5" cols="30"></textarea><br> Security Code:<br> Calls it here --> <img src="mail-includes/txt2png.php?" name="img" id="img"><br> Type the Code:<br> <input class="textbox" id="security_code" name="security_code" type="text"> <input class="formbutton" type="submit" name="submit" value="Send"> <input class="formbutton" type="reset" value="Clear"> </form> </td> </tr> <tr> <td align="center"> <br><a href="" onclick="newcode(); return false;">Click Here</a> for a new code.<br><br> </td> </tr> </table> Can anybody see the problem, I sure can't find it. Quote Link to comment Share on other sites More sharing options...
trq Posted May 3, 2007 Share Posted May 3, 2007 Do you have GD and freetype installed? Quote Link to comment Share on other sites More sharing options...
SkyRanger Posted May 3, 2007 Author Share Posted May 3, 2007 GD is installed, not sure about freetype, have to find out Quote Link to comment Share on other sites More sharing options...
SkyRanger Posted May 3, 2007 Author Share Posted May 3, 2007 Would freetype need to be installed, due to I am using a set font for it (arial.ttf)? Just asking for curiosity sake. Quote Link to comment Share on other sites More sharing options...
SkyRanger Posted May 3, 2007 Author Share Posted May 3, 2007 Did some research on FreeType got the info I needed, contacted my server provider to have them install it. Not sure why they never in the first place, but thanks thorpe. 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.