Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Review index.php for errors?


hughesca

Recommended Posts

Posted

Hello there!

 

I'm getting the following when loading index.php:

 

Welcome!

 

Fatal error: Call to undefined function tep_not_null() in /home/content/86/7797386/html/nfw/index.php on line 1

 

Here is my index.php:

 

<?php

/*
 $Id$
 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com
 Copyright (c) 2010 osCommerce
 Released under the GNU General Public License
*/
// Include the Cache_Lite Class
require_once '/home/content/86/7797386/html/nfw/includes/functions/Lite.php';   // change "/web/htdocs/www.YOURSITE.com/home/" with the full path of your oscommerce installation

// Create a unique ID for the page, in this case, the full URL. You
// should stick to a single convention here!
$id = md5('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);

// Set options and create a new instance of the class - self explantory!
$options = array(
'cacheDir' =>"/home/content/86/7797386/html/nfw/tmp/",    //this is the folder were the file will be cached, change "/web/htdocs/www.YOURSITE.com/home/" with the full path of your oscommerce installation
'lifeTime' => 10800, // time in seconds of the cache file 
'automaticSerialization' => true,
);
$cache = new Cache_Lite($options);

if ($data = $cache->get($id)) {


} else {

        // Use PHP output buffering to save the contents of the webpage to a variable,
        //for use in the cache file
        ob_start();
}
// End the Cache_Lite Class
 require('includes/application_top.php');
// the following cPath references come from application_top.php
 $category_depth = 'top';
 if (isset($cPath) && tep_not_null($cPath)) {
   $categories_products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");
   $categories_products = tep_db_fetch_array($categories_products_query);
   if ($categories_products['total'] > 0) {
     $category_depth = 'products'; // display products
   } else {
     $category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'");
     $category_parent = tep_db_fetch_array($category_parent_query);
     if ($category_parent['total'] > 0) {
       $category_depth = 'nested'; // navigate through the categories
     } else {
       $category_depth = 'products'; // category has no products, but display the 'no products' message
     }
   }
 }
 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);
 require(DIR_WS_INCLUDES . 'template_top.php');
 if ($category_depth == 'nested') {
   $category_query = tep_db_query("select cd.categories_name, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$languages_id . "'");
   $category = tep_db_fetch_array($category_query);
?>
<div class="ui-widget infoBoxContainer2">
<div class="ui-widget-header infoBoxHeading"><?php echo $category['categories_name']; ?></div></div>
<div class="ui-widget-content infoBoxContents">
<div class="contentContainer">
 <div class="contentText">
   <table border="0" width="100%" cellspacing="0" cellpadding="2">
     <tr>
<?php
   if (isset($cPath) && strpos('_', $cPath)) {
// check to see if there are deeper categories within the current category
     $category_links = array_reverse($cPath_array);
     for($i=0, $n=sizeof($category_links); $i<$n; $i++) {
       $categories_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");
       $categories = tep_db_fetch_array($categories_query);
       if ($categories['total'] < 1) {
         // do nothing, go through the loop
       } else {
         $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");
         break; // we've found the deepest category the customer is in
       }
     }
   } else {
     $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");
   }
   $number_of_categories = tep_db_num_rows($categories_query);
   $rows = 0;
   while ($categories = tep_db_fetch_array($categories_query)) {
     $rows++;
     $cPath_new = tep_get_path($categories['categories_id']);
     $width = (int)(100 / MAX_DISPLAY_CATEGORIES_PER_ROW) . '%';
     echo '        <td align="center" class="smallText" width="' . $width . '" valign="top"><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . tep_image(DIR_WS_IMAGES . $categories['categories_image'], $categories['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '<br />' . $categories['categories_name'] . '</a></td>' . "\n";
     if ((($rows / MAX_DISPLAY_CATEGORIES_PER_ROW) == floor($rows / MAX_DISPLAY_CATEGORIES_PER_ROW)) && ($rows != $number_of_categories)) {
       echo '      </tr>' . "\n";
       echo '      <tr>' . "\n";
     }
   }
// needed for the new products module shown below
   $new_products_category_id = $current_category_id;
?>
     </tr>
   </table>
   <br />
<?php include(DIR_WS_MODULES . FILENAME_FEATURED); ?>
 </div>
</div></div>
<?php
 } elseif ($category_depth == 'products' || isset($HTTP_GET_VARS['manufacturers_id'])) {
// create column list
   $define_list = array('PRODUCT_LIST_SORT_ORDER' => PRODUCT_LIST_SORT_ORDER,
                        'PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
                        'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
                        'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,
                        'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,
                        'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,
                        'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,
                        'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE,
                        'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW);
   asort($define_list);
   $column_list = array();
   reset($define_list);
   while (list($key, $value) = each($define_list)) {
     if ($value > 0) $column_list[] = $key;
   }
   $select_column_list = '';
   for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
     switch ($column_list[$i]) {
  //sort order
       case 'PRODUCT_LIST_SORT_ORDER':
         $select_column_list .= 'p.products_sort_order, ';
         break;
  //end sort order
       case 'PRODUCT_LIST_MODEL':
         $select_column_list .= 'p.products_model, ';
         break;
       case 'PRODUCT_LIST_NAME':
         $select_column_list .= 'pd.products_name, ';
         break;
       case 'PRODUCT_LIST_MANUFACTURER':
         $select_column_list .= 'm.manufacturers_name, ';
         break;
       case 'PRODUCT_LIST_QUANTITY':
         $select_column_list .= 'p.products_quantity, ';
         break;
       case 'PRODUCT_LIST_IMAGE':
         $select_column_list .= 'p.products_image, ';
         break;
       case 'PRODUCT_LIST_WEIGHT':
         $select_column_list .= 'p.products_weight, ';
         break;
     }
   }
// show the products of a specified manufacturer
   if (isset($HTTP_GET_VARS['manufacturers_id'])) {
     if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only a specific category
       $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'";
     } else {
// We show them all
       $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'";
     }
   } else {
// show the products in a given categorie
     if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only specific catgeory
       $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
     } else {
// We show them all
       $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
     }
   }
   if ( (!isset($HTTP_GET_VARS['sort'])) || (!preg_match('/^[1-8][ad]$/', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) {
     for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
       //sort order
       if ($column_list[$i] == 'PRODUCT_LIST_SORT_ORDER') {
         $HTTP_GET_VARS['sort'] = $i+1 . 'a';
         $listing_sql .= " order by p.products_sort_order, pd.products_name";
         break;
       }
       elseif ($column_list[$i] == 'PRODUCT_LIST_NAME' && PRODUCT_LIST_SORT_ORDER==0) {
         $HTTP_GET_VARS['sort'] = $i+1 . 'a';
         $listing_sql .= " order by pd.products_name";
//end sort order
         break;
       }
     }
   } else {
     $sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1);
     $sort_order = substr($HTTP_GET_VARS['sort'], 1);
     switch ($column_list[$sort_col-1]) {
  //sort order
       case 'PRODUCT_LIST_SORT_ORDER':
         $listing_sql .= "p.products_sort_order , pd.products_name " . ($sort_order == 'a' ? 'asc' : '');
         break;
//end sort order
       case 'PRODUCT_LIST_MODEL':
         $listing_sql .= " order by p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
         break;
       case 'PRODUCT_LIST_NAME':
         $listing_sql .= " order by pd.products_name " . ($sort_order == 'd' ? 'desc' : '');
         break;
       case 'PRODUCT_LIST_MANUFACTURER':
         $listing_sql .= " order by m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
         break;
       case 'PRODUCT_LIST_QUANTITY':
         $listing_sql .= " order by p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
         break;
       case 'PRODUCT_LIST_IMAGE':
         $listing_sql .= " order by pd.products_name";
         break;
       case 'PRODUCT_LIST_WEIGHT':
         $listing_sql .= " order by p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
         break;
       case 'PRODUCT_LIST_PRICE':
         $listing_sql .= " order by final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
         break;
     }
   }
   $catname = HEADING_TITLE;
   if (isset($HTTP_GET_VARS['manufacturers_id'])) {
     $image = tep_db_query("select manufacturers_image, manufacturers_name as catname from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
     $image = tep_db_fetch_array($image);
     $catname = $image['catname'];
   } elseif ($current_category_id) {
     $image = tep_db_query("select c.categories_image, cd.categories_name as catname from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");
     $image = tep_db_fetch_array($image);
     $catname = $image['catname'];
   }
?>
<div class="ui-widget infoBoxContainer2">
<div class="ui-widget-header infoBoxHeading"><?php echo '  ' . $breadcrumb->trail(' » '); ?></div></div>
<div class="ui-widget-content infoBoxContents">
<div class="contentContainer">
<?php
// optional Product List Filter
   if (PRODUCT_LIST_FILTER > 0) {
     if (isset($HTTP_GET_VARS['manufacturers_id'])) {
       $filterlist_sql = "select distinct c.categories_id as id, cd.categories_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where p.products_status = '1' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and p2c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' order by cd.categories_name";
     } else {
       $filterlist_sql= "select distinct m.manufacturers_id as id, m.manufacturers_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by m.manufacturers_name";
     }
     $filterlist_query = tep_db_query($filterlist_sql);
     if (tep_db_num_rows($filterlist_query) > 1) {
       echo '<div>' . tep_draw_form('filter', tep_href_link( FILENAME_DEFAULT ), 'get') . '<p align="right">' . TEXT_SHOW . ' ';
       if (isset($HTTP_GET_VARS['manufacturers_id'])) {
         echo tep_draw_hidden_field('manufacturers_id', $HTTP_GET_VARS['manufacturers_id']);
         $options = array(array('id' => '', 'text' => TEXT_ALL_CATEGORIES));
       } else {
         echo tep_draw_hidden_field('cPath', $cPath);
         $options = array(array('id' => '', 'text' => TEXT_ALL_MANUFACTURERS));
       }
       echo tep_draw_hidden_field('sort', $HTTP_GET_VARS['sort']);
       while ($filterlist = tep_db_fetch_array($filterlist_query)) {
         $options[] = array('id' => $filterlist['id'], 'text' => $filterlist['name']);
       }
       echo tep_draw_pull_down_menu('filter_id', $options, (isset($HTTP_GET_VARS['filter_id']) ? $HTTP_GET_VARS['filter_id'] : ''), 'onchange="this.form.submit()"');
       echo tep_hide_session_id() . '</p></form></div>' . "\n";
     }
   }
   $category_query = tep_db_query("select cd.categories_name from " . 	TABLE_CATEGORIES_DESCRIPTION . " cd where cd.categories_id = '" . (int)$current_category_id . 	"' and cd.language_id = '" . (int)$languages_id . "'");
$category = tep_db_fetch_array($category_query);
$category = str_replace('/', '', $category);
$filename = 'includes/descriptions/' . $category['categories_name'] . '.php';
if (file_exists($filename)) {
  include( $filename );
} 
  include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);
