Jump to content

[SOLVED] Error with Font and imagettfbbox


inferium

Recommended Posts

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 :)

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.