inferium Posted November 10, 2009 Share Posted November 10, 2009 I keep getting an error that says "Warning: imagettfbbox() [function.imagettfbbox]: Could not find/open font in /home/a6079442/public_html/rebuild/includes/csi.php on line 48 Error in imagettfbbox function" I am trying to include a captcha image in this form, and it just doesn't seem to be working. I've got csi.php included on FormToEmail.php url: http://inferium.site11.com/rebuild/contactform.php Here is my code for the form page: <?php print_r($_POST); session_start(); //check the captcha if(!empty($_SESSION['sc'])&&$_SESSION['sc']==$_POST['sc']){unset($_SESSION['sc']); print 'captcha is right';} else {$valCheck=false;$appMessage='Sorry, you have provided an invalid security code';} ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html class="embed firefox" xmlns="http://www.w3.org/1999/xhtml"> <head> <title> want to advertise? contact us! </title> <!-- Meta Tags --> <meta name="robots" content="noindex, nofollow, noarchive"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- CSS --> <link rel="stylesheet" href="contactform/dynamic.css" type="text/css"> <link rel="stylesheet" href="contactform/theme.css" type="text/css"> <link rel="stylesheet" href="contactform/wufoo.css" type="text/css"> <!-- JavaScript --> <script type="text/javascript" src="contactform/dynamic.js"></script> </head><body id="public"> <div id="container"> <form class="wufoo topLabel page1" autocomplete="off" enctype="multipart/form-data" method="post" action="FormToEmail.php"> <div class="info"> <h2>want to advertise? contact us!</h2> <div></div> </div> <ul> <li id="fo1li108" class=" "> <label class="desc" id="title108" for="Field108"> your name: </label> <div> <input id="name" name="name" class="field text medium" maxlength="255" tabindex="1" type="text"> </div> </li> <li id="fo1li6" class=" "> <label class="desc" id="title6" for="Field6"> your email: </label> <div> <input id="email" name="email" class="field text large" maxlength="255" tabindex="2" type="text"> </div> <p class="instruct" id="instruct6"><small>We won't share this with strangers.</small></p> </li> <li id="fo1li112" class=" "> <label class="desc" id="title112" for="Field112"> your phone: </label> <div> <input id="phone" name="phone" class="field text medium" maxlength="255" tabindex="3" type="text"> </div> </li> <li id="fo1li109" class=" "> <label class="desc" id="title109" for="Field109"> name of your mgmt: </label> <div> <input id="management" name="management" class="field text medium" maxlength="255" tabindex="4" type="text"> </div> </li> <li id="fo1li110" class=" "> <label class="desc" id="title110" for="Field110"> cities your properties are located in: </label> <div> <input id="property_locations" name="property_locations" class="field text medium" maxlength="255" tabindex="5" type="text"> </div> </li> <li id="fo1li1" class=" "> <label class="desc" id="title1" for="Field1"> specific questions or needs: <span id="req_1" class="req">*</span> </label> <div> <textarea id="questions" name="questions" style="border:0px;background-color:#FFFFFF;" rows="2" cols="50" tabindex="6"></textarea> </div> <p class="instruct" id="instruct1"><small>This field is required.</small></p> </li> <li class=" "> <img src="includes/csi.php?w=100&h=40&chr=5" alt="" /> <label class="desc"> please enter the code from above: </label> <input type="text" name="sc" id="sc" style="border:0px;background-color:#FFFFFF;" maxlength="255" /> </li> <li class="buttons"> <input name="currentPage" id="currentPage" value="GI0jR8qooTIIfP2hij1KYssRL4qyfwuBe5cnwuBewqGlzjUSE=" type="hidden"> <input id="saveForm" name="saveForm" class="btTxt submit" value="submit your inquiry" type="submit"> </li> <li style="display: none;"> <label for="comment">Do Not Fill This Out</label> <textarea name="comment" id="comment" rows="1" cols="1"></textarea> <input id="idstamp" name="idstamp" value="VuXFID/UrijtCYffVp7xRB3O98Q+v/DvyIxYt88ZyXM=" type="hidden"> </li> </ul> </form> </div><!--container--> <img id="bottom" src="contactform/bottom.png" alt=""> <script type="text/javascript"> __EMBEDKEY = "false" </script></body></html> Also, here is the code to csi.php: <?php session_start(); class csi { public $font = 'mf.ttf'; public 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; } public function csi($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['sc'] = $code; } } $width = isset($_GET['w']) ? $_GET['w'] : '120'; $height = isset($_GET['h']) ? $_GET['h'] : '40'; $characters = isset($_GET['chr']) && $_GET['chr'] > 1 ? $_GET['chr'] : '6'; $captcha = new csi($width,$height,$characters); ?> Any help with this would be much appreciated Quote Link to comment https://forums.phpfreaks.com/topic/180921-solved-error-with-font-and-imagettfbbox/ Share on other sites More sharing options...
inferium Posted November 11, 2009 Author Share Posted November 11, 2009 I am still having trouble with this. Could somebody help me please? Quote Link to comment https://forums.phpfreaks.com/topic/180921-solved-error-with-font-and-imagettfbbox/#findComment-955476 Share on other sites More sharing options...
Daniel0 Posted November 11, 2009 Share Posted November 11, 2009 Well, did you check that it exists? Where have you put the font file? Quote Link to comment https://forums.phpfreaks.com/topic/180921-solved-error-with-font-and-imagettfbbox/#findComment-955485 Share on other sites More sharing options...
inferium Posted November 11, 2009 Author Share Posted November 11, 2009 Ah, I found the problem. The syntax just wasn't set up right. I ended up making the action of the form "contactform.php", and then the top of the page looks like this: <?php session_start(); if( isset($_POST['submit'])) { //check the captcha if(($_SESSION['sc'] == $_POST['sc']) && (!empty($_SESSION['sc'])) ) { unset($_SESSION['sc']); include 'FormToEmail.php'; } else { echo 'Sorry, you have provided an invalid security code. <a href="contactform.php">click here to try again</a>'; } } else { ?> Guess I'll know better than to trust someone else's coding next time. Quote Link to comment https://forums.phpfreaks.com/topic/180921-solved-error-with-font-and-imagettfbbox/#findComment-955637 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.