Jump to content

[SOLVED] Undefined Function Problem


SkyRanger

Recommended Posts

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.

 

Link to comment
https://forums.phpfreaks.com/topic/49842-solved-undefined-function-problem/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.