php/mysql Errors on Localhost

Hello I am developing a shopping cart using php and MySql.

In the cart and on Localhost when I make the selection to charge VAT I am get an error on the ordering page.
If I place exactly the same cart on my remote server the errors do not show.

I seem to recall someone saying that php testing should only be carried out on a live remote server.

I wondered if anyone else has come across this problem?

Regards

John
johnhardyAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

ArgentiCommented:
Hello there,

Maybe your code has errors and only your local server has been configured to show them:

php.ini file include this option:
error_reporting = E_ALL

Open in new window


Here and there you have some details about that aspect
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Julian HansenCommented:
And the code is?
And the error is?

You should test on the live environment but if it works in one place and not another then there are a number of things that can be wrong.

We need to see more - especially the offending code and the error it generates.
0
Ray PaseurCommented:
an error on the ordering page
Right, and my car won't start, so what is wrong ;-)

Couple of comments... First you will want to read this article and avoid the MySQL extension.  Choose one of the OOP solutions instead.
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/PHP_Databases/A_11177-PHP-MySQL-Deprecated-as-of-PHP-5-5-0.html

Second, you may find some value in learning about the SSCCE.  It's the surest way to get quick accurate help from EE or any other forum. Part of the SSCCE for this question would have included some detail about the errors.  Fro example you could have told us the text of the error message, if any, and whether or not the output was correct when you hand-checked it.

I completely agree with your idea of testing in an environment that is as close to the live environment as you can get, but I also would caution you to know the configuration options and avoid dependencies.  Things like path separators and end-of-line characters are different on different operating systems.

I completely agree with @Argenti about the use of error_reporting(E_ALL).  Note that this has different meanings on different levels of PHP.  You might need to use error_reporting(-1).  You can look this stuff up on the php.net web site.
http://php.net/manual/en/function.error-reporting.php
0
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

johnhardyAuthor Commented:
Thanks for all the information.
Argenti I referred to the php.ini file and found this:

; The following are all the settings which are different in either the production
; or development versions of the INIs with respect to PHP's default behavior.
; Please see the actual settings later in the document for more details as to why
; we recommend these changes in PHP's behavior.

; allow_call_time_pass_reference
;   Default Value: On
;   Development Value: Off
;   Production Value: Off

; display_errors
;   Default Value: On
;   Development Value: On
;   Production Value: Off

; display_startup_errors
;   Default Value: Off
;   Development Value: On
;   Production Value: Off

; error_reporting
;   Default Value: E_ALL & ~E_NOTICE
;   Development Value: E_ALL | E_STRICT
;   Production Value: E_ALL & ~E_DEPRECATED

; html_errors
;   Default Value: On
;   Development Value: On
;   Production value: Off

; log_errors
;   Default Value: Off
;   Development Value: On
;   Production Value: On
I wondered if this showed anything?
0
Ray PaseurCommented:
Set log_errors ON, display_errors ON, error_reporting(E_ALL) and you should be good to go.

This: Default Value: E_ALL & ~E_NOTICE is the greatest disservice PHP has done to its community.  NEVER run with Notice messages suppressed.
0
ArgentiCommented:
Is this the php.ini on localhost or on the production server?

Everything is commented, so normally the default values apply.
In this case error_reporting = E_ALL & ~E_NOTICE (should show all errors and warnings, except for the run-time notices)

I would however turn that explicitly on.
0
johnhardyAuthor Commented:
This is the php.ini file on my local machine (where the errors appear)
0
ArgentiCommented:
Great. Now if you could be so kind to post the actual error messages you get, we might be able to see what's going on.
0
Dave BaldwinFixer of ProblemsCommented:
I turn on error reporting on the live servers because customers will call almost immediately if some error message pops up.  It is the fastest way to find out about a problem.  Note that turning off the reporting does not prevent the error, it just Hides it from you!!!
0
Ray PaseurCommented:
John: The part of the php.ini you posted is "commented out."  The actual effective settings are further down the page.  Search for display_errors and error_reporting and you will find the true settings.
0
johnhardyAuthor Commented:
Thanks Ray
I did a search for
display_errors and error_reporting however nothing is found.
0
johnhardyAuthor Commented:
Here is a picture of the errors
errors
and the source is below.
I hope I have this as required.
Thanks

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/main.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>EMC Cable Glands and Terminal Blocks|the Terminal Blocks and Glands are genuine Ortact Products</title>
<meta name="description" content="Electrical Terminals and EMC Cable Glands are genuine Ortac products and flexible conduit and electrical components are distributed in the UK by Lepage Marketing.">

<meta name="keywords" content="emc cable glands,Cable Glands,emc ORTAC cable glands,ORTAC,Locknuts,plastic and brass,EMC,Terminal Blocks,flexible conduit,watertight,lepage marketing,approved to IP68 by VDE ">
<!-- InstanceEndEditable -->
<script type="text/javascript" src="p7pm/p7popmenu.js"></script>
<style type="text/css" media="screen">
<!--
@import url("p7pm/p7pmh8.css");
-->
</style>
<link href="styles.css" rel="stylesheet" type="text/css" />
<!-- InstanceBeginEditable name="head" -->
		
		
        <meta name="Description" content="Moulded Metric Blind Stops" />
				<link href="cw4/css/cw-core.css" rel="stylesheet" type="text/css" />
	<!-- InstanceEndEditable -->
