Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Wrong redirect after add to cart


Psytanium

Recommended Posts

Hello,

I turned to False the redirect to shopping cart after add to cart, but the website redirect to home page now instead of staying in the product info page.

The code in application_top is

<?php
/*
  $Id$

  Open Source E-Commerce Solutions
  Copyright (c) 2008
  Released under the GNU General Public License
*/
  define('MAX_DESCR_MODUL_NEW_PRODS','68'); //
  define('MAX_DESCR_LISTING','50'); //
  define('MAX_DESCR_SPECIALS','50'); //
  define('MAX_DESCR_PRODS_NEW','150'); //
  define('MAX_DESCR_BESTSELLERS','16'); //
  define('MAX_DESCR_REVIEWS','50'); //
  define('MAX_DESCR_BOX','50'); //

// start the timer for the page parse time log
  define('PAGE_PARSE_START_TIME', microtime());

// set the level of error reporting
  error_reporting(E_ALL & ~E_NOTICE);

// check support for register_globals
  if (function_exists('ini_get') && (ini_get('register_globals') == false) && (PHP_VERSION < 4.3) ) {
    exit('Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory. Please use PHP 4.3+ if register_globals cannot be enabled on the server.');
  }

// load server configuration parameters
  if (file_exists('includes/local/configure.php')) { // for developers
    include('includes/local/configure.php');
  } else {
    include('includes/configure.php');
  }

  if (strlen(DB_SERVER) < 1) {
    if (is_dir('install')) {
      header('Location: install/index.php');
    }
  }

// define the project version --- obsolete, now retrieved with tep_get_version()
  define('PROJECT_VERSION', 'osCommerce Online Merchant v2.3');

// some code to solve compatibility issues
  require(DIR_WS_FUNCTIONS . 'compatibility.php');

// set the type of request (secure or not)
  $request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL';

/**
  * ULTIMATE Seo Urls 5 PRO by FWR Media
  * function to return the base filename 
  */
  function usu5_base_filename() {
    // Probably won't get past SCRIPT_NAME unless this is reporting cgi location
    $base = new ArrayIterator( array( 'SCRIPT_NAME', 'PHP_SELF', 'REQUEST_URI', 'ORIG_PATH_INFO', 'HTTP_X_ORIGINAL_URL', 'HTTP_X_REWRITE_URL' ) );
    while ( $base->valid() ) {
      if ( array_key_exists(  $base->current(), $_SERVER ) && !empty(  $_SERVER[$base->current()] ) ) {
        if ( false !== strpos( $_SERVER[$base->current()], '.php' ) ) {
          preg_match( '@[a-z0-9_]+\.php@i', $_SERVER[$base->current()], $matches );
          if ( is_array( $matches ) && ( array_key_exists( 0, $matches ) )
                                    && ( substr( $matches[0], -4, 4 ) == '.php' )
                                    && ( is_readable( $matches[0] ) ) ) {
            return $matches[0];
          } 
        } 
      }
      $base->next();
    }
    // Some odd server set ups return / for SCRIPT_NAME and PHP_SELF when accessed as mysite.com (no index.php) where they usually return /index.php
    if ( ( $_SERVER['SCRIPT_NAME'] == '/' ) || ( $_SERVER['PHP_SELF'] == '/' ) ) {
      return 'index.php';
    }
    // Return the standard RC3 code 
    $req = parse_url($HTTP_SERVER_VARS['SCRIPT_NAME']);
$PHP_SELF = substr($req['path'], ($request_type == 'NONSSL') ? strlen(DIR_WS_HTTP_CATALOG) : strlen(DIR_WS_HTTPS_CATALOG));
  } // End function
// set php_self in the local scope
  $PHP_SELF = usu5_base_filename();

  if ($request_type == 'NONSSL') {
    define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG);
  } else {
    define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG);
  }

// include the list of project filenames
  require(DIR_WS_INCLUDES . 'filenames.php');

// include the list of project database tables
  require(DIR_WS_INCLUDES . 'database_tables.php');

// customization for the design layout
  define('BOX_WIDTH', 125); // how wide the boxes should be in pixels (default: 125)

// include the database functions
  require(DIR_WS_FUNCTIONS . 'database.php');

// make a connection to the database... now
  tep_db_connect() or die('Unable to connect to database server!');

// set the application parameters
  $configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION);
  while ($configuration = tep_db_fetch_array($configuration_query)) {
    define($configuration['cfgKey'], $configuration['cfgValue']);
  }

