Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Support thread for the Image Magic contribution


tomjmul

Recommended Posts

  • Replies 1.3k
  • Created
  • Last Reply

Top Posters In This Topic

hi !

thx for your work,

i have one problem,no pictures are showing up and i get this error on the pictures :

Warning: chdir(): SAFE MODE Restriction in effect. The script whose uid is 1472 is not allowed to access /mnt owned by uid /imagemagic.php on line 21

 

any ideas ?

 

best regards

Lukas

Link to comment
Share on other sites

Hello to all

 

Sorry for asking the question again, but could somebody let me know if he faced the same bandwith consumption problem than me ?

 

The contribution has been deactivated for 1 month and I would like to find a way to activate it again.

 

Clubfitting.net

 

Thanks for your comments

Patrice

 

Hello

 

Image Magic was working great, exactly the results expected...but my website host asked me to remove it as it is taking too much CPU process (more than 90% of the 3.0Ghz server, OVH hosted).

 

I wonder if somebody had the same problem.

 

Patrice

Edited by patator
Link to comment
Share on other sites

Lukas

Warning: chdir(): SAFE MODE Restriction in effect. The script whose uid is 1472 is not allowed to access /mnt owned by uid /imagemagic.php on line 21
I had the same problem.

I have renamed the thumbnail folder and used a new folder (must be defined in the imagemagic setup as well) and than created all the subfolders in it _before_ i run the site again. After that, imagemagic must not create subfolders and all pictures are visible and watermarking works as well.

It looks like imagemagic cannot create subfolders when SAFE_MODE is ON.

Link to comment
Share on other sites

hallo,

 

