Psytanium Posted May 24, 2020 Share Posted May 24, 2020 Hello, Can someone help me with the redirect problem ? 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; ?> Â Quote Link to comment Share on other sites More sharing options...
radhavallabh Posted May 24, 2020 Share Posted May 24, 2020 (edited) 21 hours ago, Jack_mcs said: Then I don't know why that might be happening. I've checked it here in several shops and it works in each. I tested it on a new install 1.0.6.1 no core change same error???? The Navbar Shopping cart is not working with Ultimate SEO URL... It creates the URL of the product without the name like this for example- https://xxx/xxx/-p-4{1}1.html It misses the generating the name for the URL... It seems really strange how it is working on your end? Regds./ radhavallabh  Edited May 24, 2020 by radhavallabh Quote Link to comment Share on other sites More sharing options...
Jack_mcs Posted May 24, 2020 Share Posted May 24, 2020 12 minutes ago, radhavallabh said: It seems really strange how it is working on your end? Try uninstalling it and installing the next-to-last version. It doesn't use a hook file for the application_top. Also, be sure you are on php 7.3. That is not  required but is what I run so maybe that is the difference. Quote 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 More sharing options...
radhavallabh Posted May 24, 2020 Share Posted May 24, 2020 10 minutes ago, Jack_mcs said: Try uninstalling it and installing the next-to-last version. It doesn't use a hook file for the application_top. Also, be sure you are on php 7.3. That is not  required but is what I run so maybe that is the difference. I use php 7.3 Installed and Reinstalled; It works perfectly throughout the site except for the Navbar Shopping Cart I am not able to understand how same thing is happening on fresh install as well?? Quote Link to comment Share on other sites More sharing options...
Jack_mcs Posted May 24, 2020 Share Posted May 24, 2020 1 hour ago, radhavallabh said: It works perfectly throughout the site except for the Navbar Shopping Cart I know you said this before but I was missing the "Navbar" in my reading of it so I was looking at the url of the product on the shopping cart page. I apologize for that mistake and the confusion it caused. The reason it is failing is because the code that generates the url is in a language file. That is perfectly fine code so I don't know why it fails. Maybe the code in this addon can't handle the language path? In any event, if you want it to work, find this line in includes/modules/navbar/templates/tpl_nb_shopping_cart.php echo sprintf(MODULE_NAVBAR_SHOPPING_CART_PRODUCT, $p['id'], $p['quantity'], $p['name']); and replace it with echo '<a class="dropdown-item" href="' . tep_href_link('product_info.php', 'products_id=' . $p['id']) . '">' . $p['quantity'] . ' x ' . $p['name'] . '</a>'; I see there is another language link in one of the footer modules so that would need to be changed to, if it bothers you. I don't see that the shopping cart change is needed. Search engines won't see it and it seems unlikely a customer would notice it, or care if they did. The cost of making the change is that you have to alter a core-code file so the trade-off may not be worth it. Just my opinion. Quote 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 More sharing options...
radhavallabh Posted May 25, 2020 Share Posted May 25, 2020 15 hours ago, Jack_mcs said: I know you said this before but I was missing the "Navbar" in my reading of it so I was looking at the url of the product on the shopping cart page. I apologize for that mistake and the confusion it caused. The reason it is failing is because the code that generates the url is in a language file. That is perfectly fine code so I don't know why it fails. Maybe the code in this addon can't handle the language path? In any event, if you want it to work, find this line in includes/modules/navbar/templates/tpl_nb_shopping_cart.php echo sprintf(MODULE_NAVBAR_SHOPPING_CART_PRODUCT, $p['id'], $p['quantity'], $p['name']); and replace it with echo '<a class="dropdown-item" href="' . tep_href_link('product_info.php', 'products_id=' . $p['id']) . '">' . $p['quantity'] . ' x ' . $p['name'] . '</a>'; I see there is another language link in one of the footer modules so that would need to be changed to, if it bothers you. I don't see that the shopping cart change is needed. Search engines won't see it and it seems unlikely a customer would notice it, or care if they did. The cost of making the change is that you have to alter a core-code file so the trade-off may not be worth it. Just my opinion. Thanks, I do agree with your opinion... Is it possible to exclude the above module from SEO URL rewriting or for any similar particular modules; That way no core code change shall be needed as broken URLS shall pose issues... Regds./ radhavallabh Quote Link to comment Share on other sites More sharing options...
Jack_mcs Posted May 25, 2020 Share Posted May 25, 2020 4 hours ago, radhavallabh said: Is it possible to exclude the above module from SEO URL rewriting or for any similar particular modules; That way no core code change shall be needed as broken URLS shall pose issues. It's possible but I think it would needlessly slow the code down. Also, the link is not broken. It is just missing the name. Quote 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 More sharing options...
radhavallabh Posted May 27, 2020 Share Posted May 27, 2020 @Jack_mcs@BrockleyJohn Hi, Can you please help me; I spoke to my host regarding this urlencoding curly braces issue due to which my shopping cart URLS are not working and i have to add extra code because of it; The Hosting guys are asking that which server setting or issue is causing it so that they could fix it for me.. Please can you guide me on what to tell them as these work on almost all servers used by the oscommerce community members. Your help and guidance will be deeply appreciated; Thank you in advance; Regds./ radhavallabh  Quote Link to comment Share on other sites More sharing options...
Jack_mcs Posted May 27, 2020 Share Posted May 27, 2020 @radhavallabhThere was a post about the setting, as I recall, but that was several years ago and I didn't mark it so I don't know which it is. But it would have been a "strict" setting, of which there are several on the server. If you can't find the answer, then maybe explaining to your host that the problem is that url's with brackets, ( {} ), fail. Maybe they can figure it out from that. Quote 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 More sharing options...
radhavallabh Posted May 30, 2020 Share Posted May 30, 2020 On 5/27/2020 at 4:23 PM, Jack_mcs said: @radhavallabhThere was a post about the setting, as I recall, but that was several years ago and I didn't mark it so I don't know which it is. But it would have been a "strict" setting, of which there are several on the server. If you can't find the answer, then maybe explaining to your host that the problem is that url's with brackets, ( {} ), fail. Maybe they can figure it out from that. I told them about it, but they still are not able to figure out... Quote Link to comment Share on other sites More sharing options...
Jack_mcs Posted May 30, 2020 Share Posted May 30, 2020 40 minutes ago, radhavallabh said: I told them about it, but they still are not able to figure out... I'm sorry but I don't know the answer and don't have a way to look into it. Hopefully someone else can help. Quote 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 More sharing options...
radhavallabh Posted May 30, 2020 Share Posted May 30, 2020 12 minutes ago, Jack_mcs said: I'm sorry but I don't know the answer and don't have a way to look into it. Hopefully someone else can help. Thank you... I have a query with your FAQ BS addon Phoenix version is there a support thread to it? As the admin FAQ manager does not display the form nor the list.. Kindly help please.. Regds./ radhavallabh Quote Link to comment Share on other sites More sharing options...
Jack_mcs Posted May 30, 2020 Share Posted May 30, 2020 33 minutes ago, radhavallabh said: I have a query with your FAQ BS addon Phoenix version is there a support thread to it? Oops, didn't notice I hadn't set the support thread option in apps. I've done that now and the support page is here. I'll upload the latest version shortly. Quote 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 More sharing options...
radhavallabh Posted May 30, 2020 Share Posted May 30, 2020 1 minute ago, Jack_mcs said: Oops, didn't notice I hadn't set the support thread option in apps. I've done that now and the support page is here. I'll upload the latest version shortly. Thank you so much dear! Will await it eagerly... Quote Link to comment Share on other sites More sharing options...
radhavallabh Posted May 30, 2020 Share Posted May 30, 2020 On 5/25/2020 at 3:09 PM, Jack_mcs said: It's possible but I think it would needlessly slow the code down. Also, the link is not broken. It is just missing the name. Could you please help me with the code so I could exclude shopping cart.php from my seo url addon.. the urlencode function from the previous suggestion from years ago is not working dear... Please kindly help me exclude it... Thank you in advance ; Regds./ radhavallabh Quote Link to comment Share on other sites More sharing options...
Jack_mcs Posted May 30, 2020 Share Posted May 30, 2020 5 hours ago, radhavallabh said: Could you please help me with the code so I could exclude shopping cart.php from my seo url addon. I'm sorry but I can't provide specific coding help like that in a support thread. Quote 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 More sharing options...
♥cigarsforless Posted July 11, 2020 Share Posted July 11, 2020 just upgraded to Phoenix 1.0.7.5 and Ultimate SEO URLs now seems to be broken, old rewritten urls work, but none of the site now produce the nice friendly urls is an update to this must have addon in the works? Quote Jim Bullen - President The Cigar Hut Group of Companies  still using these installed 2.3x add-ons: PWA, MVS, Easy Populate, Dynamic Sitemap, Featured Products, MVS Order Editor, MVS Shipping Estimator, Google XML Sitemap, About Us, Ad Tracker, Address Enhancer, Also Purchased, Backorders, Category Descriptions, Dynamic Meta Tags, Contact Us Email Subjects, Country state Selector, Extra Address Line, Order Number in Email Subject, OSC Affiliate, Product Extra Fields, Review Approval System, Reviews in Product Display, Sold Out, Sold Out (but Displayed), Ultimate SEO URL's, Updated Spiders, Welcome Email Password, Pending Order Email, Who's Online Enhancement, CCGV, Easy Discounts, Customer Comments, Request a Review, Sales Report, plus many many more! Link to comment Share on other sites More sharing options...
♥cigarsforless Posted July 11, 2020 Share Posted July 11, 2020 (edited) @Jack_mcs just noticed that html_output.php was updated in 1.0.7.4 so that overwrote the change made on initial install the function to replace that was in includes/functions/html_output.php it is now located in includes/functions/href_link.php is is just a matter of modifying the The HTML href link wrapper function in that file? Edited July 11, 2020 by cigarsforless Quote Jim Bullen - President The Cigar Hut Group of Companies  still using these installed 2.3x add-ons: PWA, MVS, Easy Populate, Dynamic Sitemap, Featured Products, MVS Order Editor, MVS Shipping Estimator, Google XML Sitemap, About Us, Ad Tracker, Address Enhancer, Also Purchased, Backorders, Category Descriptions, Dynamic Meta Tags, Contact Us Email Subjects, Country state Selector, Extra Address Line, Order Number in Email Subject, OSC Affiliate, Product Extra Fields, Review Approval System, Reviews in Product Display, Sold Out, Sold Out (but Displayed), Ultimate SEO URL's, Updated Spiders, Welcome Email Password, Pending Order Email, Who's Online Enhancement, CCGV, Easy Discounts, Customer Comments, Request a Review, Sales Report, plus many many more! Link to comment Share on other sites More sharing options...
♥cigarsforless Posted July 11, 2020 Share Posted July 11, 2020 yep, just edited includes/functions/href_link.php with the changed function and all is good Smoky Barnable 1 Quote Jim Bullen - President The Cigar Hut Group of Companies  still using these installed 2.3x add-ons: PWA, MVS, Easy Populate, Dynamic Sitemap, Featured Products, MVS Order Editor, MVS Shipping Estimator, Google XML Sitemap, About Us, Ad Tracker, Address Enhancer, Also Purchased, Backorders, Category Descriptions, Dynamic Meta Tags, Contact Us Email Subjects, Country state Selector, Extra Address Line, Order Number in Email Subject, OSC Affiliate, Product Extra Fields, Review Approval System, Reviews in Product Display, Sold Out, Sold Out (but Displayed), Ultimate SEO URL's, Updated Spiders, Welcome Email Password, Pending Order Email, Who's Online Enhancement, CCGV, Easy Discounts, Customer Comments, Request a Review, Sales Report, plus many many more! Link to comment Share on other sites More sharing options...
markg-uk Posted July 17, 2020 Share Posted July 17, 2020 (edited) I've just installed this - URLs look ok but I can't now login to the front end as a customer.  I'm using Phoenix 1.0.7.5 and followed the instructions. I noticed that tep_href_link had moved like said above - no problem there. Before the update, I get this in my logs when I login (and I could login ok): "POST /login.php?action=process HTTP/1.1" 302 - After the update, I see this: "POST /login.php/action/process HTTP/1.1" 200 17953 If I restore the original tep_href_link function, I can login ok of course. So something is changing the ? for / Any ideas? Edited July 17, 2020 by markg-uk Quote Link to comment Share on other sites More sharing options...
Jack_mcs Posted July 17, 2020 Share Posted July 17, 2020 @markg-ukTry leaving it installed but turn it off in admin. If that work, post you .htaccess file here. Quote 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 More sharing options...
markg-uk Posted July 17, 2020 Share Posted July 17, 2020 Thanks for the reply. I did actually already do that (plus I removed all the rewrites from .htaccess as a test) - neither made any difference. If I comment out these lines in seo_class.php: $link = str_replace('?', '/', $link); $link = str_replace('&', '/', $link); $link = str_replace('=', '/', $link); then the URLs are ok. Why I'm seeing the issue I'm not sure. I can't think of a reason I'd need those three lines with the URL format I want so I think I'm ok Quote Link to comment Share on other sites More sharing options...
♥cigarsforless Posted July 17, 2020 Share Posted July 17, 2020 old stock version of search engine safe urls set to true? that should be off as it never worked and was ancient to see if you have that as a holdover from previous versions of Phoenix open phpmyadmin and search for SEARCH_ENGINE_FRIENDLY_URLS in the configuration table (in configuration_key) that was removed from Phoenix in 1.0.5.3 but may still be there if you missed an update step if it is there, set to false in configuration_value this part of the code you commented out 43 minutes ago, markg-uk said: If I comment out these lines in seo_class.php: $link = str_replace('?', '/', $link); $link = str_replace('&', '/', $link); $link = str_replace('=', '/', $link); is only activated when $search_engine_safe = true and that is set by the above (now removed) configuration key SEARCH_ENGINE_FRIENDLY_URLS  set to true Quote Jim Bullen - President The Cigar Hut Group of Companies  still using these installed 2.3x add-ons: PWA, MVS, Easy Populate, Dynamic Sitemap, Featured Products, MVS Order Editor, MVS Shipping Estimator, Google XML Sitemap, About Us, Ad Tracker, Address Enhancer, Also Purchased, Backorders, Category Descriptions, Dynamic Meta Tags, Contact Us Email Subjects, Country state Selector, Extra Address Line, Order Number in Email Subject, OSC Affiliate, Product Extra Fields, Review Approval System, Reviews in Product Display, Sold Out, Sold Out (but Displayed), Ultimate SEO URL's, Updated Spiders, Welcome Email Password, Pending Order Email, Who's Online Enhancement, CCGV, Easy Discounts, Customer Comments, Request a Review, Sales Report, plus many many more! Link to comment Share on other sites More sharing options...
Jack_mcs Posted July 17, 2020 Share Posted July 17, 2020 @markg-ukPlease post your .htaccess file. Quote 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 More sharing options...
markg-uk Posted July 20, 2020 Share Posted July 20, 2020 Â Â 0 Â Advanced issue found â–² Â Â On 7/17/2020 at 4:21 PM, cigarsforless said: is only activated when $search_engine_safe = true and that is set by the above (now removed) configuration key SEARCH_ENGINE_FRIENDLY_URLSÂ Â set to true Ok - you're right. I commented this out as I have errors on for debugging and as you say, its been removed so was throwing an error. I had assumed it was set to true but the old site had it set to false. Anyway - thanks both. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.