// if gzip_compression is enabled, start to buffer the output
  if ( (GZIP_COMPRESSION == 'true') && ($ext_zlib_loaded = extension_loaded('zlib')) && !headers_sent() ) {
  if (($ini_zlib_output_compression = (int)ini_get('zlib.output_compression')) < 1) {
    if (PHP_VERSION < '5.4' || PHP_VERSION > '5.4.5') { // see PHP bug 55544
      if (PHP_VERSION >= '4.0.4') {
        ob_start('ob_gzhandler');
      } elseif (PHP_VERSION >= '4.0.1') {
        include(DIR_WS_FUNCTIONS . 'gzip_compression.php');
        ob_start();
        ob_implicit_flush();
      }
    }
  } elseif (function_exists('ini_set')) {
    ini_set('zlib.output_compression_level', GZIP_LEVEL);
  }
}

// set the HTTP GET parameters manually if search_engine_friendly_urls is enabled
  if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') {
    if (strlen(getenv('PATH_INFO')) > 1) {
      $GET_array = array();
      $PHP_SELF = str_replace(getenv('PATH_INFO'), '', $PHP_SELF);
      $vars = explode('/', substr(getenv('PATH_INFO'), 1));
      do_magic_quotes_gpc($vars);
      for ($i=0, $n=sizeof($vars); $i<$n; $i++) {
        if (strpos($vars[$i], '[]')) {
          $GET_array[substr($vars[$i], 0, -2)][] = $vars[$i+1];
        } else {
          $HTTP_GET_VARS[$vars[$i]] = $vars[$i+1];
        }
        $i++;
      }

      if (sizeof($GET_array) > 0) {
        while (list($key, $value) = each($GET_array)) {
          $HTTP_GET_VARS[$key] = $value;
        }
      }
    }
  }

// define general functions used application-wide
  require(DIR_WS_FUNCTIONS . 'general.php');
  require(DIR_WS_FUNCTIONS . 'html_output.php');

// set the cookie domain
  $cookie_domain = (($request_type == 'NONSSL') ? HTTP_COOKIE_DOMAIN : HTTPS_COOKIE_DOMAIN);
  $cookie_path = (($request_type == 'NONSSL') ? HTTP_COOKIE_PATH : HTTPS_COOKIE_PATH);

// include cache functions if enabled
  if (USE_CACHE == 'true') include(DIR_WS_FUNCTIONS . 'cache.php');

// include shopping cart class
  require(DIR_WS_CLASSES . 'shopping_cart.php');

// include navigation history class
  require(DIR_WS_CLASSES . 'navigation_history.php');

// define how the session functions will be used
  require(DIR_WS_FUNCTIONS . 'sessions.php');

// set the session name and save path
  tep_session_name('osCsid');
  tep_session_save_path(SESSION_WRITE_DIRECTORY);

// set the session cookie parameters
   if (function_exists('session_set_cookie_params')) {
    session_set_cookie_params(0, $cookie_path, $cookie_domain);
  } elseif (function_exists('ini_set')) {
    ini_set('session.cookie_lifetime', '0');
    ini_set('session.cookie_path', $cookie_path);
    ini_set('session.cookie_domain', $cookie_domain);
  }

  @ini_set('session.use_only_cookies', (SESSION_FORCE_COOKIE_USE == 'True') ? 1 : 0);

// set the session ID if it exists
   if ( SESSION_FORCE_COOKIE_USE == 'False' ) {
  if ( isset($HTTP_GET_VARS[tep_session_name()]) && (!isset($HTTP_COOKIE_VARS[tep_session_name()]) || ($HTTP_COOKIE_VARS[tep_session_name()] != $HTTP_GET_VARS[tep_session_name()])) ) {
    tep_session_id($HTTP_GET_VARS[tep_session_name()]);
  } elseif ( isset($HTTP_POST_VARS[tep_session_name()]) && (!isset($HTTP_COOKIE_VARS[tep_session_name()]) || ($HTTP_COOKIE_VARS[tep_session_name()] != $HTTP_POST_VARS[tep_session_name()])) ) {
    tep_session_id($HTTP_POST_VARS[tep_session_name()]);
  }
}

// start the session
  $session_started = false;
  if (SESSION_FORCE_COOKIE_USE == 'True') {
    tep_setcookie('cookie_test', 'please_accept_for_session', time()+60*60*24*30, $cookie_path, $cookie_domain);

    if (isset($HTTP_COOKIE_VARS['cookie_test'])) {
      tep_session_start();
      $session_started = true;
    }
  } elseif (SESSION_BLOCK_SPIDERS == 'True') {
    $user_agent = strtolower(getenv('HTTP_USER_AGENT'));
    $spider_flag = false;

    if (tep_not_null($user_agent)) {
      $spiders = file(DIR_WS_INCLUDES . 'spiders.txt');

      for ($i=0, $n=sizeof($spiders); $i<$n; $i++) {
        if (tep_not_null($spiders[$i])) {
          if (is_integer(strpos($user_agent, trim($spiders[$i])))) {
            $spider_flag = true;
            break;
          }
        }
      }
    }

    if ($spider_flag == false) {
      tep_session_start();
      $session_started = true;
    }
  } else {
    tep_session_start();
    $session_started = true;
  }

  if ( ($session_started == true) && (PHP_VERSION >= 4.3) && function_exists('ini_get') && (ini_get('register_globals') == false) ) {
    extract($_SESSION, EXTR_OVERWRITE+EXTR_REFS);
  }