?>
</div></div>
<?php
 } else { // default page
?>
<div class="ui-widget infoBoxContainer2">
<div class="ui-widget-header infoBoxHeading">Welcome!</div></div>
<div class="ui-widget-content infoBoxContents">
<div class="contentContainer">

<?php
   if (tep_not_null(TEXT_MAIN)) {
?>
<?php
   }
   include(DIR_WS_MODULES . FILENAME_FEATURED);
   include(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS);
?>

 <div class="contentText">
   <?php echo tep_customer_greeting_main();?><?php echo TEXT_MAIN; ?>
 </div><br>

</div>
</div>
<?php
 }
$data = ob_get_contents();

        // Save the page to a cache file, using the ID created earlier
        $cache->save($data, $id);
       ob_get_clean();
echo $data; 
 require(DIR_WS_INCLUDES . 'template_bottom.php');
 require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

 

It initially threw me off due to it reporting the error as line 1. However, because it outputs the "Welcome!" text, I believe it's somehwere in here:

 

<?php
   if (tep_not_null(TEXT_MAIN)) {
?>
<?php
   }
   include(DIR_WS_MODULES . FILENAME_FEATURED);
   include(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS);
?>

 <div class="contentText">
   <?php echo tep_customer_greeting_main();?><?php echo TEXT_MAIN; ?>
 </div><br>

 