<script type="text/javascript" src="cw4/js/jquery-1.7.1.min.js"></script>
<script src="cw4/js/jquery.metadata.js" type="text/javascript"></script>
<script src="cw4/js/jquery.validate.js" type="text/javascript"></script>
<script src="cw4/js/jquery.calculation.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
	// VALIDATION
	// validate forms that have class="CWvalidate"
	jQuery('form.CWvalidate').each(function() {
	var alertID = jQuery(this).attr('id');
	jQuery(this).append('<div class="CWalertBox alertText validationAlert" style="display:none;"></div><div class="CWclear"></div>');
	});

	// handle select box changes
	jQuery('form.CWvalidate select').change(function() {
		jQuery(this).blur();
	});
	// set default options for validation
	jQuery.validator.setDefaults({
		focusInvalid:true,
		onkeyup:false,
		onblur:true,
		errorClass:"warning",
		errorElement:"span",
		errorPlacement: function(error, element) {
			// give the sibling label the warning class
			// insert error markup above the label
			jQuery(element).siblings('label').addClass('warning')
			// uncomment next line to show error messages above each field
			//.before(error)
			;
		   },
		 showErrors: function(errorMap, errorList) {
		 	// target the current form with this.currentForm
		 	//jQuery(this.currentForm).hide();

		 	if (this.numberOfInvalids() > 0) {

		 		// dynamic message depending on form ID
		 		var formID = jQuery(this.currentForm).attr('id');
				if (formID == 'CWformCustomer') {
					var validationMessage = 'Complete all required information';
				} else if (formID == 'CWformLogin') {
					var validationMessage = '';
				} else if (formID == 'CWformOrderSubmit') {
					var validationMessage = 'Complete all required information';
				} else if (formID == 'CWformAddToCartWindow') {
					var validationMessage = 'Select at least one item';
				} else {
					var validationMessage = 'Complete your selection above';
				};

				// only show validation message if text is provided
						if (!(validationMessage == '')) {
						jQuery(this.currentForm).children('.validationAlert:first').show().html(validationMessage);
						};
					// show the errors
						this.defaultShowErrors();
					// if everything is ok, reset the validation
					} else {
						//alert('Selection OK!');
						jQuery(this.currentForm).children('div.validationAlert').empty().hide();
						jQuery(this.currentForm).children('span.warning').remove();
						jQuery(this.currentForm).children('.warning').removeClass('warning');
					}
			}
		// end showErrors
		});

	jQuery('form.CWvalidate').each(function() {
		jQuery(this).validate();
	});
	// end form validation
});
</script>
<script src="cw4/js/fancybox/jquery.fancybox.pack.js" type="text/javascript"></script>
<link href="cw4/js/fancybox/jquery.fancybox.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
jQuery(document).ready(function() {

	// total quantities (for table product option type)
	jQuery('form#CWformAddToCart input.qty').keyup(function() {
		var sumVal = jQuery('form#CWformAddToCart input.qty').sum();
		jQuery('form#CWformAddToCart input#totalQty').val(sumVal);
	});

	// warning boxes fade out
	jQuery('.fadeOut').delay(2750).fadeOut(500);

	// cart confirmation coloring
	window.setTimeout(function() {jQuery('tr.cartConfirm').removeClass('cartConfirm');}, 2750);
	window.setTimeout(function() {jQuery('tr.stockAlert').removeClass('stockAlert');}, 2750);

	// CHECKALL CHECKBOXES
	// controls all checkboxes with class matching 'rel' attribute
	jQuery('input.checkAll, a.checkAllLink').click(function() {
		var checkClass = jQuery(this).attr('rel');
		//assemble the group name
		var groupEl = 'input[class*=' + checkClass + ']';
		//alert(groupEl);
		var isChecked = false;
		if (jQuery(this).prop('checked')==true) {
		isChecked = true;
		};
		//alert(isChecked);
		jQuery(groupEl).each(function() {
			if (jQuery(this).attr('disabled')!=true) {
			jQuery(this).prop('checked',isChecked);
			// handle radioGroup siblings
				if((jQuery(this).hasClass('radioGroup')==true) && (isChecked==true) ) {
			$radioBoxes(jQuery(this).attr('rel'),isChecked);
			jQuery(this).prop('checked',isChecked);
				}
			};
		});
	});

	 // PRODUCT OPTIONS WINDOW (via add to cart function)
		var $optionLinkHandler = function(elem) {
			// get url, remove quantity
			var origLink = jQuery(elem).siblings('a.selOptions:hidden');
			var origHref = jQuery(origLink).attr('href');
			var cleanHref = origHref.replace(/&intqty([\S])+/g,"");
			// qty box value
			var origQty = jQuery(elem).siblings('input.qty').val()
			var newHref = cleanHref + '&intqty=' + origQty;
			// add new url to link, trigger click
			jQuery(elem).next('a.selOptions:hidden').attr('href',newHref).trigger('click');
		};
		// clicking button triggers hidden fancybox link
		jQuery('input.CWaddButton').click(function() {
			$optionLinkHandler(this);
			//return false;
		});
		// submitting form (enter key in qty box) triggers hidden fancybox link
		jQuery('form.CWqtyForm').submit(function() {
			var fbButton = jQuery(this).find('input.CWaddButton');
			$optionLinkHandler(fbButton);
			jQuery('input.CWaddButton').unbind('click');
			return false;
		});
		// fancybox - see http://fancybox.net/api for available options
		jQuery('a.selOptions').each(function() {
			var windowHeight = jQuery(this).attr('rel');
			jQuery(this).fancybox({
			'titlePosition': 'inside',
			'margin': 4,
			'padding': 3,
			'overlayShow': true,
			'showCloseButton': true,
			'hideOnOverlayClick':true,
			'hideOnContentClick': false,
			'width':350,
			'height':parseInt(windowHeight),
			'autoDimensions':false,
			'showNavArrows':false
			});
		});
});
</script>
<script type="text/javascript">

//misc validation functions --------- //

// CHECK VALUE - return default value to empty input
// give your input any default value, and call with onblur="checkValue(this)"
function checkValue(inputName) {
if (inputName.value == '') {
inputName.value = inputName.defaultValue;
};
}


// EXTRACT NUMERIC - allow numeric input only
// invoke like this:  onkeyup="extractNumeric(this,2,true)"
// thanks to http://www.mredkj.com/tutorials/validate2.html
function extractNumeric(obj,decimalPlaces,allowNegative) {
var out = obj.value;
// set defaults
if(decimalPlaces == null){
var decimalPlaces = 0;
};
if(allowNegative == null){
var allowNegative = true;
};
	// check for correct formatting
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(out)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '\\.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	out = out.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = out.length > 0 && out.charAt(0) == '-';
		var reg2 = /-/g;
		out = out.replace(reg2, '');
		if (hasNegative) out = '-' + out;
	}

	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(out);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = out.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			out = out.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	obj.value = out;
    obj.focus();
};
//end misc validation functions--- //
</script>

<script type="text/javascript">
	jQuery(document).ready(function(){
	// set filename on any image element
	var $setSrc = function(triggerEl,targetEl){
			var triggerSrc = jQuery(triggerEl).attr('src');
			var triggerIndex = triggerSrc.lastIndexOf('/') + 1;
			var newFn = triggerSrc.substr(triggerIndex);
			var targetSrc = jQuery(targetEl).attr('src');
			var targetIndex = targetSrc.lastIndexOf('/') + 1;
			var oldFn = targetSrc.substr(targetIndex);
			var targetDir = targetSrc.replace(oldFn,'');
			var newSrc = targetDir + newFn;
			targetEl.attr('src',newSrc);
		}; 
	// set href on any link 
	var $setHref = function(triggerEl,targetEl){
			var triggerHref = jQuery(triggerEl).attr('href');
			var triggerIndex = triggerHref.lastIndexOf('/') + 1;
			var newFn = triggerHref.substr(triggerIndex);
			var targetHref = jQuery(targetEl).attr('href');
			var targetIndex = targetHref.lastIndexOf('/') + 1;
			var oldFn = targetHref.substr(targetIndex);
			var targetDir = targetHref.replace(oldFn,'');
			var newHref = targetDir + newFn;
			targetEl.attr('href',newHref);
		}; 
	
		jQuery('img.CWthumb').hover(function(){
			$setSrc(jQuery(this),jQuery('#CWproductImgMain'));
	
			$setHref(jQuery(this).parent('a'),jQuery('#CWproduct25imgLink'));
			$setHref(jQuery(this).parent('a'),jQuery('#CWproduct25zoomLink'));
	
			});
		jQuery('a.CWimageZoomLink').each(function(){
			jQuery(this).fancybox({
			'titlePosition': 'over',
			'padding': 0,
			'margin': 0,
			'overlayShow': true,
			'showCloseButton': true,
			'hideOnOverlayClick':true,
			'hideOnContentClick': true,
			'autoDimensions': true,
			'centerOnScroll': true,
			'showNavArrows':true,
			'cyclic':true
			});
		});
		jQuery('a.CWtriggerZoomLink').click(function(){
			var zoomHref = jQuery(this).attr('href');
			jQuery('a.CWimageZoomLink[href="' + zoomHref + '"]').trigger('click'); 
			return false;
			});
		// fancybox - see http://fancybox.net/api for available options
	});