// initialize a session token
  if (!tep_session_is_registered('sessiontoken')) {
    $sessiontoken = md5(tep_rand() . tep_rand() . tep_rand() . tep_rand());
    tep_session_register('sessiontoken');
  }

// set SID once, even if empty
  $SID = (defined('SID') ? SID : '');

// verify the ssl_session_id if the feature is enabled
  if ( ($request_type == 'SSL') && (SESSION_CHECK_SSL_SESSION_ID == 'True') && (ENABLE_SSL == true) && ($session_started == true) ) {
    $ssl_session_id = getenv('SSL_SESSION_ID');
    if (!tep_session_is_registered('SSL_SESSION_ID')) {
      $SESSION_SSL_ID = $ssl_session_id;
      tep_session_register('SESSION_SSL_ID');
    }

    if ($SESSION_SSL_ID != $ssl_session_id) {
      tep_session_destroy();
      tep_redirect(tep_href_link(FILENAME_SSL_CHECK));
    }
  }

// verify the browser user agent if the feature is enabled
  if (SESSION_CHECK_USER_AGENT == 'True') {
    $http_user_agent = getenv('HTTP_USER_AGENT');
    if (!tep_session_is_registered('SESSION_USER_AGENT')) {
      $SESSION_USER_AGENT = $http_user_agent;
      tep_session_register('SESSION_USER_AGENT');
    }

    if ($SESSION_USER_AGENT != $http_user_agent) {
      tep_session_destroy();
      tep_redirect(tep_href_link(FILENAME_LOGIN));
    }
  }

// verify the IP address if the feature is enabled
  if (SESSION_CHECK_IP_ADDRESS == 'True') {
    $ip_address = tep_get_ip_address();
    if (!tep_session_is_registered('SESSION_IP_ADDRESS')) {
      $SESSION_IP_ADDRESS = $ip_address;
      tep_session_register('SESSION_IP_ADDRESS');
    }

    if ($SESSION_IP_ADDRESS != $ip_address) {
      tep_session_destroy();
      tep_redirect(tep_href_link(FILENAME_LOGIN));
    }
  }

// create the shopping cart
  if (!tep_session_is_registered('cart') || !is_object($cart)) {
    tep_session_register('cart');
    $cart = new shoppingCart;
  }

// include currencies class and create an instance
  require(DIR_WS_CLASSES . 'currencies.php');
  $currencies = new currencies();

// include the mail classes
  require(DIR_WS_CLASSES . 'mime.php');
  require(DIR_WS_CLASSES . 'email.php');

// set the language
  if (!tep_session_is_registered('language') || isset($HTTP_GET_VARS['language'])) {
    if (!tep_session_is_registered('language')) {
      tep_session_register('language');
      tep_session_register('languages_id');
    }

    include(DIR_WS_CLASSES . 'language.php');
    $lng = new language();

    if (isset($HTTP_GET_VARS['language']) && tep_not_null($HTTP_GET_VARS['language'])) {
      $lng->set_language($HTTP_GET_VARS['language']);
    } else {
      $lng->get_browser_language();
    }

    $language = $lng->language['directory'];
    $languages_id = $lng->language['id'];
  }

/**
  * ULTIMATE Seo Urls 5 PRO by FWR Media
  */
  Usu_Main::i()->setVar( 'languages_id', $languages_id )
               ->setVar( 'request_type', $request_type ) 
               ->setVar( 'session_started', $session_started ) 
               ->setVar( 'sid', $SID ) 
               ->setVar( 'language', $language )
               ->setVar( 'filename', $PHP_SELF )
               ->initiate( ( isset( $lng ) && ( $lng instanceof language ) ) ? $lng : array(), $languages_id, $language );

// include the language translations
  $_system_locale_numeric = setlocale(LC_NUMERIC, 0);
  require(DIR_WS_LANGUAGES . $language . '.php');
  setlocale(LC_NUMERIC, $_system_locale_numeric); // Prevent LC_ALL from setting LC_NUMERIC to a locale with 1,0 float/decimal values instead of 1.0 (see bug #634)

