Jump to content

[SOLVED] Fatal error: Call to undefined function imagecreatetruecolor()


starscream.pt

Recommended Posts

Hello there again, i'm using a shopping cart called plaincart, everything works perfectly but the image upload, i was told it has something to do with GD not being enabled, i'm running wamp on a local machine, using PHP version : 5.2.4 and the error message is get is:

 

Fatal error: Call to undefined function imagecreatetruecolor() in Z:\wamp\www\plaincart\admin\library\functions.php on line 223

 

the php code is:

<?php

/*
Check if a session user id exist or not. If not set redirect
to login page. If the user session id exist and there's found
$_GET['logout'] in the query string logout the user
*/
function checkUser()
{
// if the session id is not set, redirect to login page
if (!isset($_SESSION['plaincart_user_id'])) {
	header('Location: ' . WEB_ROOT . 'admin/login.php');
	exit;
}

// the user want to logout
if (isset($_GET['logout'])) {
	doLogout();
}
}

/*

*/
function doLogin()
{
// if we found an error save the error message in this variable
$errorMessage = '';

$userName = $_POST['txtUserName'];
$password = $_POST['txtPassword'];

// first, make sure the username & password are not empty
if ($userName == '') {
	$errorMessage = 'You must enter your username';
} else if ($password == '') {
	$errorMessage = 'You must enter the password';
} else {
	// check the database and see if the username and password combo do match
	$sql = "SELECT user_id
	        FROM tbl_user 
			WHERE user_name = '$userName' AND user_password = md5('$password')";
	$result = dbQuery($sql);

	if (dbNumRows($result) == 1) {
		$row = dbFetchAssoc($result);
		$_SESSION['plaincart_user_id'] = $row['user_id'];

		// log the time when the user last login
		$sql = "UPDATE tbl_user 
		        SET user_last_login = NOW() 
				WHERE user_id = '{$row['user_id']}'";
		dbQuery($sql);

		// now that the user is verified we move on to the next page
            // if the user had been in the admin pages before we move to
		// the last page visited
		if (isset($_SESSION['login_return_url'])) {
			header('Location: ' . $_SESSION['login_return_url']);
			exit;
		} else {
			header('Location: index.php');
			exit;
		}
	} else {
		$errorMessage = 'Wrong username or password';
	}		

}

return $errorMessage;
}

/*
Logout a user
*/
function doLogout()
{
if (isset($_SESSION['plaincart_user_id'])) {
	unset($_SESSION['plaincart_user_id']);
	session_unregister('plaincart_user_id');
}

header('Location: login.php');
exit;
}


/*
Generate combo box options containing the categories we have.
if $catId is set then that category is selected
*/
function buildCategoryOptions($catId = 0)
{
$sql = "SELECT cat_id, cat_parent_id, cat_name
		FROM tbl_category
		ORDER BY cat_id";
$result = dbQuery($sql) or die('Cannot get Product. ' . mysql_error());

$categories = array();
while($row = dbFetchArray($result)) {
	list($id, $parentId, $name) = $row;

	if ($parentId == 0) {
		// we create a new array for each top level categories
		$categories[$id] = array('name' => $name, 'children' => array());
	} else {
		// the child categories are put int the parent category's array
		$categories[$parentId]['children'][] = array('id' => $id, 'name' => $name);	
	}
}	

// build combo box options
$list = '';
foreach ($categories as $key => $value) {
	$name     = $value['name'];
	$children = $value['children'];

	$list .= "<optgroup label=\"$name\">"; 

	foreach ($children as $child) {
		$list .= "<option value=\"{$child['id']}\"";
		if ($child['id'] == $catId) {
			$list.= " selected";
		}

		$list .= ">{$child['name']}</option>\r\n";
	}

	$list .= "</optgroup>";
}

return $list;
}

/*
If you want to be able to add products to the first level category
replace the above function with the one below
*/
/*

function buildCategoryOptions($catId = 0)
{
$sql = "SELECT cat_id, cat_parent_id, cat_name
		FROM tbl_category
		ORDER BY cat_id";
$result = dbQuery($sql) or die('Cannot get Product. ' . mysql_error());

$categories = array();
while($row = dbFetchArray($result)) {
	list($id, $parentId, $name) = $row;

	if ($parentId == 0) {
		// we create a new array for each top level categories
		$categories[$id] = array('name' => $name, 'children' => array());
	} else {
		// the child categories are put int the parent category's array
		$categories[$parentId]['children'][] = array('id' => $id, 'name' => $name);	
	}
}	

// build combo box options
$list = '';
foreach ($categories as $key => $value) {
	$name     = $value['name'];
	$children = $value['children'];

	$list .= "<option value=\"$key\"";
	if ($key == $catId) {
		$list.= " selected";
	}

	$list .= ">$name</option>\r\n";

	foreach ($children as $child) {
		$list .= "<option value=\"{$child['id']}\"";
		if ($child['id'] == $catId) {
			$list.= " selected";
		}

		$list .= ">  {$child['name']}</option>\r\n";
	}
}

return $list;
}
*/

/*
Create a thumbnail of $srcFile and save it to $destFile.
The thumbnail will be $width pixels.
*/
function createThumbnail($srcFile, $destFile, $width, $quality = 75)
{
$thumbnail = '';

if (file_exists($srcFile)  && isset($destFile))
{
	$size        = getimagesize($srcFile);
	$w           = number_format($width, 0, ',', '');
	$h           = number_format(($size[1] / $size[0]) * $width, 0, ',', '');

	$thumbnail =  copyImage($srcFile, $destFile, $w, $h, $quality);
}

// return the thumbnail file name on sucess or blank on fail
return basename($thumbnail);
}