</script>

        <script type="text/javascript">
        jQuery(document).ready(function() {
            jQuery('form#CWformAddToCart input.qty').keyup(function() {
                var sumVal = jQuery('form#CWformAddToCart input.qty').sum();
                //alert(sumVal);
                jQuery('form#CWformAddToCart input#totalQty').val(sumVal);
            });
        });
        </script>
<!-- javascript for selection boxes -->
	<script type="text/javascript">
	jQuery(document).ready(function(){
		// currency format function
		// currency format function
		var $cwCurrencyFormat = function(start_value,currency_symbol,space_separator,cs_precedes,thousands_sep,decimal_point) {
			// default formatting elements
			var currency_symbol = currency_symbol || '¿';
			var space_separator = space_separator || '';
			var cs_precedes = cs_precedes || 1;
			var thousands_sep = thousands_sep || ',';
			var decimal_point = decimal_point || '.';
			var ret_str = '';
			var num_arr = start_value.split('.');
			var reg_ex = /\d+(\d{3})/;
			var reg_match = num_arr[0].match(reg_ex);
			while (reg_match) {
				ret_str = thousands_sep + reg_match[1] + ret_str;
				num_arr[0] = num_arr[0].substring(0, (num_arr[0].length - reg_match[1].length));
				reg_match = num_arr[0].match(reg_ex);
		   }
		   ret_str = num_arr[0] + ret_str;
		   if (num_arr.length > 1) ret_str += decimal_point + num_arr[1];
		   if (cs_precedes) {
				ret_str = currency_symbol + space_separator + ret_str;
				} else {
				ret_str += space_separator + currency_symbol;
			}
			return ret_str;
		}
	
	// function runs on page load, or can be invoked: $jLoad()
	var $jLoad = function(){
		// variables for target price elements - can be changed as needed
		var price_parent = '#CWproductPrices';
		var form_parent = '#CWformAddToCart';
		// debug
		// alert(price_parent + ' : ' + form_parent);

		// duplicate price area inside window (for window option form)
		var origPriceID = 'CWproductPrices-25';
		var windowPriceID = 'CWproductPrices-25w';
		jQuery('div#' + origPriceID).clone().insertBefore('#CWformAddToCartWindow').attr('id',windowPriceID).addClass('CWwindowPrice');

		// build string for selectors below
		var target_orig_low = price_parent + ' ' + '.CWproductPriceLow';
		var target_orig_high = price_parent + ' ' + '.CWproductPriceHigh';
		var target_tax_low = price_parent + ' ' + '.CWproductTaxPriceLow';
		var target_tax_high = price_parent + ' ' + '.CWproductTaxPriceHigh';
		var target_disc_low = price_parent + ' ' + '.CWproductPriceDiscLow';
		var target_disc_high = price_parent + ' ' + '.CWproductPriceDiscHigh';
		var target_alt_low = price_parent + ' ' + '.CWproductPriceAltLow';
		var target_alt_high = price_parent + ' ' + '.CWproductPriceAltHigh';

		// get original values
		var default_orig_low = jQuery(target_orig_low).text();
		var default_orig_high = jQuery(target_orig_high).text();
		var default_tax_low = jQuery(target_tax_low).text();
		var default_tax_high = jQuery(target_tax_high).text();
		var default_disc_low = jQuery(target_disc_low).text();
		var default_disc_high = jQuery(target_disc_high).text();
		var default_alt_low = jQuery(target_alt_low).text();
		var default_alt_high = jQuery(target_alt_high).text();

		// clear placeholder value on load
		jQuery('#availSkus').val();

		// create hidden copies of select elements
		jQuery(form_parent + ' ' +  'select.CWoption').each(function(){
			var res = jQuery(this).parents('div').next('div.CWoptionRes');
			// add temp id with separator -
			var tempID = jQuery(this).attr('id') + '-temp';
			var tempName = jQuery(this).attr('name') + '-temp';
			jQuery(this).clone().removeClass().addClass('CWoptionTemp').attr('id',tempID).attr('name',tempName).appendTo(res);
			// make sure res is hidden
			jQuery(res).hide();
		});

		// restore removed selection list
		var $restoreSelect = function(selectList){
			// target the -temp copy of the select list
			var origId = jQuery(selectList).attr('id');
			var formID = jQuery(selectList).parents('form').attr('id');
			//alert(form_parent + ' ' + origId);
			var reserveList = jQuery(form_parent + ' ' + 'select#' + origId + '-temp');
			// show the hidden list, remove all options
			jQuery(selectList).show().children('option').remove();
			// hide the text value
			jQuery(selectList).siblings('span.CWselectedText').hide();
			// copy original options back to parent
			jQuery(reserveList).children('option').each(function(){
				jQuery(this).clone().appendTo(selectList);
			});
			// set the default non-selected option
			jQuery(selectList).children('option.sku0').prop('selected','selected');
		};

		// restore removed option to original parent
		var $restoreOption = function(optionClass){
				// get all options in reserve copy elements
				jQuery(form_parent + ' ' + 'select.CWoptionTemp').children('option.' + optionClass).each(function(){
				// get the id of the original element
				var origId = jQuery(this).parents('select').attr('id').split('-');
				var origSelect = jQuery(form_parent + ' ' + 'select#' + origId[0]);
				// get the value of the currently restored option
				var restoreVal = jQuery(this).val();
				jQuery(origSelect).children('option[value=' + restoreVal + ']').remove();
				jQuery(this).clone().appendTo(origSelect).prop('selected','');
				// show parent with restored options
				jQuery(origSelect).show().siblings('span.CWselectedText').remove();
			});
		};

		// master function to set options
		var $setOptions = function(selectList){

			// create array from skus query above
			// sku_id, orig_price, alt_price, discount_price
			var sku_arr = new Array();
			var id_arr = new Array();

						sku_arr[0] = new Array();
						sku_arr[0]["sku_id"] = '311';
						sku_arr[0]["orig_price"] = '2';
						sku_arr[0]["alt_price"] = '0';

					sku_arr[0]["discount_price"] = '2';

					sku_arr[0]["tax_price"] = '2.4';

					id_arr[0] = '311';

						sku_arr[1] = new Array();
						sku_arr[1]["sku_id"] = '327';
						sku_arr[1]["orig_price"] = '2';
						sku_arr[1]["alt_price"] = '0';

					sku_arr[1]["discount_price"] = '2';

					sku_arr[1]["tax_price"] = '2.4';

					id_arr[1] = '327';

						sku_arr[2] = new Array();
						sku_arr[2]["sku_id"] = '326';
						sku_arr[2]["orig_price"] = '2';
						sku_arr[2]["alt_price"] = '0';

					sku_arr[2]["discount_price"] = '2';

					sku_arr[2]["tax_price"] = '2.4';

					id_arr[2] = '326';

						sku_arr[3] = new Array();
						sku_arr[3]["sku_id"] = '325';
						sku_arr[3]["orig_price"] = '2';
						sku_arr[3]["alt_price"] = '0';

					sku_arr[3]["discount_price"] = '2';

					sku_arr[3]["tax_price"] = '2.4';

					id_arr[3] = '325';

						sku_arr[4] = new Array();
						sku_arr[4]["sku_id"] = '324';
						sku_arr[4]["orig_price"] = '2';
						sku_arr[4]["alt_price"] = '0';

					sku_arr[4]["discount_price"] = '2';

					sku_arr[4]["tax_price"] = '2.4';

					id_arr[4] = '324';

						sku_arr[5] = new Array();
						sku_arr[5]["sku_id"] = '323';
						sku_arr[5]["orig_price"] = '2';
						sku_arr[5]["alt_price"] = '0';

					sku_arr[5]["discount_price"] = '2';

					sku_arr[5]["tax_price"] = '2.4';

					id_arr[5] = '323';

						sku_arr[6] = new Array();
						sku_arr[6]["sku_id"] = '322';
						sku_arr[6]["orig_price"] = '2';
						sku_arr[6]["alt_price"] = '0';

					sku_arr[6]["discount_price"] = '2';

					sku_arr[6]["tax_price"] = '2.4';

					id_arr[6] = '322';

						sku_arr[7] = new Array();
						sku_arr[7]["sku_id"] = '321';
						sku_arr[7]["orig_price"] = '2';
						sku_arr[7]["alt_price"] = '0';

					sku_arr[7]["discount_price"] = '2';

					sku_arr[7]["tax_price"] = '2.4';

					id_arr[7] = '321';

						sku_arr[8] = new Array();
						sku_arr[8]["sku_id"] = '320';
						sku_arr[8]["orig_price"] = '2';
						sku_arr[8]["alt_price"] = '0';

					sku_arr[8]["discount_price"] = '2';

					sku_arr[8]["tax_price"] = '2.4';

					id_arr[8] = '320';

						sku_arr[9] = new Array();
						sku_arr[9]["sku_id"] = '319';
						sku_arr[9]["orig_price"] = '2';
						sku_arr[9]["alt_price"] = '0';

					sku_arr[9]["discount_price"] = '2';

					sku_arr[9]["tax_price"] = '2.4';

					id_arr[9] = '319';

						sku_arr[10] = new Array();
						sku_arr[10]["sku_id"] = '318';
						sku_arr[10]["orig_price"] = '2';
						sku_arr[10]["alt_price"] = '0';

					sku_arr[10]["discount_price"] = '2';

					sku_arr[10]["tax_price"] = '2.4';

					id_arr[10] = '318';

						sku_arr[11] = new Array();
						sku_arr[11]["sku_id"] = '317';
						sku_arr[11]["orig_price"] = '2';
						sku_arr[11]["alt_price"] = '0';

					sku_arr[11]["discount_price"] = '2';

					sku_arr[11]["tax_price"] = '2.4';

					id_arr[11] = '317';

						sku_arr[12] = new Array();
						sku_arr[12]["sku_id"] = '316';
						sku_arr[12]["orig_price"] = '2';
						sku_arr[12]["alt_price"] = '0';

					sku_arr[12]["discount_price"] = '2';

					sku_arr[12]["tax_price"] = '2.4';

					id_arr[12] = '316';

						sku_arr[13] = new Array();
						sku_arr[13]["sku_id"] = '315';
						sku_arr[13]["orig_price"] = '2';
						sku_arr[13]["alt_price"] = '0';

					sku_arr[13]["discount_price"] = '2';

					sku_arr[13]["tax_price"] = '2.4';

					id_arr[13] = '315';

						sku_arr[14] = new Array();
						sku_arr[14]["sku_id"] = '314';
						sku_arr[14]["orig_price"] = '2';
						sku_arr[14]["alt_price"] = '0';

					sku_arr[14]["discount_price"] = '2';

					sku_arr[14]["tax_price"] = '2.4';

					id_arr[14] = '314';

						sku_arr[15] = new Array();
						sku_arr[15]["sku_id"] = '313';
						sku_arr[15]["orig_price"] = '2';
						sku_arr[15]["alt_price"] = '0';

					sku_arr[15]["discount_price"] = '2';

					sku_arr[15]["tax_price"] = '2.4';

					id_arr[15] = '313';

						sku_arr[16] = new Array();
						sku_arr[16]["sku_id"] = '312';
						sku_arr[16]["orig_price"] = '2';
						sku_arr[16]["alt_price"] = '0';

					sku_arr[16]["discount_price"] = '2';

					sku_arr[16]["tax_price"] = '2.4';

					id_arr[16] = '312';

						sku_arr[17] = new Array();
						sku_arr[17]["sku_id"] = '328';
						sku_arr[17]["orig_price"] = '2';
						sku_arr[17]["alt_price"] = '0';

					sku_arr[17]["discount_price"] = '2';

					sku_arr[17]["tax_price"] = '2.4';

					id_arr[17] = '328';

			// get the class(es) of the selected option that was changed
			var selOpt = jQuery(selectList).find('option:selected');
			var selClass = jQuery(selOpt).attr('class');
			// create array for list of classes
			var selected_arr = selClass.split(" ");
			// get the classes of all selected sibling options
			var global_arr = [];
			if(selected_arr.length &&  selected_arr[0] != 'sku0'){ 
				global_arr[global_arr.length] = selected_arr;
				}
			// placeholder array
			var keep_arr = new Array();
			var show_arr = new Array();
			// loop all option lists other than currently selected
			jQuery(form_parent + ' ' + 'select.CWoption').not(selectList).each(function(){
				// get array of classes for this element
				var selSiblingClass = jQuery(this).find('option:selected').attr('class');
				var sibling_arr = selSiblingClass.split(" ");
				// if a non-blank option is selected, compare arrays
				if (sibling_arr.length > 0 && sibling_arr[0] != 'sku0'){
					// add to globals
					global_arr[global_arr.length] = sibling_arr;
					// loop the sibling array
						for(var i = 0;i < sibling_arr.length;i++){
						var matchClass = sibling_arr[i];
							//if in selected array, but not found in new array
							if (jQuery.inArray(matchClass,selected_arr) > -1 && jQuery.inArray(matchClass,keep_arr) == -1){
							// add to placeholder array
							keep_arr = keep_arr.concat(matchClass);
							}
						};
				}
			});
			var ok_arr = [];								
			if (global_arr.length > 0){
				ok_arr = global_arr[0];
				if(global_arr.length > 1){
					ok_arr = CWarrayCompare.apply(window, global_arr);
				}
			}
			// end loop all option lists
			// loop the new array
			for(var i = 0;i < keep_arr.length;i++){
				var keepClass = keep_arr[i];
				//if found in selected array
				if (jQuery.inArray(keepClass,selected_arr) != -1 && jQuery.inArray(keepClass,ok_arr) != -1){					
					//if not in show array
					if (jQuery.inArray(keepClass,show_arr) == -1){
						// copy to show array
						show_arr = show_arr.concat(keepClass);
					}
				}
			};
			if (show_arr == '' && selected_arr != 'sku0'){
				show_arr = selected_arr;
			}
		// placeholder value in storage field
		if(show_arr != 'sku0'){
			jQuery('#availSkus').val(show_arr);
		} else {
			jQuery('#availSkus').val();
		};

		//----------- SELECTION FUNCTIONS ----------//
		//--- change display based on selections ---//
		//------------------------------------------//

			// if not resetting
				if(show_arr != ''){
					//alert('not reset');
					// remove keeper attribute from all options to clear selection
					jQuery(form_parent + ' ' + 'select.CWoption option').removeAttr('rel','');
					// set up pricing variables
					var orig_price_arr = new Array();
					var alt_price_arr = new Array();
					var disc_price_arr = new Array();

					var tax_price_arr = new Array();

					// loop classes in array
					for(var i = 0;i < show_arr.length;i++){
						var matchClass = show_arr[i];
						
						// get index of match to original sku_arr
						var skuID = matchClass.replace('sku','');
						var matchPos = jQuery.inArray(skuID,id_arr);
						// if matched
						if((matchClass != '')&&(matchPos != -1)){
							//add keeper attribute
						 	jQuery("'select.CWoption option." + matchClass + "'").attr('rel','keeper');
							// get skuID from the class name
							// set up price arrays

							// if the current value is not in the array, add it
							if (jQuery.inArray(sku_arr[matchPos]["orig_price"],orig_price_arr) == -1){
								orig_price_arr[orig_price_arr.length] = sku_arr[matchPos]["orig_price"];
							}
							if (jQuery.inArray(sku_arr[matchPos]["alt_price"],alt_price_arr) == -1){
								alt_price_arr[alt_price_arr.length] = sku_arr[matchPos]["alt_price"];
							}
							if (jQuery.inArray(sku_arr[matchPos]["discount_price"],disc_price_arr) == -1){
								disc_price_arr[disc_price_arr.length] = sku_arr[matchPos]["discount_price"];
							}

							if (jQuery.inArray(sku_arr[matchPos]["tax_price"],tax_price_arr) == -1){
								tax_price_arr[tax_price_arr.length] = sku_arr[matchPos]["tax_price"];
							}

						}
					}

						// sort the arrays
						orig_price_arr.sort(function(a,b){return a - b});
						alt_price_arr.sort(function(a,b){return a - b});
						disc_price_arr.sort(function(a,b){return a - b});

						tax_price_arr.sort(function(a,b){return a - b});

						// original price
						var origLen = orig_price_arr.length - 1;
						var val_orig_low = parseFloat(orig_price_arr[0]).toFixed(2);
						var val_orig_high = parseFloat(orig_price_arr[origLen]).toFixed(2);
						// set low price
						jQuery(target_orig_low).text($cwCurrencyFormat(val_orig_low));
						// hide or set high price
						if (origLen > 0){
						jQuery(target_orig_high).show().text($cwCurrencyFormat(val_orig_high)).siblings('.priceDelim').show();
						} else {
						jQuery(target_orig_high).hide().siblings('.priceDelim').hide();
						};

						// discount price
						var discLen = disc_price_arr.length - 1;
						var val_disc_low = parseFloat(disc_price_arr[0]).toFixed(2);
						var val_disc_high = parseFloat(disc_price_arr[discLen]).toFixed(2);
						// set low price
						jQuery(target_disc_low).text($cwCurrencyFormat(val_disc_low));
						// hide or set high price
						if (discLen > 0){
						jQuery(target_disc_high).text($cwCurrencyFormat(val_disc_high));
						} else {
						jQuery(target_disc_high).hide().siblings('.priceDelim').hide();
						};

						// tax price range

						var taxLen = tax_price_arr.length - 1;
						var val_tax_low = parseFloat(tax_price_arr[0]).toFixed(2);
						var val_tax_high = parseFloat(tax_price_arr[taxLen]).toFixed(2);
						// set low price
						jQuery(target_tax_low).text($cwCurrencyFormat(val_tax_low));
						// hide or set high price
						if (taxLen > 0){
						jQuery(target_tax_high).text($cwCurrencyFormat(val_tax_high));
						} else {
						jQuery(target_tax_high).hide().siblings('.priceDelim').hide();
						};

						// alt price
						var altLen = alt_price_arr.length - 1;
						var val_alt_low = parseFloat(alt_price_arr[0]).toFixed(2);
						var val_alt_high = parseFloat(alt_price_arr[altLen]).toFixed(2);
						// set low price
						jQuery(target_alt_low).text($cwCurrencyFormat(val_alt_low));
						// hide or set high price
						if (altLen > 0){
						jQuery(target_alt_high).text($cwCurrencyFormat(val_alt_high));
						} else {
						jQuery(target_alt_high).hide().siblings('.priceDelim').hide();
						};

					// end loop classes

					// keep the 'select' option
					jQuery(form_parent + ' ' + 'select.CWoption option.sku0').attr('rel','keeper');

					// remove all non-keeper prices
					jQuery(form_parent + ' ' + 'select.CWoption option[rel!=keeper]').remove();
				// if resetting
				} else {
					// restore original prices
					jQuery(price_parent).find('span').show();
					jQuery(target_orig_low).text(default_orig_low);
					jQuery(target_orig_high).text(default_orig_high);
					jQuery(target_tax_low).text(default_tax_low);
					jQuery(target_tax_high).text(default_tax_high);
					jQuery(target_disc_low).text(default_disc_low);
					jQuery(target_disc_high).text(default_disc_high);
					jQuery(target_alt_low).text(default_alt_low);
					jQuery(target_alt_high).text(default_alt_high);
				};
				// end if resetting

			// if only one option remains in a list, show the option
			jQuery(form_parent + ' ' + 'select.CWoption:visible').each(function(){
					// debug - alerts show values being set
					//alert('select id: ' + jQuery(this).attr('id'));
					var numOpts = jQuery(this).children('option').not('.sku0').length;
					//alert('active options: ' + numOpts);
					// if one option
					if (numOpts == 1){
					// set option to selected
					var keepOpt = jQuery(this).children('option').not('.sku0');
					var keepVal = jQuery(keepOpt).val();
					jQuery(keepOpt).prop('selected','selected');
					// set up the value to show
					var valueText = jQuery(keepOpt).text();

					// show reset link if more than one option originally
					var origOpts = jQuery('select#' + jQuery(this).attr('id') + '-temp').children('option[class!=sku0]').length;
					if (origOpts == 1){
					var resetLink = '';
					} else {
					var resetLink = '<a href="#" class="CWselectReset">[x]</a>';
					};
					var valueShow = '<span class="CWselectedText">' + valueText + resetLink + '</span>';
					var selLabel = jQuery(this).prev('label');
					jQuery(selLabel).removeClass('warning');
					// add the value before the select list
					jQuery(valueShow).insertBefore(jQuery(this));
					// hide the select list - focus and blur triggers validation reset
					jQuery(this).trigger('focus').trigger('blur').removeClass('required').hide();
					};
			});
			// remove duplicates (ie)
			jQuery(form_parent + ' ' + '.CWselectedText + .CWselectedText').remove();
			// end if only one option
		// end handle selection

		// reset option when clicking
		jQuery(form_parent + ' ' + 'a.CWselectReset').click(function(){
			var parentSelect = jQuery(this).parents('span').siblings('select.CWoption');
			//alert(jQuery(parentSelect).attr('id'));
			jQuery(parentSelect).show();
			$restoreSelect(parentSelect);
			// create array for selected classes
			var restoreOption = jQuery(parentSelect).children('option').not('.sku0');
			jQuery(restoreOption).each(function(){
				var restoreClass = jQuery(this).attr('class');
				var restore_arr = restoreClass.split(" ");
					// loop classes in array
					for(var i = 0;i < restore_arr.length;i++){
						var matchClass = restore_arr[i];
						//alert(matchClass);
						// if matched, restore options
						if(matchClass != '' && matchClass !='sku0'){
								$restoreOption(matchClass);
						}
					}
					// end loop classes
			});
			// sort option lists back into sort order
			jQuery(form_parent + ' ' + 'select.CWoption').each(function(){
			// reorder by data-sort
				var newOptions = jQuery(this).find('option');
				newOptions.sort(function(a,b) {
					if (parseFloat(jQuery(a).attr('data-sort')) > parseFloat(jQuery(b).attr('data-sort'))) return 1;
					else if (parseFloat(jQuery(a).attr('data-sort')) < parseFloat(jQuery(b).attr('data-sort'))) return -1;
					else return 0
				});
				// replace unsorted options with sorted	
				jQuery(this).empty().append(newOptions);
				jQuery(this).find('option.sku0').attr('selected','selected').show().siblings('option').show();
			});			
			// run the set options function based on the first select box w/ more than one visible option
			jQuery(form_parent + ' ' + 'select.CWoption:visible').not('.required').addClass('required');
			$setOptions(jQuery(form_parent + ' ' + 'select.CWoption:visible:first'));
			return false;
		});

		// end $setOptions function
		};


	// run on change
	jQuery(form_parent + ' ' + 'select.CWoption').change(function(){
		$setOptions(jQuery(this));
	});

	// end jLoad
	};
	// invoke on page load
	$jLoad();

	});
	// return elements found in all arrays 
    function CWarrayCompare() {
        var output = [];
        var countObject = {};
        var array, item, itemct;
		// loop arguments (arrays passed in to function)
        for (var i = 0; i < arguments.length; i++) {
            array = arguments[i];
            unique = {};
            for (var j = 0; j < array.length; j++) {
                item = array[j];
                itemct = countObject[item] || 0;
                if (itemct == i) {
                    countObject[item] = itemct + 1;
                }
            }
        }
        // now collect all results that are in all arrays
        for (item in countObject) {
            if (countObject[item] === arguments.length) {
                output.push(item);
            }
        }
        return(output);
    }    
	</script>
	<!-- end selection boxes script -->