Any help would be appreciated!

 

Thanks,

Chris

Posted

I'm also getting this error when loading product_info.php:

 

Parse error: syntax error, unexpected '}' in /home/content/86/7797386/html/nfw/product_info.php on line 1
Posted

Ok...this is REALLY odd. Don't suppose anyone can offer up an explanation on this?

 

I copy and pasted the contents of index.php and product_info.php to new files. Replaced the problematic ones and viola, it's back up and working just fine. However, I made ZERO code changes......

 

:o

Posted

Chris,

 

Are you using Dreamweaver or Frontpage to edit your files ? If so......DON'T !

 

You have to use a text editor like Editplus or Notepad ++ so that it doesn't add hidden formatting to the edited file.

 

 

 

 

Chris

Posted

ps.

 

This is poor coding:

 

require_once '/home/content/86/7797386/html/nfw/includes/functions/Lite.php';

 

 

 

 

 

Chris

Posted

<?php

 

/*

$Id$

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

Copyright © 2010 osCommerce

Released under the GNU General Public License

*/

// Include the Cache_Lite Class

require_once '/home/content/86/7797386/html/nfw/includes/functions/Lite.php'; // change "/web/htdocs/www.YOURSITE.com/home/" with the full path of your oscommerce installation

 

// Create a unique ID for the page, in this case, the full URL. You