// currency
  if (!tep_session_is_registered('currency') || isset($HTTP_GET_VARS['currency']) || ( (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && (LANGUAGE_CURRENCY != $currency) ) ) {
    if (!tep_session_is_registered('currency')) tep_session_register('currency');

    if (isset($HTTP_GET_VARS['currency']) && $currencies->is_set($HTTP_GET_VARS['currency'])) {
      $currency = $HTTP_GET_VARS['currency'];
    } else {
      $currency = (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY;
    }
  }

// navigation history
  if (!tep_session_is_registered('navigation') || !is_object($navigation)) {
    tep_session_register('navigation');
    $navigation = new navigationHistory;
  }
  $navigation->add_current_page();

// action recorder
  include('includes/classes/action_recorder.php');

// Shopping cart actions
  if (isset($HTTP_GET_VARS['action'])) {
// redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled
    if ($session_started == false) {
      tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE));
    }

    if (DISPLAY_CART == 'true') {
              $goto =  FILENAME_SHOPPING_CART;
              $parameters = array('action', 'cPath', 'products_id', 'pid');
        /* Optional Related Products (ORP) */
            } elseif ($HTTP_GET_VARS['action'] == 'rp_buy_now') {
              $goto = FILENAME_PRODUCT_INFO;
              $parameters = array('action', 'pid', 'rp_products_id');
        //ORP: end
            } else {
      $goto = $PHP_SELF;
      if ($HTTP_GET_VARS['action'] == 'buy_now') {
        $parameters = array('action', 'pid', 'products_id');
      } else {
        $parameters = array('action', 'pid');
      }
    }
    switch ($HTTP_GET_VARS['action']) {
      // customer wants to update the product quantity in their shopping cart
      case 'update_product' : for ($i=0, $n=sizeof($HTTP_POST_VARS['products_id']); $i<$n; $i++) {
                                if (in_array($HTTP_POST_VARS['products_id'][$i], (is_array($HTTP_POST_VARS['cart_delete']) ? $HTTP_POST_VARS['cart_delete'] : array()))) {
                                  $cart->remove($HTTP_POST_VARS['products_id'][$i]);
                                } else {
                                  $attributes = ($HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]]) ? $HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]] : '';
                                  $cart->add_cart($HTTP_POST_VARS['products_id'][$i], $HTTP_POST_VARS['cart_quantity'][$i], $attributes, false);
                                }
                              }
                              tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                              break;
      // customer adds a product from the products page
      case 'add_product' :    if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
                                $attributes = isset($HTTP_POST_VARS['id']) ? $HTTP_POST_VARS['id'] : '';
                                $cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $attributes))+1, $attributes);
                              }
                              tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                              break;
      // customer removes a product from their shopping cart
      case 'remove_product' : if (isset($HTTP_GET_VARS['products_id'])) {
                                $cart->remove($HTTP_GET_VARS['products_id']);
                              }
                              tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                              break;
      // performed by the 'buy now' button in product listings and review page
      case 'buy_now' :        if (isset($HTTP_GET_VARS['products_id'])) {
                                if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) {
                                  tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id']));
                                } else {
                                  $cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1);
                                }
                              }
                              tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id']));
                              break;
      /* Optional Related Products (ORP) */
          case 'rp_buy_now' :     if (isset($HTTP_GET_VARS['rp_products_id'])) {
                                    if (tep_has_product_attributes($HTTP_GET_VARS['rp_products_id'])) {
                                      tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['rp_products_id']));
                                    } else {
                                      $cart->add_cart($HTTP_GET_VARS['rp_products_id'], $cart->get_quantity($HTTP_GET_VARS['rp_products_id'])+1);
                                    }
                                  }
                                  tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                                  break;
          //ORP: end
          case 'notify' :         if (tep_session_is_registered('customer_id')) {
                                if (isset($HTTP_GET_VARS['products_id'])) {
                                  $notify = $HTTP_GET_VARS['products_id'];
                                } elseif (isset($HTTP_GET_VARS['notify'])) {
                                  $notify = $HTTP_GET_VARS['notify'];
                                } elseif (isset($HTTP_POST_VARS['notify'])) {
                                  $notify = $HTTP_POST_VARS['notify'];
                                } else {
                                  tep_redirect(tep_href_link($PHP_SELF, tep_get_all_get_params(array('action', 'notify'))));
                                }
                                if (!is_array($notify)) $notify = array($notify);
                                for ($i=0, $n=sizeof($notify); $i<$n; $i++) {
                                  $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . (int)$notify[$i] . "' and customers_id = '" . (int)$customer_id . "'");
                                  $check = tep_db_fetch_array($check_query);
                                  if ($check['count'] < 1) {
                                    tep_db_query("insert into " . TABLE_PRODUCTS_NOTIFICATIONS . " (products_id, customers_id, date_added) values ('" . (int)$notify[$i] . "', '" . (int)$customer_id . "', now())");
                                  }
                                }
                                tep_redirect(tep_href_link($PHP_SELF, tep_get_all_get_params(array('action', 'notify'))));
                              } else {
                                $navigation->set_snapshot();
                                tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
                              }
                              break;
      case 'notify_remove' :  if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['products_id'])) {
                                $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and customers_id = '" . (int)$customer_id . "'");
                                $check = tep_db_fetch_array($check_query);
                                if ($check['count'] > 0) {
                                  tep_db_query("delete from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and customers_id = '" . (int)$customer_id . "'");
                                }
                                tep_redirect(tep_href_link($PHP_SELF, tep_get_all_get_params(array('action'))));
                              } else {
                                $navigation->set_snapshot();
                                tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
                              }
                              break;
      case 'cust_order' :     if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['pid'])) {
                                if (tep_has_product_attributes($HTTP_GET_VARS['pid'])) {
                                  tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['pid']));
                                } else {
                                  $cart->add_cart($HTTP_GET_VARS['pid'], $cart->get_quantity($HTTP_GET_VARS['pid'])+1);
                                }
                              }
                              tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                              break;
    }
  }

