path routing problem with the hosting
Everything starts from this post https://www.zen-cart.com/showthread....search-instead where eventually even another has the same problem of path path
I have a problem that the hosting service can not resolve, I hope that you will. I stress before it all runs on localhost MAMP but not on the hosting, I made a change this
(https://pro-webs.net/blog/2010/03/21...tock-products/)
I get a debug file and rederict not work why?
PHP Code:
[03-May-2016 13:29:29 Europe/Rome] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/balblabla/public_html/includes/templates/mobishop_blue/common/tpl_header.php:230) in /home/balblabla/public_html/includes/modules/pages/product_info/main_template_vars.php on line 34
[03-May-2016 13:29:29 Europe/Rome] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/balblabla/public_html/includes/templates/mobishop_blue/common/tpl_header.php:230) in /home/balblabla/public_html/includes/modules/pages/product_info/main_template_vars.php on line 35
[03-May-2016 13:29:29 Europe/Rome] PHP Warning: require(/home/balblabla/public_html/includes/templates/mobishop_blue/templates): failed to open stream: No such device in /home/balblabla/public_html/includes/modules/pages/product_info/main_template_vars.php on line 180
[03-May-2016 13:29:29 Europe/Rome] PHP Fatal error: require(): Failed opening required 'includes/templates/mobishop_blue/templates' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/balblabla/public_html/includes/modules/pages/product_info/main_template_vars.php on line 180
I think that hosting has some restrictions but which one? they tell me that the code is wrong, but if it works in localhost as may be the Melanie code?
Re: path routing problem with the hosting
Did you change the path from the localhost to the hosting server?
Also remove try changing
PHP Code:
.:/usr/lib/php:/usr/local/lib/php
To
PHP Code:
/usr/lib/php:/usr/local/lib/php
See if that helps
Re: path routing problem with the hosting
Hello, thanks for the reply but I do not understand where to change .:/usr/lib/php:/usr/local/lib/phpphp of MAMP which is on the pc runs and sur hosting that hosts the site that does not work , and hosting manager does not know what to do to blame the code that I try to put in /includes/modules/pages/product_info/main_template_vars.php
Re: path routing problem with the hosting
the idea that it works in MAMP does not necessarily mean it will work with your hosting company. configuration of shared web servers can be difficult and complex.
that said, it's pretty clear your redirect is not working. post the code for your redirect. i would make use of the included function zen_redirect which would ensure that the proper configuration gets used (and should work on both your MAMP and on the shared server).
Re: path routing problem with the hosting
It is what he said the assistance is not guaranteed to work with us. You can not be a little more clear what I should do maybe where to intervene Thanks
the code is this
In /includes/modules/pages/product_info/main_template_vars.php around line 31 find:
if ( $res->fields['total'] < 1 ) {
Just below this you will see
$tpl_page_body = '/tpl_product_info_noproduct.php';
Replace this line with
$requeststring = (isset($_GET['cPath']))?'&cPath='. (int)$_GET['cPath']:'';
header( "HTTP/1.1 301 Moved Permanently" );
header('location:index.php?main_page=index'.$requeststring);
Re: path routing problem with the hosting
the error is here:
No such device in /home/balblabla/public_html/includes/modules/pages/product_info/main_template_vars.php on line 180
please post line 180.
Re: path routing problem with the hosting
Quote:
Originally Posted by
carlwhat
the error is here:
No such device in /home/balblabla/public_html/includes/modules/pages/product_info/main_template_vars.php on line 180
please post line 180.
It will be helpful to anyone trying to assist you if you could post the code for that line. Also and this may be a silly question. What is the purpose of the redirect? This may be helpful to understand your issue better.
Re: path routing problem with the hosting
Sorry for the delay in the response decalage time, place the entire file and the line 180.
The aim is that if a file does not exist in the DB instead of having an error 302 to a 404 face a rederict 301 to a specific page
HTML Code:
require($template->get_template_dir($tpl_page_body,DIR_WS_TEMPLATE, $current_page_base,'templates'). $tpl_page_body);
HTML Code:
<?php
/**
* product_info main_template_vars.php
*
* @package productTypes
* @copyright Copyright 2003-2012 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version GIT: $Id: Author: DrByte Fri Jul 6 11:57:44 2012 -0400 Modified in v1.5.1 $
*/
/*
* Extracts and constructs the data to be used in the product-type template tpl_TYPEHANDLER_info_display.php
*/
// This should be first line of the script:
$zco_notifier->notify('NOTIFY_MAIN_TEMPLATE_VARS_START_PRODUCT_INFO');
$module_show_categories = PRODUCT_INFO_CATEGORIES;
$sql = "select count(*) as total
from " . TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_DESCRIPTION . " pd
where p.products_status = '1'
and p.products_id = '" . (int)$_GET['products_id'] . "'
and pd.products_id = p.products_id
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'";
$res = $db->Execute($sql);
if ( $res->fields['total'] < 1 ) {
$requeststring = (isset($_GET['cPath']))?'&cPath='. (int)$_GET['cPath']:'';
header( "HTTP/1.1 301 Moved Permanently" );
header('location:index.php?main_page=featured_products'.$requeststring);
} else {
$tpl_page_body = '/tpl_product_info_display.php';
$zco_notifier->notify('NOTIFY_PRODUCT_VIEWS_HIT_INCREMENTOR', (int)$_GET['products_id']);
$sql = "select p.products_id, pd.products_name,
pd.products_description, p.products_model,
p.products_quantity, p.products_image,
pd.products_url, p.products_price,
p.products_tax_class_id, p.products_date_added,
p.products_date_available, p.manufacturers_id, p.products_quantity,
p.products_weight, p.products_priced_by_attribute, p.product_is_free,
p.products_qty_box_status,
p.products_quantity_order_max,
p.products_discount_type, p.products_discount_type_from, p.products_sort_order, p.products_price_sorter
from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd
where p.products_status = '1'
and p.products_id = '" . (int)$_GET['products_id'] . "'
and pd.products_id = p.products_id
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'";
$product_info = $db->Execute($sql);
$products_price_sorter = $product_info->fields['products_price_sorter'];
$products_price = $currencies->display_price($product_info->fields['products_price'],
zen_get_tax_rate($product_info->fields['products_tax_class_id']));
$manufacturers_name= zen_get_products_manufacturers_name((int)$_GET['products_id']);
if ($new_price = zen_get_products_special_price($product_info->fields['products_id'])) {
$specials_price = $currencies->display_price($new_price,
zen_get_tax_rate($product_info->fields['products_tax_class_id']));
}
// set flag for attributes module usage:
$flag_show_weight_attrib_for_this_prod_type = SHOW_PRODUCT_INFO_WEIGHT_ATTRIBUTES;
// get attributes
require(DIR_WS_MODULES . zen_get_module_directory(FILENAME_ATTRIBUTES));
// if review must be approved or disabled do not show review
$review_status = " and r.status = '1'";
$reviews_query = "select count(*) as count from " . TABLE_REVIEWS . " r, "
. TABLE_REVIEWS_DESCRIPTION . " rd
where r.products_id = '" . (int)$_GET['products_id'] . "'
and r.reviews_id = rd.reviews_id
and rd.languages_id = '" . (int)$_SESSION['languages_id'] . "'" .
$review_status;
$reviews = $db->Execute($reviews_query);
}
require(DIR_WS_MODULES . zen_get_module_directory('product_prev_next.php'));
$products_name = $product_info->fields['products_name'];
$products_model = $product_info->fields['products_model'];
// if no common markup tags in description, add line breaks for readability:
$products_description = (!preg_match('/(<br|<p|<div|<dd|<li|<span)/i', $product_info->fields['products_description']) ? nl2br($product_info->fields['products_description']) : $product_info->fields['products_description']);
if ($product_info->fields['products_image'] == '' and PRODUCTS_IMAGE_NO_IMAGE_STATUS == '1') {
$products_image = PRODUCTS_IMAGE_NO_IMAGE;
} else {
$products_image = $product_info->fields['products_image'];
}
$products_url = $product_info->fields['products_url'];
$products_date_available = $product_info->fields['products_date_available'];
$products_date_added = $product_info->fields['products_date_added'];
$products_manufacturer = $manufacturers_name;
$products_weight = $product_info->fields['products_weight'];
$products_quantity = $product_info->fields['products_quantity'];
$products_qty_box_status = $product_info->fields['products_qty_box_status'];
$products_quantity_order_max = $product_info->fields['products_quantity_order_max'];
$products_base_price = $currencies->display_price(zen_get_products_base_price((int)$_GET['products_id']),
zen_get_tax_rate($product_info->fields['products_tax_class_id']));
$product_is_free = $product_info->fields['product_is_free'];
$products_tax_class_id = $product_info->fields['products_tax_class_id'];
$module_show_categories = PRODUCT_INFO_CATEGORIES;
$module_next_previous = PRODUCT_INFO_PREVIOUS_NEXT;
$products_id_current = (int)$_GET['products_id'];
$products_discount_type = $product_info->fields['products_discount_type'];
$products_discount_type_from = $product_info->fields['products_discount_type_from'];
/**
* Load product-type-specific main_template_vars
*/
$prod_type_specific_vars_info = DIR_WS_MODULES . 'pages/' . $current_page_base . '/main_template_vars_product_type.php';
if (file_exists($prod_type_specific_vars_info)) {
include_once($prod_type_specific_vars_info);
}
$zco_notifier->notify('NOTIFY_MAIN_TEMPLATE_VARS_PRODUCT_TYPE_VARS_PRODUCT_INFO');
/**
* Load all *.PHP files from the /includes/templates/MYTEMPLATE/PAGENAME/extra_main_template_vars
*/
$extras_dir = $template->get_template_dir('.php', DIR_WS_TEMPLATE, $current_page_base . 'extra_main_template_vars', $current_page_base . '/' . 'extra_main_template_vars');
if ($dir = @dir($extras_dir)) {
while ($file = $dir->read()) {
if (!is_dir($extras_dir . '/' . $file)) {
if (preg_match('~^[^\._].*\.php$~i', $file) > 0) {
$directory_array[] = '/' . $file;
}
}
}
$dir->close();
}
if (sizeof($directory_array)) sort($directory_array);
for ($i = 0, $n = sizeof($directory_array); $i < $n; $i++) {
if (file_exists($extras_dir . $directory_array[$i])) include($extras_dir . $directory_array[$i]);
}
// build show flags from product type layout settings
$flag_show_product_info_starting_at = zen_get_show_product_switch($_GET['products_id'], 'starting_at');
$flag_show_product_info_model = zen_get_show_product_switch($_GET['products_id'], 'model');
$flag_show_product_info_weight = zen_get_show_product_switch($_GET['products_id'], 'weight');
$flag_show_product_info_quantity = zen_get_show_product_switch($_GET['products_id'], 'quantity');
$flag_show_product_info_manufacturer = zen_get_show_product_switch($_GET['products_id'], 'manufacturer');
$flag_show_product_info_in_cart_qty = zen_get_show_product_switch($_GET['products_id'], 'in_cart_qty');
$flag_show_product_info_reviews = zen_get_show_product_switch($_GET['products_id'], 'reviews');
$flag_show_product_info_reviews_count = zen_get_show_product_switch($_GET['products_id'], 'reviews_count');
$flag_show_product_info_date_available = zen_get_show_product_switch($_GET['products_id'], 'date_available');
$flag_show_product_info_date_added = zen_get_show_product_switch($_GET['products_id'], 'date_added');
$flag_show_product_info_url = zen_get_show_product_switch($_GET['products_id'], 'url');
$flag_show_product_info_additional_images = zen_get_show_product_switch($_GET['products_id'], 'additional_images');
$flag_show_product_info_free_shipping = zen_get_show_product_switch($_GET['products_id'], 'always_free_shipping_image_switch');
require(DIR_WS_MODULES . zen_get_module_directory(FILENAME_PRODUCTS_QUANTITY_DISCOUNTS));
$zco_notifier->notify('NOTIFY_MAIN_TEMPLATE_VARS_EXTRA_PRODUCT_INFO');
require($template->get_template_dir($tpl_page_body,DIR_WS_TEMPLATE, $current_page_base,'templates'). $tpl_page_body);
//require(DIR_WS_MODULES . zen_get_module_directory(FILENAME_ALSO_PURCHASED_PRODUCTS));
// This should be last line of the script:
$zco_notifier->notify('NOTIFY_MAIN_TEMPLATE_VARS_END_PRODUCT_INFO');
Re: path routing problem with the hosting
Quote:
The aim is that if a file does not exist in the DB instead of having an error 302 to a 404 face a rederict 301 to a specific page
First off "files" do not exist in the DB
Why don't you leave the ZenCart code alone?
Use htaccess for what you are seeking
Re: path routing problem with the hosting
... or, you could try using the built-in Zen Cart functions to perform your task. Change
Code:
$res = $db->Execute($sql);
if ( $res->fields['total'] < 1 ) {
$requeststring = (isset($_GET['cPath']))?'&cPath='. (int)$_GET['cPath']:'';
header( "HTTP/1.1 301 Moved Permanently" );
header('location:index.php?main_page=featured_products'.$requeststring);
} else {
to
Code:
$res = $db->Execute($sql);
if ( $res->fields['total'] < 1 ) {
zen_redirect (zen_href_link (FILENAME_FEATURED, (isset ($_GET['cPath'])) ? ('cPath=' . (int)$_GET['cPath']) : ''), 301);
} else {