// should stick to a single convention here!

$id = md5('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);

 

// Set options and create a new instance of the class - self explantory!

$options = array(

'cacheDir' =>"/home/content/86/7797386/html/nfw/tmp/", //this is the folder were the file will be cached, change "/web/htdocs/www.YOURSITE.com/home/" with the full path of your oscommerce installation

'lifeTime' => 10800, // time in seconds of the cache file

'automaticSerialization' => true,

);

$cache = new Cache_Lite($options);

 

if ($data = $cache->get($id)) {

 

 

} else {

 

// Use PHP output buffering to save the contents of the webpage to a variable,

//for use in the cache file

ob_start();

}

// End the Cache_Lite Class

require('includes/application_top.php');

 

 

replace with

require('includes/application_top.php');

/*

$Id$

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

Copyright © 2010 osCommerce

Released under the GNU General Public License

*/

// Include the Cache_Lite Class

require_once '/home/content/86/7797386/html/nfw/includes/functions/Lite.php'; // change "/web/htdocs/www.YOURSITE.com/home/" with the full path of your oscommerce installation

 

// Create a unique ID for the page, in this case, the full URL. You

// should stick to a single convention here!

$id = md5('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);

 

// Set options and create a new instance of the class - self explantory!

$options = array(

'cacheDir' =>"/home/content/86/7797386/html/nfw/tmp/", //this is the folder were the file will be cached, change "/web/htdocs/www.YOURSITE.com/home/" with the full path of your oscommerce installation

'lifeTime' => 10800, // time in seconds of the cache file

'automaticSerialization' => true,

);

$cache = new Cache_Lite($options);

 

if ($data = $cache->get($id)) {

 

 

} else {

 

// Use PHP output buffering to save the contents of the webpage to a variable,

//for use in the cache file

ob_start();

}

// End the Cache_Lite Class

 

 

 

As some part in this call needs application_top.php included files.

 

Satish

 

 

 

 

 

Ask/Skype for Free osCommerce value addon/SEO suggestion tips for your site.

 

Check My About US For who am I and what My company does.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...