/*
Copy an image to a destination file. The destination
image size will be $w X $h pixels
*/
function copyImage($srcFile, $destFile, $w, $h, $quality = 75)
{
    $tmpSrc     = pathinfo(strtolower($srcFile));
    $tmpDest    = pathinfo(strtolower($destFile));
    $size       = getimagesize($srcFile);

    if ($tmpDest['extension'] == "gif" || $tmpDest['extension'] == "jpg")
    {
       $destFile  = substr_replace($destFile, 'jpg', -3);
       $dest      = imagecreatetruecolor($w, $h);
       imageantialias($dest, TRUE);
    } elseif ($tmpDest['extension'] == "png") {
       $dest = imagecreatetruecolor($w, $h);
       imageantialias($dest, TRUE);
    } else {
      return false;
    }

    switch($size[2])
    {
       case 1:       //GIF
           $src = imagecreatefromgif($srcFile);
           break;
       case 2:       //JPEG
           $src = imagecreatefromjpeg($srcFile);
           break;
       case 3:       //PNG
           $src = imagecreatefrompng($srcFile);
           break;
       default:
           return false;
           break;
    }

    imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $h, $size[0], $size[1]);

    switch($size[2])
    {
       case 1:
       case 2:
           imagejpeg($dest,$destFile, $quality);
           break;
       case 3:
           imagepng($dest,$destFile);
    }
    return $destFile;

}

/*
Create the paging links
*/
function getPagingNav($sql, $pageNum, $rowsPerPage, $queryString = '')
{
$result  = mysql_query($sql) or die('Error, query failed. ' . mysql_error());
$row     = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];

// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);

$self = $_SERVER['PHP_SELF'];

// creating 'previous' and 'next' link
// plus 'first page' and 'last page' link

// print 'previous' link only if we're not
// on page one
if ($pageNum > 1)
{
	$page = $pageNum - 1;
	$prev = " <a href=\"$self?page=$page{$queryString}\">[Prev]</a> ";

	$first = " <a href=\"$self?page=1{$queryString}\">[First Page]</a> ";
}
else
{
	$prev  = ' [Prev] ';       // we're on page one, don't enable 'previous' link
	$first = ' [First Page] '; // nor 'first page' link
}

// print 'next' link only if we're not
// on the last page
if ($pageNum < $maxPage)
{
	$page = $pageNum + 1;
	$next = " <a href=\"$self?page=$page{$queryString}\">[Next]</a> ";

	$last = " <a href=\"$self?page=$maxPage{$queryString}{$queryString}\">[Last Page]</a> ";
}
else
{
	$next = ' [Next] ';      // we're on the last page, don't enable 'next' link
	$last = ' [Last Page] '; // nor 'last page' link
}

// return the page navigation link
return $first . $prev . " Showing page <strong>$pageNum</strong> of <strong>$maxPage</strong> pages " . $next . $last; 
}
?>

i was told it has something to do with GD not being enabled

 

It's because GD isn't enabled/installed :P 

 

 

Call to undefined function imagecreatetruecolor()

 

That error simply means you're trying to execute a function that hasn't been created/defined.

 

http://www.php.net/imagecreatetruecolor.

 

Explains it a bit more

but how exactly do i load it? i removed the ; from the start of the file:

 

;Windows Extensions
;Note that ODBC support is built in, so no dll is needed for it.
;
extension=php_mbstring.dll
;extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_dbx.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xsl.dll
;extension=php_zip.dll
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_ibm.dll
:extension=php_pdo_informix.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_sqlite.dll
;extension=php_pdo_sqlite_external.dll
;extension=php_apc.dll
;extension=php_apd.dll
;extension=php_bcompiler.dll
;extension=php_bitset.dll
;extension=php_blenc.dll
;extension=php_bz2_filter.dll
;extension=php_classkit.dll
;extension=php_crack.dll
;extension=php_cvsclient.dll
;extension=php_db.dll
;extension=php_dio.dll
;extension=php_docblock.dll
;extension=php_domxml.dll
;extension=php_event.dll
;extension=php_ffi.dll
;extension=php_fileinfo.dll
;extension=php_fribidi.dll
;extension=php_gmp.dll
;extension=php_gopher.dll
;extension=php_haru.dll
;extension=php_htscanner.dll
;extension=php_hyperwave.dll
;extension=php_ibm_db2.dll
;extension=php_id3.dll
;extension=php_imagick.dll
;extension=php_ingres.dll
;extension=php_java.dll
;extension=php_lzf.dll
;extension=php_mailparse.dll
;extension=php_maxdb.dll
;extension=php_mcrypt_filter.dll
;extension=php_netools.dll
;extension=php_ntuser.dll
;extension=php_oggvorbis.dll
;extension=php_operator.dll
;extension=php_parsekit.dll
;extension=php_phar.dll
;extension=php_phpdoc.dll
;extension=php_pop3.dll
;extension=php_printer.dll
;extension=php_pspell.dll
;extension=php_radius.dll
;extension=php_rar.dll
;extension=php_runkit.dll
;extension=php_sam.dll
;extension=php_sdo.dll
;extension=php_smtp.dll
;extension=php_soap.dll
;extension=php_ssh2.dll
;extension=php_stats.dll
;extension=php_stem.dll
;extension=php_svn.dll
;extension=php_swish.dll
;extension=php_threads.dll
;extension=php_timezonedb.dll
;extension=php_translit.dll
;extension=php_uploadprogress.dll
;extension=php_win32ps.dll
;extension=php_win32scheduler.dll
;extension=php_win32service.dll
;extension=php_yaz.dll
;extension=php_zlib_filter.dll

 

still giving the same error, and i have exited and loades wamp again :\

If you're using WAMP, it should just be a case of clicking on the server icon in the system tray, then going to PHP settings=>PHP extensions and making sure that php_gd2 is checked - it should restart the server for you.

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.