Hey Joe! What do ya know? (Sorry.)
Let me preface this by saying I suck with PHP. I purchased a template from template-help.com, which is one of many domain names this group of template people uses, and had exactly the same problem. Support got back to me and provided an updated product_info.php file, and stated that it was a problem with the template.
Here's the part where I start sucking:
I have no idea what they changed, but I'm pasting the contents of file in the hopes that you might be able to give it the once over and get it figured out. I know for a fact that this is a big issue with the templates. There are hundres of people reporting this issue with them. If you figure out the difference, please... PLEASE post it back here. I'm sure there are a bunch of people that wold benefit from the knowledge.
Thanx, and good luck.
Jon-
Contents of product_info.php from fixed template:
<?php
/*
$Id: product_info.php,v 1.97 2003/07/01 14:34:54 hpdl Exp $
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright © 2003 osCommerce
Released under the GNU General Public License
*/
require('includes/application_top.php');
require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO);
$product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
$product_check = tep_db_fetch_array($product_check_query);
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<script type="text/javascript"><!--
function popupWindow(url) {
window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,res
izable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,le
ft=150')
}
//--></script>
</head>
<body>
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->
<!-- body //-->
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td style="height:100%;">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</td>
<!-- body_text //-->
<td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_PRODUCT_INFO, tep_get_all_get_params(array('action')) . 'action=add_product')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">
<?php
if ($product_check['total'] < 1) {
?>
<?
/*
<?php echo TEXT_PRODUCT_NOT_FOUND;?>
*/
?>
<tr><td>
<? tep_draw_heading_top(); ?>
<?php tep_draw_titletop();?>
<? echo(tep_image(DIR_WS_IMAGES.'1_z3.gif'))?> <?php echo TEXT_PRODUCT_NOT_FOUND;?>
<?php tep_draw_titlebottom();?>
<? tep_draw_heading_top_1(); ?>
<? echo $tep_draw_heading_top_prod_type1?>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr><td height="27"></td></tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
<td align="right"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td>
<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
</tr>
<tr><td height="5"></td></tr>
</table>
<?php echo tep_draw_separator('spacer.gif', '1', '15'); ?><br>
<? echo $tep_draw_heading_bottom_prod_type1?>
<? tep_draw_heading_bottom_1(); ?>
<? tep_draw_heading_bottom(); ?>
<?php
} else {
$product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
$product_info = tep_db_fetch_array($product_info_query);
tep_db_query("update " . TABLE_PRODUCTS_DESCRIPTION . " set products_viewed = products_viewed+1 where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'");
if ($new_price = tep_get_products_special_price($product_info['products_id'])) {
$products_price = '<span class="price_txt_strice">' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span> <span class="price_txt">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
} else {
$products_price = '<span class="price_txt">'.$currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']).'</span>');
}
if (tep_not_null($product_info['products_model']))
{
$products_name = $product_info['products_name'] . '<br><span class="smallText">[' . $product_info['products_model'] . ']</span>';
} else {
$products_name = $product_info['products_name'];
}
?>
<tr>
<td>
<? tep_draw_heading_top(); ?>
<? /* going title */ ?>
<?php tep_draw_titletop();?>
<?php echo $breadcrumb->trail(' » ')?>
<?php tep_draw_titlebottom();?>
<? tep_draw_heading_top_3(); ?>
<? tep_draw_heading_top_2(); ?>
<? /*
<?php echo $products_name; ?>
<?php echo $breadcrumb->trail(' » ')?>
*/ ?>
<?php
if (tep_not_null($product_info['products_image'])) {
?>
<table cellspacing="0" cellpadding="0" border="0" style="background:url(images/rtc1.gif) no-repeat right top; height:35px;">
<tr>
<td style="background:url(images/rbc1.gif) no-repeat right bottom; padding:0 0 0 21px; vertical-align:middle;" class="title2_txt"> <?php echo $products_name; ?><br>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" style="margin-top:16px;">
<tr>
<td width="260" style="text-align:center;">
<script type="text/javascript">
<!--
document.write('<?php echo '<a href="java script:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '\\\')">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'],
addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="0" vspace="0"') . '</a>'; ?>');
//--></script>
<noscript>
<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="0" vspace="0"') . '</a>'; ?><br>
</noscript>
<br>
<script type="text/javascript"><!--
document.write('<?php echo '<br style="line-height:10px;">
<div><a href="java script:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '\\\')">' . TEXT_CLICK_TO_ENLARGE . '</a></div>'; ?>');
//--></script>
<noscript>
<?php echo '<br style="line-height:10px;"><div><a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank">
' . TEXT_CLICK_TO_ENLARGE . '</a>
</div>'; ?>
</noscript><br>
<?php echo '<br style="line-height:10px;"><div class="link7"><a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank">
' . TEXT_CLICK_TO_ENLARGE . '</a>
</div>'; ?>
</td>
<td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="98" class="link2 txt5">
<?php echo tep_draw_separator('spacer.gif', '1', '1'); ?><br>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td style="width:100%; background:url(images/side.gif) repeat-x top;">
<table cellspacing="0" cellpadding="0" border="0" style="background:url(images/side.gif) repeat-x bottom;">
<tr>
<td style="background:url(images/side.gif) repeat-y left;">
<table cellspacing="0" cellpadding="0" border="0" style="background:url(images/side.gif) repeat-y right;">
<tr>
<td style="background:url(images/ltc2.gif) no-repeat left top;">
<table cellspacing="0" cellpadding="0" border="0" style="background:url(images/lbc2.gif) no-repeat left bottom;">
<tr>
<td style="background:url(images/rtc2.gif) no-repeat right top;">
<table cellspacing="0" cellpadding="0" border="0" style="background:url(images/rbc2.gif) no-repeat right bottom;height:59px;">
<tr>
<td width="120" class="price_txt" style=" text-align:center; vertical-align:middle;"><?=$products_price?><br>
</td>
<td style="width:auto;">
<?php echo tep_draw_separator('spacer.gif', '1', '14'); ?><br>
<?php echo tep_draw_hidden_field('products_id', $product_info['products_id']) . tep_image_submit('button_add_to_cart1.gif', IMAGE_BUTTON_IN_CART); ?><br>
<?php echo tep_draw_separator('spacer.gif', '1', '4'); ?><br>
<?php echo '<a href="' . tep_href_link(FILENAME_PRODUCT_REVIEWS, tep_get_all_get_params()) . '">' . tep_image_button('button_reviews.gif', IMAGE_BUTTON_REVIEWS) . '</a>'; ?><br>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" style="margin-top:23px;">
<tr>
<td style="padding-left:11px; padding-right:15px;" class="txt5">
<?php
}
?>
<br style="line-height:20px;">
<?php
$products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'");
$products_attributes = tep_db_fetch_array($products_attributes_query);
if ($products_attributes['total'] > 0) {
?>
<table cellpadding="0" cellspacing="0" class=" box_width_cont product">
<tr><td class="p2" height="25" colspan="2"><strong>
<?php echo TEXT_PRODUCT_OPTIONS; ?></strong></td></tr>
<?php
$products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");
while ($products_options_name = tep_db_fetch_array($products_options_name_query)) {
$products_options_array = array();
$products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'");
while ($products_options = tep_db_fetch_array($products_options_query)) {
$products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);
if ($products_options['options_values_price'] != '0') {
$products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
}
}
if (isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) {
$selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']];
} else {
$selected_attribute = false;
}
?>
<tr>
<td style="width:47px;"><?php echo $products_options_name['products_options_name'] . ':'; ?></td>
<td><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?></td>
</tr>
<tr><td height="10" colspan="2"></td></tr>
<?php
}
?>
</table>
<?php
}
?>
<?php
$reviews_query = tep_db_query("select count(*) as count from " . TABLE_REVIEWS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'");
$reviews = tep_db_fetch_array($reviews_query);
if ($reviews['count'] > 0) {
?>
<table cellpadding="0" cellspacing="0" class="product box_width_cont">
<tr><td style=" line-height:15px;">
<?php echo TEXT_CURRENT_REVIEWS . ' ' . $reviews['count']; ?>
</td></tr>
</table>
<br style="line-height:10px;">
<?php
}
if (tep_not_null($product_info['products_url'])) {
?>
<table cellpadding="0" cellspacing="0" class="product box_width_cont">
<tr><td style=" line-height:15px;">
<?php echo sprintf(TEXT_MORE_INFORMATION, tep_href_link(FILENAME_REDIRECT, 'action=url&goto=' . urlencode($product_info['products_url']), 'NONSSL', true, false)); ?>
</td></tr>
<tr><td height="17"></td></tr>
</table>
<?php
}
if ($product_info['products_date_available'] > date('Y-m-d H:i:s')) {
?>
<table cellpadding="0" cellspacing="0" class="product box_width_cont">
<tr><td style=" line-height:15px;" class="txt10"><?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_long($product_info['products_date_available'])); ?></td></tr>
<tr><td height="17"></td></tr>
</table>
<?php
} else {
?>
<table cellpadding="0" cellspacing="0" class="product box_width_cont">
<tr><td style=" line-height:15px;" class="txt10"><?php echo sprintf(TEXT_DATE_ADDED, tep_date_long($product_info['products_date_added'])); ?></td></tr>
<tr><td height="17"></td></tr>
</table>
<?php
}
?>
<div style="line-height:16px;">
<?php echo stripslashes($product_info['products_description']); ?><br>
</div>
<br style="line-height:20px;">
<? tep_draw_heading_bottom_2(); ?>
<? tep_draw_heading_bottom_3(); ?>
<?php tep_draw_heading_bottom();?>
<?php
if ((USE_CACHE == 'true') && empty($SID)) {
echo tep_cache_also_purchased(3600);
} else {
?>
<?php
//include(DIR_WS_MODULES . FILENAME_ALSO_PURCHASED_PRODUCTS);
?>
<?php
}
?>
<?
}
?>
</td></tr>
</table></form>
</td>
<!-- body_text_eof //-->
<td valign="top">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
</td>
</tr>
</table>
<!-- body_eof //-->
<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
----------------------------------------------------
That's it! (without the line above) Ha ha ha...