</head>

<body onload="P7_initPM(1,8,1,-20,10)">
<table width="950" border="1" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><table width="950" border="0" cellspacing="0" cellpadding="0">
      <tr align="center">
        <td colspan="3"><img src="images_site/LepageLogo.gif" width="660" height="94" alt="Lepage Marketing Logo" /></td>
      </tr>
      <tr align="center">
        <td colspan="3"><h1>LEPAGE MARKETING <br />
          Distributors of Ortac and Tacflex Cable Gland Components</h1></td>
        </tr>
      <tr>
        <td><img src="images_site/ortac.jpg" width="223" height="64" alt="Lepagemarketing and Ortac" /></td>
        <td><img src="images_site/pipe.jpg" width="175" height="158" alt="Cable Gland View" /></td>
        <td><img src="images_site/tacflex.jpg" width="253" height="102" alt="Tacflex Cable Glands" /></td>
      </tr>
      <tr>
        <td colspan="3"></td>
      </tr>
      <tr>
        <td colspan="3"></td>
      </tr>
      <tr>
        <td colspan="3">&nbsp;</td>
      </tr>
      <tr>
        <td colspan="3"><ul id="p7PMnav">
          <li><a href="index.php">Home</a></li>
          <li><a href="#" class="p7PMtrg">Menu Search</a>
            <ul>
              <li><a href="#" class="p7PMtrg">Cable Glands Moulded Pg Thread</a>
                <ul>
                  <li><a href="product.php?product=28">Cable Glands Spiral Standard Pg Thread.</a></li>
                  <li><a href="product.php?product=29">Cable Glands Spiral Long Pg Thread.</a></li>
                  <li><a href="product.php?product=26">Cable Glands Moulded Pg Thread</a></li>
                  <li><a href="product.php?product=27">Cable Glands Moulded Long Pg Thread</a></li>
                </ul>
              </li>
              <li><a href="#" class="p7PMtrg">Cable Glands Moulded Metric Thread</a>
                <ul>
                  <li><a href="product.php?product=7">Cable Glands Moulded Metric Standard Long Thread </a></li>
                  <li><a href="product.php?product=5">Cable Glands moulded metric Standard</a></li>
                  <li><a href="product.php?product=9">Cable Gland metric Standard with multi hole rubber seals</a></li>
                  <li><a href="product.php?product=12">Cable Glands Spiral Metric short thread</a></li>
                  <li><a href="product.php?product=13">Cable Glands Spiral Metric long thread</a></li>
                </ul>
              </li>
            </ul>
          </li>
          <li><a href="search.php">Category Search</a></li>
          <li><a href="account.php">My Account</a></li>
          <!--[if lte IE 6]><style>#p7PMnav a{height:1em;}#p7PMnav li{height:1em;}#p7PMnav ul li{float:left;clear:both;width:100%}</style><![endif]-->
          <!--[if IE 6]><style>#p7PMnav ul li{clear:none;}</style><![endif]-->
          <!--[if IE 7]><style>#p7PMnav a{zoom:100%;}#p7PMnav ul li{float:left;clear:both;width:100%;}</style><![endif]-->
        </ul></td>
      </tr>
      <tr>
        <td colspan="3"><!-- InstanceBeginEditable name="EditRegion1" -->