// include the who's online functions
  require(DIR_WS_FUNCTIONS . 'whos_online.php');
  tep_update_whos_online();

// include the password crypto functions
  require(DIR_WS_FUNCTIONS . 'password_funcs.php');

// include validation functions (right now only email address)
  require(DIR_WS_FUNCTIONS . 'validations.php');

// split-page-results
  require(DIR_WS_CLASSES . 'split_page_results.php');

// infobox
  require(DIR_WS_CLASSES . 'boxes.php');

// auto activate and expire banners
  require(DIR_WS_FUNCTIONS . 'banner.php');
  tep_activate_banners();
  tep_expire_banners();

// auto expire special products
  require(DIR_WS_FUNCTIONS . 'specials.php');
  tep_start_specials();
  tep_expire_specials();
  
// BOF: Featured Products
  require(DIR_WS_FUNCTIONS . 'featured.php');
  tep_expire_featured();

  require(DIR_WS_CLASSES . 'osc_template.php');
  $oscTemplate = new oscTemplate();

 // calculate category path
  if (isset($HTTP_GET_VARS['cPath'])) {
    $cPath = $HTTP_GET_VARS['cPath'];
    if (tep_not_null($cPath)) {
      $cPath_array = tep_parse_category_path($cPath);
      $categories_query = tep_db_query("select cpath from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$cPath_array[sizeof($cPath_array)-1] . "'");
     if ( !tep_db_num_rows($categories_query) ) {
       //not found categories
       //redirect to $current_category_id = 0;
       $result = http_error_handler('302');
     } else {
       $new = tep_db_fetch_array($categories_query);
       $new_cPath = $new['cpath'];
       if ( tep_not_null($new_cPath) ) {
         if ( isset($HTTP_GET_VARS['cPath']) && $HTTP_GET_VARS['cPath'] !== $new_cPath) {
           header("HTTP/1.0 301 Moved Permanently");
           tep_redirect(tep_href_link($PHP_SELF, 'cPath=' . $new_cPath . '&' . tep_get_all_get_params(array('cPath'))) );
         }
       }
     }
    }
    if ( isset($HTTP_GET_VARS['products_id']) && !tep_get_validate_product_cpath($HTTP_GET_VARS['products_id'], $cPath) ) {
      $cPath = tep_get_product_path($HTTP_GET_VARS['products_id']);
      //redirect to product base
      $path_link = '';
      if (tep_not_null($cPath)) {
        $path_link = 'cPath=' . $cPath . '&';
      }
      header("HTTP/1.0 301 Moved Permanently");
      tep_redirect(tep_href_link($PHP_SELF, $path_link . tep_get_all_get_params(array('cPath'))) );
    }
   } elseif ( isset($_GET['products_id']) && !isset($_GET['manufacturers_id']) ) {
     $cPath = tep_get_product_path($_GET['products_id']);
   } else {
     $cPath = '';
   }
 
   if ( !empty($cPath) ) {
     $cPath_array = tep_parse_category_path($cPath);
     $cPath = implode('_', $cPath_array);
     $current_category_id = $cPath_array[(sizeof($cPath_array)-1)];
   } else {
     $current_category_id = 0;
  }

// include the breadcrumb class and start the breadcrumb trail
  require(DIR_WS_CLASSES . 'breadcrumb.php');
  $breadcrumb = new breadcrumb;
  $breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER);