thx for your quick awnser, can you explain it a little more detailed - i'm a bloodie newbie :'(

 

I have renamed the thumbnail folder and used a new folder (must be defined in the imagemagic setup as well) and than created all the subfolders in it _before_ i run the site again.

 

thx in advance, this would be great

Link to comment
Share on other sites

PLEASE HELP!

 

Parse Error, Parse Error, Parse Error...I've tried installing this thing ALL WEEKEND and I keep getting PARSE ERROR

 

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /home/tgcuecom/public_html/storefront/includes/functions/html_output.php on line 357

 

I HAVE TINKERED AND TINKERED AND I KEEP GETTING ABOUT THE SAME MESSAGE...I AM NO GOOD WITH PHP ....SOMEONE PLEASE CHECK MY CODE AND TELL ME WHAT IM DOING WRONG......

 

 

"<?php
/*
 $Id: html_output.php,v 1.56 2003/07/09 01:15:48 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

////
// The HTML href link wrapper function
 function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
global $request_type, $session_started, $SID;

if (!tep_not_null($page)) {
  die('</td></tr></table></td></tr></table><br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine the page link!<br><br>');
}

if ($connection == 'NONSSL') {
  $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
} elseif ($connection == 'SSL') {
  if (ENABLE_SSL == true) {
	$link = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG;
  } else {
	$link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
  }
} else {
  die('</td></tr></table></td></tr></table><br><br><font color="#ff0000"><b>Error!</b></font><br><br><b>Unable to determine connection method on a link!<br><br>Known methods: NONSSL SSL</b><br><br>');
}

if (tep_not_null($parameters)) {
  $link .= $page . '?' . tep_output_string($parameters);
  $separator = '&';
} else {
  $link .= $page;
  $separator = '?';
}

while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1);

// Add the session ID when moving from different HTTP and HTTPS servers, or when SID is defined
if ( ($add_session_id == true) && ($session_started == true) && (SESSION_FORCE_COOKIE_USE == 'False') ) {
  if (tep_not_null($SID)) {
	$_sid = $SID;
  } elseif ( ( ($request_type == 'NONSSL') && ($connection == 'SSL') && (ENABLE_SSL == true) ) || ( ($request_type == 'SSL') && ($connection == 'NONSSL') ) ) {
	if (HTTP_COOKIE_DOMAIN != HTTPS_COOKIE_DOMAIN) {
	  $_sid = tep_session_name() . '=' . tep_session_id();
	}
  }
}

if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) {
  while (strstr($link, '&&')) $link = str_replace('&&', '&', $link);

  $link = str_replace('?', '/', $link);
  $link = str_replace('&', '/', $link);
  $link = str_replace('=', '/', $link);

  $separator = '?';
}

if (isset($_sid)) {
  $link .= $separator . tep_output_string($_sid);
}

return $link;
 }

////
// BOF Image Magic 
function tep_image($src, $alt = '', $width = '', $height = '', $params = '') {  
 global $product_info;

 //Allow for a new intermediate sized thumbnail size to be set 
 //without any changes having to be made to the product_info page itself. 
 //(see the lengths I go to to make your life easier :-)
 if (strstr($_SERVER['PHP_SELF'],"product_info.php")) {

	if (isset($product_info['products_image']) 
			   && $src == DIR_WS_IMAGES . $product_info['products_image']
			   && $product_info[products_id]==$_GET['products_id'])  {   //final check just to make sure that we don't interfere with other contribs
		$width = PRODUCT_INFO_IMAGE_WIDTH == 0?'':PRODUCT_INFO_IMAGE_WIDTH;
		$height = PRODUCT_INFO_IMAGE_HEIGHT == 0?'':PRODUCT_INFO_IMAGE_HEIGHT;
		$product_info_image=true;
		$page="prod_info"; 
	}
 }

 //Detect whether this is a pop-up image
 if (strstr($_SERVER['PHP_SELF'],"popup_image.php")) $page="popup";

 //do we apply the IE PNG alpha transparency fix?
 if  (strstr(strtolower($src),".png") && CFG_PNG_BUG=="True") $fix_png = true;

 //send the image for processing unless told otherwise
 $image = '<img src="' . $src . '"'; //set up the image tag just in case we don't want to process
 if (CFG_MASTER_SWITCH=="On") $calculate = true;
 else $calculate=false;

 // Don't calculate if the image is set to a "%" width
 if (strstr($width,'%') == true || strstr($height,'%') == true) $calculate = false; 

 // Dont calculate if a pixel image is being passed (hope you dont have pixels for sale)
 if (strstr($image, 'pixel')) $calculate = false;


 $image_size = @getimagesize($src);


 // Decide whether or not we want to process this image
 if (($width == '' && $height == '' && $page != 'popup' ) || ($width == $image_size[0] && $height == $image_size[0] && $page != 'popup')) {  
	if (CFG_PROCESS_GRAPHICS=="False") $calculate = false; //looks like this is a store graphic rather than product image
 }	

 // Is this image good to go?
 if (CONFIG_CALCULATE_IMAGE_SIZE && $calculate) { 

 if ($image_size) { 

  $ratio = $image_size[1] / $image_size[0];

  // Set the width and height to the proper ratio
  if (!$width && $height) { 
	$ratio = $height / $image_size[1]; 
	$width = intval($image_size[0] * $ratio); 
  } elseif ($width && !$height) { 
	$ratio = $width / $image_size[0]; 
	$height = intval($image_size[1] * $ratio); 
  } elseif (!$width && !$height && !$over_ride) { 
	$width = $image_size[0]; 
	$height = $image_size[1]; 
  } 

  //Encrypt the image filename if switched on
	if (CFG_ENCRYPT_FILENAMES == "True" && CFG_ENCRYPTION_KEY !="") {
		  $result = '';
		  $key=CFG_ENCRYPTION_KEY;
		  for($i=0; $i<strlen($src); $i++) {
			  $char = substr($src, $i, 1);
			  $keychar = substr($key, ($i % strlen($key))-1, 1);
			  $char = chr(ord($char)+ord($keychar));
			  $result.=$char;
		  }
		  $src=urlencode(base64_encode($result));
	}

   //Return the html
	$image = '<img src="imagemagic.php?img='.$src.'&w='.
	tep_output_string($width).'&h='.tep_output_string($height).'&page='.$page.'"';

} elseif (IMAGE_REQUIRED == 'false') { 
  return ''; 
} 
 }  

//If the size asked for is greater than the image itself, we check the configs to see if this is allowed and if not over-ride
 if ($width > $image_size[0] || $height > $image_size[1]) {
	if (CFG_ALLOW_LARGER  != 'True'){
		  $width=$image_size[0];
		  $height=$image_size[1];
		  $over_ride = true;
	}
 }
 // Add remaining image parameters if they exist
 if ($width) { 
$image .= ' width="' . tep_output_string($width) . '"'; 
 } 

 if ($height) { 
$image .= ' height="' . tep_output_string($height) . '"'; 
 }	 

 if (tep_not_null($params)) $image .= ' ' . $params;

 $image .= ' border="0" alt="' . tep_output_string($alt) . '"';

 if (tep_not_null($alt)) {
$image .= ' title="' . tep_output_string($alt) . '"';
 }

 if ($fix_png && CFG_MASTER_SWITCH=="On") {
	$image .= ' onload="fixPNG(this)"'; 
 }

 $image .= '>';   
 return $image; 
}
//EOF Image Magic



////
// The HTML form submit button wrapper function
// Outputs a button in the selected language
 function tep_image_submit($image, $alt = '', $parameters = '') {
global $language;

$image_submit = '<input type="image" src="' . tep_output_string(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image) . '" border="0" alt="' . tep_output_string($alt) . '"';

if (tep_not_null($alt)) $image_submit .= ' title=" ' . tep_output_string($alt) . ' "';

if (tep_not_null($parameters)) $image_submit .= ' ' . $parameters;

$image_submit .= '>';

return $image_submit;
 }

////
// Output a function button in the selected language
 function tep_image_button($image, $alt = '', $parameters = '') {
global $language;

return tep_image(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image, $alt, '', '', $parameters);
 }

////
// Output a separator either through whitespace, or with an image
 function tep_draw_separator($image = 'pixel_black.gif', $width = '100%', $height = '1') {
return tep_image(DIR_WS_IMAGES . $image, '', $width, $height);
 }

////
// Output a form
 function tep_draw_form($name, $action, $method = 'post', $parameters = '') {
$form = '<form name="' . tep_output_string($name) . '" action="' . tep_output_string($action) . '" method="' . tep_output_string($method) . '"';

if (tep_not_null($parameters)) $form .= ' ' . $parameters;

$form .= '>';

return $form;
 }

////
// Output a form input field
 function tep_draw_input_field($name, $value = '', $parameters = '', $type = 'text', $reinsert_value = true) {
$field = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';

if ( (isset($GLOBALS[$name])) && ($reinsert_value == true) ) {
  $field .= ' value="' . tep_output_string(stripslashes($GLOBALS[$name])) . '"';
} elseif (tep_not_null($value)) {
  $field .= ' value="' . tep_output_string($value) . '"';
}

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

return $field;
 }

////
// Output a form password field
 function tep_draw_password_field($name, $value = '', $parameters = 'maxlength="40"') {
return tep_draw_input_field($name, $value, $parameters, 'password', false);
 }

////
// Output a selection field - alias function for tep_draw_checkbox_field() and tep_draw_radio_field()
 function tep_draw_selection_field($name, $type, $value = '', $checked = false, $parameters = '') {
$selection = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';

if (tep_not_null($value)) $selection .= ' value="' . tep_output_string($value) . '"';

if ( ($checked == true) || ( isset($GLOBALS[$name]) && is_string($GLOBALS[$name]) && ( ($GLOBALS[$name] == 'on') || (isset($value) && (stripslashes($GLOBALS[$name]) == $value)) ) ) ) {
  $selection .= ' CHECKED';
}

if (tep_not_null($parameters)) $selection .= ' ' . $parameters;

$selection .= '>';

return $selection;
 }

////
// Output a form checkbox field
 function tep_draw_checkbox_field($name, $value = '', $checked = false, $parameters = '') {
return tep_draw_selection_field($name, 'checkbox', $value, $checked, $parameters);
 }

////
// Output a form radio field
 function tep_draw_radio_field($name, $value = '', $checked = false, $parameters = '') {
return tep_draw_selection_field($name, 'radio', $value, $checked, $parameters);
 }

////
// Output a form textarea field
 function tep_draw_textarea_field($name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
$field = '<textarea name="' . tep_output_string($name) . '" wrap="' . tep_output_string($wrap) . '" cols="' . tep_output_string($width) . '" rows="' . tep_output_string($height) . '"';

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

if ( (isset($GLOBALS[$name])) && ($reinsert_value == true) ) {
  $field .= tep_output_string_protected(stripslashes($GLOBALS[$name]));
} elseif (tep_not_null($text)) {
  $field .= tep_output_string_protected($text);
}

$field .= '</textarea>';

return $field;
 }

////
// Output a form hidden field
 function tep_draw_hidden_field($name, $value = '', $parameters = '') {
$field = '<input type="hidden" name="' . tep_output_string($name) . '"';

if (tep_not_null($value)) {
  $field .= ' value="' . tep_output_string($value) . '"';
} elseif (isset($GLOBALS[$name])) {
  $field .= ' value="' . tep_output_string(stripslashes($GLOBALS[$name])) . '"';
}

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

return $field;
 }

////
// Hide form elements
 function tep_hide_session_id() {
global $session_started, $SID;

if (($session_started == true) && tep_not_null($SID)) {
  return tep_draw_hidden_field(tep_session_name(), tep_session_id());
}
 }

////
// Output a form pull down menu
 function tep_draw_pull_down_menu($name, $values, $default = '', $parameters = '', $required = false) {
$field = '<select name="' . tep_output_string($name) . '"';

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

if (empty($default) && isset($GLOBALS[$name])) $default = stripslashes($GLOBALS[$name]);

for ($i=0, $n=sizeof($values); $i<$n; $i++) {
  $field .= '<option value="' . tep_output_string($values[$i]['id']) . '"';
  if ($default == $values[$i]['id']) {
	$field .= ' SELECTED';
  }

  $field .= '>' . tep_output_string($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>';
}
$field .= '</select>';

if ($required == true) $field .= TEXT_FIELD_REQUIRED;

return $field;
 }

////
// Creates a pull-down list of countries
 function tep_get_country_list($name, $selected = '', $parameters = '') {
$countries_array = array(array('id' => '', 'text' => PULL_DOWN_DEFAULT));
$countries = tep_get_countries();

for ($i=0, $n=sizeof($countries); $i<$n; $i++) {
  $countries_array[] = array('id' => $countries[$i]['countries_id'], 'text' => $countries[$i]['countries_name']);
}

return tep_draw_pull_down_menu($name, $countries_array, $selected, $parameters);
 }
?>

 

MY URL IS WWW.TGCUE.COM (I'VE TEMPORARILY PUT UP THE ORIGIONAL HTML_OUTPUT.PHP) SO MY STORE WILL STAY ONLINE

 

AND AS A SIDE NOTE, IF IT HELPS, MY DIRECTORY IS DOMAIN/STOREFRONT (NOT THE DEFAULT /CATALOG)

Link to comment
Share on other sites

Sorry I can't read every page regarding this but I need to know how to enable the water mark feature? I've installed the latest version and all is fine. When I go to create the water mark I choose text and make it 100% visable but nothing shows up....is there something I've done wrong?

 

Thanks,

 

Nigel

www.tsurishopjapan.net

Link to comment
Share on other sites

LukasI had the same problem.

I have renamed the thumbnail folder and used a new folder (must be defined in the imagemagic setup as well) and than created all the subfolders in it _before_ i run the site again. After that, imagemagic must not create subfolders and all pictures are visible and watermarking works as well.

It looks like imagemagic cannot create subfolders when SAFE_MODE is ON.

 

Or temp set safe mode is possible for the domain on on.

Then visit every pic/sub folder page with the frontend of oscommerce.

The folders then wil be made by the image magic with the proper user and rights.

 

Then put safe mode on again.

Yes its a workaround not a real solution!

And every time when you create new image subfolders you have to do this manual for the cache and or put safe mode of.

:(

And so on its not a very nice solution but.

 

Or you leave server cache off!

Link to comment
Share on other sites

thx johnny,

yes safe mode is on at my provider, but they cant turn it off,

texmaxx had the same problem and he solved it pretty simple,

but i'm not really understanding what he did :P ....i'm trying to figure it

out for some time now....

Link to comment
Share on other sites

thx johnny,

yes safe mode is on at my provider, but they cant turn it off,

texmaxx had the same problem and he solved it pretty simple,

but i'm not really understanding what he did :P ....i'm trying to figure it

out for some time now....

 

I think,

He made with an ftp prog al the folders and subfolders manual and also atributes for that folders on 777 ( user rights)

Then you have to set with the admin of oscommerce the thumbnail cache directory the right path.

 

 

( if the folders where already made by image magic then the rights can't be set because of apache owner for that folders) ( aks your admin or provider to remove them or to set the proper owner with userrights)

So then do make another folder and subfolders before you set:

The folder in the admin of oscommerce and after that switch the the cache to on .

 

[Also I made mistake in my last post after turning safe mode on agian the user rights are not sufficent for caching.]

Link to comment
Share on other sites

i can change rights on the folders, but what subfolders have to be created in my thumbnails directory?

 

thx

 

 

every folder and subfolder thats in your image main folder itself.

With all of them the rights 777

 

i have just tested this is working so he is right but its more work todo if you have a lot of subfolders within your image root folder ( upload and al sub folders.....)

Link to comment
Share on other sites

now i have a directory named thumbtails which i made manually with

777 and all the subfolders in it. i also set this thumbtails in the admin->configuration->imagemagic. and then turned server caching on. it looks a little better than before but still displays errors....

when trying to display the image :

 

 

Warning: chdir(): SAFE MODE Restriction in effect. The script whose uid is 1472 is not allowed to access /mnt owned by uid 0 in /var/www/web185/html/imagemagic.php on line 21

 

Warning: glob(): SAFE MODE Restriction in effect. The script whose uid is 1472 is not allowed to access 79023.jpg.thumb_100x66_a36e0f7106190a79b32b903f36215629.jpg owned by uid 33 in /var/www/web185/html/imagemagic.php on line 366

 

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web185/html/imagemagic.php:21) in /var/www/web185/html/imagemagic.php on line 483

 

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web185/html/imagemagic.php:21) in /var/www/web185/html/imagemagic.php on line 484

 

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web185/html/imagemagic.php:21) in /var/www/web185/html/imagemagic.php on line 485

 

do you know how to solve that by any chance?

 

thx for your answers

Link to comment
Share on other sites

I'm having a weird issue with server caching. When I load a page full of products, all the thumbnails are broken, but when I refresh the page they all appear. This happens on every page (that has products on it). Once the thumbnails have been generated by me hitting refresh, I dont have to do it again on that page. When server caching is off all products pictures will appear normally. What can I do to fix that?

Edited by yatahaze
Link to comment
Share on other sites

I'm not quite sure how to find a proper update to the php gd library on windows. If I download the latest php4 (4.4.2) and just use the php_gd2.dll file I get server errors and my osc sites wont work. Does anyone have a link to the latest working php_gd2.dll file for windows? Or do I have to upgrade to PHP5 or something?

Link to comment
Share on other sites

Ok I upgraded to the latest version of php5, still isnt working for me. When I open one of the images in the browser I see this:

 

Notice: Undefined variable: page_prefix in C:\pathtosite\imagemagic.php on line 168

 

Warning: Cannot modify header information - headers already sent by (output started at C:\pathtosite\imagemagic.php:168) in C:\pathtosite\imagemagic.php on line 463

 

Warning: Cannot modify header information - headers already sent by (output started at C:\pathtosite\imagemagic.php:168) in C:\pathtosite\imagemagic.php on line 464

 

Warning: Cannot modify header information - headers already sent by (output started at C:\pathtosite\imagemagic.php:168) in C:\pathtosite\imagemagic.php on line 473

 

Warning: Cannot modify header information - headers already sent by (output started at C:\pathtosite\imagemagic.php:168) in C:\pathtosite\imagemagic.php on line 187

 

Followed by a whole bunch of symbols and jibber jabber....

 

That's for a gif image, when I look at a jpg it's the same except theres more jibber jabber at the end.

Link to comment
Share on other sites

More info:

 

Example URL:

pathtosite/imagemagic.php?img=images/ksa/7/eld/ELD-22506.jpg&w=100&h=75&page=

 

If I add &page_prefix= to the end of that url, the image works. Not sure if the image will load on the first try, but I'm going to attempt to put &page_prefix= into the code manually...

Link to comment
Share on other sites

If I add another $page_prefix = $page . "prod_info_"; under this code:

if ($_GET['page'] == "prod_info") {
  $thumbnail_size=4;
  $page_prefix = $page . "prod_info_";
}
if ($_GET['page'] == "popup") {
  $thumbnail_size=5;
  $page_prefix = $page . "prod_info_";
}

 

The images appear after refreshing the page. Still not acceptable, not sure why this is happening... Really could use some help here... Sorry for the multiple posts, the edit time is so short on these forums... very annoying.

Edited by yatahaze
Link to comment
Share on other sites

hi,

i've read all the instructions and also almost all the posts in this thread, but i still didnt found the solutions.

the images ( small and pop up ) didnt show up.

 

this is my link :

http://www.tdr-racing.com/mitra2000/shop/index.php

 

i'm using oscommerce 2.2 MS.2, support GD2

 

i tried at my localhost, and it work...

and i dont know why it doest work at my hosting server.

 

thx for support...

Edited by flashtor
Link to comment
Share on other sites

That is not a problem with your hosting server. You are missing coding to cache and export the images. Go through the process again step by step. Also, in case you didn't realize, your configure.php is writeable.

Link to comment
Share on other sites

Sorry Yatahaze, not sure about your refreshing problem.

 

I'm having trouble with getting either the text or image watermark to work at all. After removing the '&'s in the watermark_text function call, this has stopped the images from appearing broken. However, when I set a watermark, the image just displays as the 'unwatermarked' image.

 

If anybody had any ideas they would be much appreciated.

 

Cheers, Chris.

Link to comment
Share on other sites

Join the conversation

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

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

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