<div class="CWcontent">
<!-- user alert - message shown to user
NOTE: keep on one line for cross-browser script support -->
<div id="CWuserAlert" class="fadeOut CWcontent"
	
style="display:none;"
 >
</div><div class="CWcartInfo CWcontent">
    

<div class="CWcustomerLinks" id="CWcartLinks">
<span class="CWitemCountText">1 Item in Cart</span> | <a class="CWviewCartLink" href="cart.php?returnUrl=productlist.php%3Fcategory%3D4%26secondary%3D23%26keywords%3D">View Cart</a> | <span class="CWitemCountText">&pound;2.40</span> | <a class="CWcheckOutLink" href="checkout.php">Check Out</a></div>
<div class="CWcustomerLinks" id="CWaccountLinks">
<span class="CWloggedInAs">Logged in as <a href="account.php">Lepage</a></span> | <a href="account.php">My Account</a> | <a class="CWlogoutLink" href="product.php?product=25&logout=1">Log Out</a></div>
    <div class="CWclear"></div>
</div></div>    

    

					<div class="CWbreadcrumb">&raquo; <a href='productlist.php' class='CWlink'>Store</a> &raquo; <a href="productlist.php?category=4" class="CWlink">Cable Gland Accessories</a> &raquo; <a href="productlist.php?category=4&secondary=23" class="CWlink">Moulded Metric Blind Stops</a> &raquo; Moulded Metric Blind Stop</div>