// add category names or the manufacturer name to the breadcrumb trail
  if (isset($cPath_array)) {
    for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) {
      $categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'");
      if (tep_db_num_rows($categories_query) > 0) {
        $categories = tep_db_fetch_array($categories_query);
        $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1)))));
      } else {
        header("HTTP/1.0 404 Not Found");
        exit;
      }
    }
  } elseif (isset($HTTP_GET_VARS['manufacturers_id'])) {
    $manufacturers_query = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
    if (tep_db_num_rows($manufacturers_query)) {
      $manufacturers = tep_db_fetch_array($manufacturers_query);
      $breadcrumb->add($manufacturers['manufacturers_name'], tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id']));
    }
  }

// add the products model to the breadcrumb trail
  if (isset($HTTP_GET_VARS['products_id'])) {
    $model_query = tep_db_query("select products_model from " . TABLE_PRODUCTS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'");
    if (tep_db_num_rows($model_query)) {
      $model = tep_db_fetch_array($model_query);
      $breadcrumb->add($model['products_model'], tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $HTTP_GET_VARS['products_id']));
    }
  }
  
  
// added code to prepare for the title tag, description tag & keywords tag - By Gemrock
// IF IT'S FIRST TIME TO RUN, THEN ADD 3 NEW FIELDS - CAN BE DELETED ONCE RUN SUCCESSFULLY
  if (!tep_db_query("SELECT title_tag FROM " . TABLE_PRODUCTS_DESCRIPTION)){
      tep_db_query("ALTER TABLE " . TABLE_PRODUCTS_DESCRIPTION . " ADD COLUMN title_tag VARCHAR(255) NULL, ADD COLUMN desc_tag TEXT NULL, ADD COLUMN keywords_tag VARCHAR(255) NULL");
    }
  if (!tep_db_query("SELECT title_tag FROM " . TABLE_CATEGORIES_DESCRIPTION)){
      tep_db_query("ALTER TABLE " . TABLE_CATEGORIES_DESCRIPTION . " ADD COLUMN title_tag VARCHAR(255) NULL, ADD COLUMN desc_tag TEXT NULL, ADD COLUMN keywords_tag VARCHAR(255) NULL");
  }
// END OF CODE ADDING FIELDS
  if (isset($HTTP_GET_VARS['products_id'])) {
    $header_tags_query = tep_db_query("select products_name, products_description, title_tag, desc_tag, keywords_tag from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and language_id = '" . (int)$languages_id . "'");
    if (tep_db_num_rows($header_tags_query)) {
      $header_tags = tep_db_fetch_array($header_tags_query);
      $header_tags[products_name]= trim($header_tags[products_name]);
      $header_tags[title_tag]= trim(strip_tags($header_tags[title_tag]));
      $header_tags[desc_tag]= trim(strip_tags($header_tags[desc_tag]));
      $header_tags[keywords_tag]= trim(strip_tags($header_tags[keywords_tag]));
      $header_tags[products_description] = substr(preg_replace('/\s\s+/', ' ',(strip_tags($header_tags[products_description]))),0,1000);
      // if a tag is less than 2 characters, then use default
      if (strlen($header_tags[title_tag])< 2) {
        //set product name as page title
        $header_tags[title_tag]= $header_tags[products_name];
        }
        //add category name to page title
      if (strlen($categories['categories_name'])>1) $header_tags[title_tag] = $categories['categories_name'] . ' ' . $header_tags[title_tag];
      if (strlen($manufacturers['manufacturers_name'])>1) $header_tags[title_tag] .= ' ' . $manufacturers['manufacturers_name'] . ' ' . $header_tags[title_tag];
      if (strlen($header_tags[desc_tag])< 2) $header_tags[desc_tag] = $header_tags[products_description];
      if (strlen($header_tags[keywords_tag])< 2) $header_tags[keywords_tag] = $header_tags[products_name];
    }
}
// end of added code - By Gemrock

  
  
  

// initialize the message stack for output messages
  require(DIR_WS_CLASSES . 'message_stack.php');
  $messageStack = new messageStack;
?>

 

Can someone figure out whats wrong ? I need to be redirected to the same page.

Thanks :)

Link to comment
Share on other sites

The most likely problem is that $PHP_SELF is set incorrectly.  Check any mod_rewrite rules or the original link. 

I.e. I don't think the problem is in the code that you posted but somewhere else. 

Always back up before making changes.

Link to comment
Share on other sites

2 minutes ago, ecartz said:

The most likely problem is that $PHP_SELF is set incorrectly.  Check any mod_rewrite rules or the original link. 

I.e. I don't think the problem is in the code that you posted but somewhere else. 

I posted the complete application top file. can you help me check whats wrong with PHP_SELF ?

You mean in htaccess ?

Link to comment
Share on other sites

  • 3 weeks later...
8 hours ago, ecartz said:

This suggests that you should ask in the Ultimate SEO URLs thread. 

I turned off the plugin, cleared all cache, but still having the same problem. Where do you think i can look further ? any files containing the redirect ?

Link to comment
Share on other sites

12 minutes ago, Psytanium said:

I turned off the plugin, cleared all cache, but still having the same problem. Where do you think i can look further ? any files containing the redirect ?

First off, i I'd recommend using the utlimate seo urls add on supported by @Jack_mcs and not the other one which I think you're using. I couldn't get that other one to work with Phoenix. Jack actively supports his add on.

Also by memory the version of the add on you are using overrides core code (html_output.php amongst other files) + modifies your .htaccess file so switching it off isn't necessarily the same as not having it installed.

My question would be why you want to stop customers being directed to the shopping cart in the first place? If it is because you don't want them to leave the page, then I'd suggest looking at an ajax shopping cart add on, where a modal shopping cart pops up, and the customer stays on the same page.  For Phoenix there is one available as part of supporters code.

CE PHOENIX SUPPORTER

Support the Project, go PRO and get access to certified add ons

Full-time I am a C-suite executive of a large retail company in Australia. In my spare time, I enjoying learning about web-design.

Download the latest version of CE Phoenix from gitHub here

Link to comment
Share on other sites

3 minutes ago, peterpil19 said:

First off, i I'd recommend using the utlimate seo urls add on supported by @Jack_mcs and not the other one which I think you're using. I couldn't get that other one to work with Phoenix. Jack actively supports his add on.

Also by memory the version of the add on you are using overrides core code (html_output.php amongst other files) + modifies your .htaccess file so switching it off isn't necessarily the same as not having it installed.

My question would be why you want to stop customers being directed to the shopping cart in the first place? If it is because you don't want them to leave the page, then I'd suggest looking at an ajax shopping cart add on, where a modal shopping cart pops up, and the customer stays on the same page.  For Phoenix there is one available as part of supporters code.

Hi Peter,

I will take your recommendation about switching add-on into consideration, but the only reason I'm afraid of switching is loosing page raking on search engines, Google will need few months to re-index the new URLs, it happened to me before.

I'm not sure if its something related to the add-on, because i turned it off and still having wrong redirects, but as you said, it may be some changes in the core files.

I added a popup shopping cart when a user click buy now, but still the modal add-on require the PHP_SELF to work properly.

Link to comment
Share on other sites

No worries, just a suggestion, as the other add on is actively maintained. I switched when I moved to Phoenix and Jack's add on kept my urls the same so no impact to SEO rankings.

I'm a little confused. You mentioned this issue only appears when you have "Display_Cart' set to 'False'? If putting it back to True solves it and you are planning to use a modal cart, then no need to have it set to 'False'?

Per Matt's suggestion above, try checking the rewrite rules in your .htaccess file. If you have turned Ultimate SEO URLs 5 off, try deleting all the  lines you added to .htaccess file as part of its installation and see if that works.

Your application_top.php is modified extensively, including the section dealing with "Display_Cart" and other areas relating to PHP_SELF. Looking at the code, simply turning off the SEO Urls add on won't be the same as not having installed it in the first place.

CE PHOENIX SUPPORTER

Support the Project, go PRO and get access to certified add ons

Full-time I am a C-suite executive of a large retail company in Australia. In my spare time, I enjoying learning about web-design.

Download the latest version of CE Phoenix from gitHub here

Link to comment
Share on other sites

4 hours ago, Psytanium said:

I will take your recommendation about switching add-on into consideration, but the only reason I'm afraid of switching is loosing page raking on search engines, Google will need few months to re-index the new URLs, it happened to me before.

I'm not sure if its something related to the add-on, because i turned it off and still having wrong redirects, but as you said, it may be some changes in the core files.

If you are using the default rewrite in SEO 5, then the url will be identical in Ultimate SEO. I think the url's are still converted correctly if not but I am not sure.

As for turning SEO 5 off, as I recall, it doesn't completely turn off. You have to turn it off in the settings and then remove the code from the application_top file to have it not affect your shop. But if you remove the code in that file, be sure to replace it with the original.

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

All of My Addons

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

@peterpil19 do you know any addon to make the shopping cart popup as modal ? im using eCommerce 2.3.4