<div class="CWproduct CWcontent" id="CWdetails">
		<h1 class="CWproductName">Moulded Metric Blind Stop</h1>
						<div class="CWproductImage">
			
			
						<a href="cw4/images/product_expanded/StopingPlug.jpg" id="CWproduct25imgLink" class="CWtriggerZoomLink CWlink" title="Moulded Metric Blind Stop"><img id="CWproductImgMain" src="cw4/images/product_full/StopingPlug.jpg" alt="Moulded Metric Blind Stop: click to enlarge"></a>
						<div>
							<a href="cw4/images/product_expanded/StopingPlug.jpg" id="CWproduct25zoomLink" class="CWtriggerZoomLink CWlink" title="Moulded Metric Blind Stop">Click to Enlarge</a>
						</div>
		
		<div class="CWproductThumbs">
	
			<a href="cw4/images/product_expanded/StopingPlug.jpg" class="CWimageZoomLink CWlink" title="Moulded Metric Blind Stop" rel="CWproduct"><img class="CWthumb" src="cw4/images/product_thumb_details/StopingPlug.jpg" alt="Moulded Metric Blind Stop"></a>
		
			<a href="cw4/images/product_expanded/StopingPlugTD.jpg" class="CWimageZoomLink CWlink" title="Moulded Metric Blind Stop" rel="CWproduct"><img class="CWthumb" src="cw4/images/product_thumb_details/StopingPlugTD.jpg" alt="Moulded Metric Blind Stop"></a>
		
		</div>
		
				</div>
			<div id="CWproductInfo">
						<a name="skus"></a>
			 
				<div id="CWproductPrices">
					<div class="CWproductPrice">
						Price:
						<span class="CWproductPriceLow">&pound;2.00</span>
							<br>
							<span class="smallPrint">
								(<span class="CWproductTaxPriceLow">&pound;2.40</span>
								including 20% VAT)
							</span>
					</div>
				</div>
				<form action="product.php?product=25&category=4&secondary=23" class="CWvalidate" method="post" name="AddToCart" id="CWformAddToCart">
    

				<table class="CWtable" id="CWoptionsTable">
								<tr class="headerRow">
								<th>SKU</th>
	
                    <th>Size</th>
	
                    <th>Thread length</th>
	
                    <th>Diameter</th>
	
                    <th>Height Overall</th>
	
                    <th>Colour</th>
            <th>Price</th>
                        <th>Qty.</th>
            </tr>
            <br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOBK01</td>
	
                	<td>M12 x 1.5</td>
	
                	<td>6 mm</td>
	
                	<td>15 mm</td>
	
                	<td>8.5 mm</td>
	
                	<td>Black </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty1" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID1" type="hidden" value="311">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOBK02</td>
	
                	<td>M16 x 1.5</td>
	
                	<td>7 mm</td>
	
                	<td>20 mm</td>
	
                	<td>10 mm</td>
	
                	<td>Black </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty2" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID2" type="hidden" value="314">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOBK03</td>
	
                	<td>M20x1.5</td>
	
                	<td>7 mm</td>
	
                	<td>24 mm</td>
	
                	<td>10 mm</td>
	
                	<td>Black </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty3" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID3" type="hidden" value="317">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOBK04</td>
	
                	<td>M25 x 1.5</td>
	
                	<td>10 mm</td>
	
                	<td>30 mm</td>
	
                	<td>14 mm</td>
	
                	<td>Black </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty4" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID4" type="hidden" value="320">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOBK05</td>
	
                	<td>M32 x 1.5</td>
	
                	<td>10 mm</td>
	
                	<td>37 mm</td>
	
                	<td>14 mm</td>
	
                	<td>Black </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty5" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID5" type="hidden" value="323">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOBK06</td>
	
                	<td>M40 x 1.5</td>
	
                	<td>10 mm</td>
	
                	<td>48 mm</td>
	
                	<td>15 mm</td>
	
                	<td>Black </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty6" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID6" type="hidden" value="326">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOGK01</td>
	
                	<td>M12 x 1.5</td>
	
                	<td>6 mm</td>
	
                	<td>15 mm</td>
	
                	<td>8.5 mm</td>
	
                	<td>Grey </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty7" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID7" type="hidden" value="312">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOGK02</td>
	
                	<td>M16 x 1.5</td>
	
                	<td>7 mm</td>
	
                	<td>20 mm</td>
	
                	<td>10 mm</td>
	
                	<td>Grey </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty8" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID8" type="hidden" value="315">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOGK03</td>
	
                	<td>M20x1.5</td>
	
                	<td>7 mm</td>
	
                	<td>24 mm</td>
	
                	<td>10 mm</td>
	
                	<td>Grey </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty9" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID9" type="hidden" value="318">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOGK04</td>
	
                	<td>M25 x 1.5</td>
	
                	<td>10 mm</td>
	
                	<td>30 mm</td>
	
                	<td>14 mm</td>
	
                	<td>Grey </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty10" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID10" type="hidden" value="321">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOGK05</td>
	
                	<td>M32 x 1.5</td>
	
                	<td>10 mm</td>
	
                	<td>37 mm</td>
	
                	<td>14 mm</td>
	
                	<td>Grey </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty11" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID11" type="hidden" value="324">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOGK06</td>
	
                	<td>M40 x 1.5</td>
	
                	<td>10 mm</td>
	
                	<td>48 mm</td>
	
                	<td>15 mm</td>
	
                	<td>Grey </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty12" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID12" type="hidden" value="327">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOLK01</td>
	
                	<td>M12 x 1.5</td>
	
                	<td>6 mm</td>
	
                	<td>15 mm</td>
	
                	<td>8.5 mm</td>
	
                	<td>L Grey </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty13" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID13" type="hidden" value="313">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOLK02</td>
	
                	<td>M16 x 1.5</td>
	
                	<td>7 mm</td>
	
                	<td>20 mm</td>
	
                	<td>10 mm</td>
	
                	<td>L Grey </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty14" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID14" type="hidden" value="316">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOLK03</td>
	
                	<td>M20x1.5</td>
	
                	<td>7 mm</td>
	
                	<td>24 mm</td>
	
                	<td>10 mm</td>
	
                	<td>L Grey </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty15" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID15" type="hidden" value="319">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOLK04</td>
	
                	<td>M25 x 1.5</td>
	
                	<td>10 mm</td>
	
                	<td>30 mm</td>
	
                	<td>14 mm</td>
	
                	<td>L Grey </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty16" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID16" type="hidden" value="322">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOLK05</td>
	
                	<td>M32 x 1.5</td>
	
                	<td>10 mm</td>
	
                	<td>37 mm</td>
	
                	<td>14 mm</td>
	
                	<td>L Grey </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty17" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID17" type="hidden" value="325">
        </td>
    </tr>
<br />
<b>Notice</b>:  Undefined index: sku_Price in <b>C:\xampp\htdocs\LP_CW_P7\cw4\cwapp\mod\cw-mod-productoptions.php</b> on line <b>157</b><br />
    <tr>
                <td>MOLK06</td>
	
                	<td>M40 x 1.5</td>
	
                	<td>10 mm</td>
	
                	<td>48 mm</td>
	
                	<td>15 mm</td>
	
                	<td>L Grey </td>
        <td>&pound;2.00<br><span class="smallPrint">(&pound;0.00 including 20%VAT</span></td>
                <td class="CWinputCell">
	
            <input name="qty18" class="qty" type="text" value="" size="1" onkeyup="extractNumeric(this,0,false)">
            <input name="skuID18" type="hidden" value="328">
        </td>
    </tr>
    </table>
        <div>
        <input type="hidden" name="addSkus" value="18">
                <input type="hidden" name="totalQty" id="totalQty" value="0">
    </div>
						<div>
							<div class="center CWclear">
								<input name="submit" type="submit" class="CWformButton" value="Add to Cart&nbsp;&raquo;">
							</div>
						</div>
					<input name="productID" type="hidden" value="25">
				</form>
					<div class="CWproductDescription"><p><strong class="normal">The Ortac slotted metric Blind Stops for use in enclosures while waiting for cable entries</strong></p></div>
						<p class="CWcontShop">&raquo;&nbsp;<a href="productlist.php?category=4&secondary=23&keywords=">Continue Shopping</a></p>
			</div>
				<div class="CWproductSpecialDescription"><p><strong class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Moulded in Polyamide V2 raw material</strong><br /><strong class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; High heat and impact resistance</strong><br /><strong class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Metric Thread&nbsp; to comply EN60423</strong><br /><strong class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Designed to meet IP54 protection</strong><br /><strong class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Long term temperature range -30C to +80C</strong><br /><strong class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Short term temperature range +150C</strong><br /><strong class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Halogen Free LSOH</strong></p></div>
	<div class="CWclear"></div>
</div>
		
		<div class="CWproductRecentProducts CWcontent">
			<h3>Recently Viewed:</h3>
    

	
<div class="CWproduct CWcontent">
<a name="product-13"></a>
<div class="CWproductPreviewTitle"><a href="product.php?product=13" class="CWlink">Metric long thread spiral Cable Glands</a></div><a href="product.php?product=13" class="CWlink" title="Metric long thread spiral Cable Glands">
				<img src="cw4/images/product_thumb/SpiralGland.jpg" alt="Metric long thread spiral Cable Glands" class="CWimgRecent">
			</a><span class="CWproductDetailsLink"><a class="CWlink" href="product.php?product=13">&raquo; details</a></span>
</div>
    

	
<div class="CWproduct CWcontent">
<a name="product-12"></a>
<div class="CWproductPreviewTitle"><a href="product.php?product=12" class="CWlink">Metric short thread spiral Cable Glands</a></div><a href="product.php?product=12" class="CWlink" title="Metric short thread spiral Cable Glands">
				<img src="cw4/images/product_thumb/SpiralGland.jpg" alt="Metric short thread spiral Cable Glands" class="CWimgRecent">
			</a><span class="CWproductDetailsLink"><a class="CWlink" href="product.php?product=12">&raquo; details</a></span>
</div>
    

	
<div class="CWproduct CWcontent">
<a name="product-5"></a>
<div class="CWproductPreviewTitle"><a href="product.php?product=5" class="CWlink">Standard moulded metric cable glands</a></div><a href="product.php?product=5" class="CWlink" title="Standard moulded metric cable glands">
				<img src="cw4/images/product_thumb/DometopGlandPic.jpg" alt="Standard moulded metric cable glands" class="CWimgRecent">
			</a><span class="CWproductDetailsLink"><a class="CWlink" href="product.php?product=5">&raquo; details</a></span>
</div>
    

	
<div class="CWproduct CWcontent">
<a name="product-27"></a>
<div class="CWproductPreviewTitle"><a href="product.php?product=27" class="CWlink">Moulded Cable Glands Long Pg Thread</a></div><a href="product.php?product=27" class="CWlink" title="Moulded Cable Glands Long Pg Thread">
				<img src="cw4/images/product_thumb/DometopGlandPic-20130814131455.jpg" alt="Moulded Cable Glands Long Pg Thread" class="CWimgRecent">
			</a><span class="CWproductDetailsLink"><a class="CWlink" href="product.php?product=27">&raquo; details</a></span>
</div>
    

	
<div class="CWproduct CWcontent">
<a name="product-7"></a>
<div class="CWproductPreviewTitle"><a href="product.php?product=7" class="CWlink">Standard Moulded Metric Long Thread Cable Glands</a></div><a href="product.php?product=7" class="CWlink" title="Standard Moulded Metric Long Thread Cable Glands">
				<img src="cw4/images/product_thumb/DometopGlandPic-20130814150103.jpg" alt="Standard Moulded Metric Long Thread Cable Glands" class="CWimgRecent">
			</a><span class="CWproductDetailsLink"><a class="CWlink" href="product.php?product=7">&raquo; details</a></span>
</div>
			<div class="CWclear"></div>
		</div>
	<!-- InstanceEndEditable --></td>
      </tr>
      <tr>
        <td colspan="3">&nbsp;</td>
      </tr>
      <tr>
        <td colspan="3"><p class="Verd12">&nbsp;</p></td>
      </tr>
      <tr>
        <td colspan="3"><p align="center"><span class="Verd12">We              trust you will find the solution to your all Cable Gland requirements on this website<br />
          if not please call us on <strong>01366 381176</strong> or  <a href="mailto:info@lepagemarketing.co.uk"><strong>Email                us for prices and information</strong></a></span><br />
        </p>
          <div align="center" class="Verd12"><strong>Lepage Marketing,</strong> Unit E Sovereign              Way, Trafalgar Industrial Estate, <br />
          Downham Market, Norfolk, England. PE 38 9SW </div></td>
      </tr>
    </table></td>
  </tr>
</table>
</body>
<!-- InstanceEnd --></html>

Open in new window

0
Ray PaseurCommented:
Undefined Index is a Notice-level message.  In this case it looks like the script is assuming that sku_Price is an index of the array, but it's not present.
0
johnhardyAuthor Commented:
Thanks for all the help so far.
I am in contact with the supplier of the cart but so far have not been able to get any progress.
As and when this develops I will be back in contact.
Regards
John
0
johnhardyAuthor Commented:
Sorry about the delay, I have heard from the software supplier and their opinion is as follows:

If it is just locally, nothing to worry about. ( Warning/notices, are
usually shown on local environments, but not on live servers.

Yes it is just on my local machine, the remote server does not show the error.
0
ArgentiCommented:
John,

Yes, usually website admins disable most of the PHP messages (warnings and notices) on their servers
BUT

If you have them shown on localhost, they are there for a reason.

So my advice for you would be to debug your code according to your warning/notice message and see where the problem is. Most of the times it's about uninitialized variables or inexistent position in an array.
Remember: Hiding the garbage under the carpet is not the solution. After a while it might start to stink.

Good luck!
0
johnhardyAuthor Commented:
Thank you all for the help, I will have to learn about debugging, at least I have some time now.
Regards

John
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
PHP

From novice to tech pro — start learning today.