Because i rolled back the original file modified for SEO URL 5, and htaccess cleared but still having this problem. Maybe i leave the problem as it is but use a modal for the shopping cart when Buy Now is clicked.

Thanks

Link to comment
Share on other sites

26 minutes ago, Psytanium said:

do you know any addon to make the shopping cart popup as modal ? im using eCommerce 2.3.4

There is a free add-on for this that is given to Phoenix supporters - it may be a good time for you to upgrade your shop to Phoenix.

Link to comment
Share on other sites

1 hour ago, Psytanium said:

do you know any addon to make the shopping cart popup as modal ? im using eCommerce 2.3.4

There are several popup addons. Which one to use depends on which is compatible with your shop. You can search the apps section for modal login but I think this is the support thread for the one you want. It's not really a support thread but is where the addon was developed so I think you can find the link to it in that thread.

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

All of My Addons

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

7 hours ago, Psytanium said:

@peterpil19 do you know any addon to make the shopping cart popup as modal ? im using eCommerce 2.3.4

Because i rolled back the original file modified for SEO URL 5, and htaccess cleared but still having this problem. Maybe i leave the problem as it is but use a modal for the shopping cart when Buy Now is clicked.

Thanks

100% agree with @Heatherbell.

Frozen and prior versions are now end of life.

Upgrading to Phoenix is not too difficult.

You can ask someone (e.g. a certified developer) for help or if you are comfortable you can attempt it yourself. In the Phoenix Club, there's a topic which explains how to perform an upgrade.

Also, if you sign up as a Phoenix Supporter, as well as supporting the project moving forward, you get access to loads of free add ons.

 

Peter

 

CE PHOENIX SUPPORTER

Support the Project, go PRO and get access to certified add ons

Full-time I am a C-suite executive of a large retail company in Australia. In my spare time, I enjoying learning about web-design.

Download the latest version of CE Phoenix from gitHub here

Link to comment
Share on other sites

11 hours ago, Jack_mcs said:

There are several popup addons. Which one to use depends on which is compatible with your shop. You can search the apps section for modal login but I think this is the support thread for the one you want. It's not really a support thread but is where the addon was developed so I think you can find the link to it in that thread.

The thread you sent me is for login modal, I'm looking for shopping cart modal when users click the Buy Now button. You think we can find one for osc2.3.4 ?

Link to comment
Share on other sites

6 hours ago, Psytanium said:

The thread you sent me is for login modal, I'm looking for shopping cart modal when users click the Buy Now button.

I'm sorry. I misunderstood what you are looking for. The only addon I aware of that does that is this one. It will work in Frozen, which is the version after yours, so there's a chance that it will work. It is an easy install so it would be worth trying. 

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

All of My Addons

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

On 5/26/2020 at 3:01 PM, Jack_mcs said:

I'm sorry. I misunderstood what you are looking for. The only addon I aware of that does that is this one. It will work in Frozen, which is the version after yours, so there's a chance that it will work. It is an easy install so it would be worth trying. 

This is exactly the same add-on I'm using, but for 2.3.4, the modal don't show without page loading.. The page load, this mean we still need PHP_SELF to get back to the same page.

Link to comment
Share on other sites

You should ask questions about a specific addon in the support thread for that addon. Your version is on the edge of where addons like that would work without changes but it could be made to work. 

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

All of My Addons

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

On 5/26/2020 at 3:01 PM, Jack_mcs said:

I'm sorry. I misunderstood what you are looking for. The only addon I aware of that does that is this one. It will work in Frozen, which is the version after yours, so there's a chance that it will work. It is an easy install so it would be worth trying. 

This is exactly the same add-on I'm using, but for 2.3.4, the modal don't show without page loading.. The page load, this mean we still need PHP_SELF to get back to the same page.

I tried to replace in application_top

case 'buy_now' :        if (isset($HTTP_GET_VARS['products_id'])) {
                                if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) {
                                  tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id']));
                                } else {
                                  $cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1);
                                }
                              }
                              tep_redirect(tep_href_link($goto, 'products_id=' . $HTTP_GET_VARS['products_id']));
                              break;

with this :

case 'buy_now' :        if (isset($HTTP_GET_VARS['products_id'])) {
                                if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) {
                                  tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id']));
                                } else {
                                  $cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1);
                                }
                              }
                              tep_redirect(tep_href_link($_SERVER['REQUEST_URI']));
                              break;

but when i click Buy Now button, the page keep redirecting and looping until i find 22 of the same item in terh shopping cart.

Can i using $_SERVER['REQUEST_URI'] in the redirect ?

Link to comment
Share on other sites

In case you missed it

Quote

You should ask questions about a specific addon in the support thread for that addon

 

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

All of My Addons

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...