Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Big problem - please help!


Guest

Recommended Posts

These warning messages keep coming up when the user gets to the checkout:

 

Warning: Division by zero in /data/members/paid/s/l/sleepingbeautyshetland.co.uk/htdocs/www/includes/classes/shipping.php on line 61

 

Warning: Division by zero in /data/members/paid/s/l/sleepingbeautyshetland.co.uk/htdocs/www/includes/classes/shipping.php on line 62

 

 

The code in place is as follows, can someone tell me whats wrong?

 

 

 

 

<?php

/*

$Id: shipping.php,v 1.23 2003/06/29 11:22:05 hpdl Exp $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2003 osCommerce

 

Released under the GNU General Public License

*/

 

class shipping {

var $modules;

 

// class constructor

function shipping($module = '') {

global $language, $PHP_SELF;

 

if (defined('MODULE_SHIPPING_INSTALLED') && tep_not_null(MODULE_SHIPPING_INSTALLED)) {

$this->modules = explode(';', MODULE_SHIPPING_INSTALLED);

 

$include_modules = array();

 

if ( (tep_not_null($module)) && (in_array(substr($module['id'], 0, strpos($module['id'], '_')) . '.' . substr($PHP_SELF, (strrpos($PHP_SELF, '.')+1)), $this->modules)) ) {

$include_modules[] = array('class' => substr($module['id'], 0, strpos($module['id'], '_')), 'file' => substr($module['id'], 0, strpos($module['id'], '_')) . '.' . substr($PHP_SELF, (strrpos($PHP_SELF, '.')+1)));

} else {

reset($this->modules);

while (list(, $value) = each($this->modules)) {

$class = substr($value, 0, strrpos($value, '.'));

$include_modules[] = array('class' => $class, 'file' => $value);

}

}

 

for ($i=0, $n=sizeof($include_modules); $i<$n; $i++) {

include(DIR_WS_LANGUAGES . $language . '/modules/shipping/' . $include_modules[$i]['file']);

include(DIR_WS_MODULES . 'shipping/' . $include_modules[$i]['file']);

 

$GLOBALS[$include_modules[$i]['class']] = new $include_modules[$i]['class'];

}

}

}

 

function quote($method = '', $module = '') {

global $total_weight, $shipping_weight, $shipping_quoted, $shipping_num_boxes;

 

$quotes_array = array();

 

if (is_array($this->modules)) {

$shipping_quoted = '';

$shipping_num_boxes = 1;

$shipping_weight = $total_weight;

 

if (SHIPPING_BOX_WEIGHT >= $shipping_weight*SHIPPING_BOX_PADDING/100) {

$shipping_weight = $shipping_weight+SHIPPING_BOX_WEIGHT;

} else {

$shipping_weight = $shipping_weight + ($shipping_weight*SHIPPING_BOX_PADDING/100);

}

 

if ($shipping_weight > SHIPPING_MAX_WEIGHT) { // Split into many boxes

$shipping_num_boxes = ceil($shipping_weight/SHIPPING_MAX_WEIGHT);

$shipping_weight = $shipping_weight/$shipping_num_boxes;

}

 

$include_quotes = array();

 

reset($this->modules);

while (list(, $value) = each($this->modules)) {

$class = substr($value, 0, strrpos($value, '.'));

if (tep_not_null($module)) {

if ( ($module == $class) && ($GLOBALS[$class]->enabled) ) {

$include_quotes[] = $class;

}

} elseif ($GLOBALS[$class]->enabled) {

$include_quotes[] = $class;

}

}

 

$size = sizeof($include_quotes);

for ($i=0; $i<$size; $i++) {

$quotes = $GLOBALS[$include_quotes[$i]]->quote($method);

if (is_array($quotes)) $quotes_array[] = $quotes;

}

}

 

return $quotes_array;

}

 

function cheapest() {

if (is_array($this->modules)) {

$rates = array();

 

reset($this->modules);

while (list(, $value) = each($this->modules)) {

$class = substr($value, 0, strrpos($value, '.'));

if ($GLOBALS[$class]->enabled) {

$quotes = $GLOBALS[$class]->quotes;

for ($i=0, $n=sizeof($quotes['methods']); $i<$n; $i++) {

if (isset($quotes['methods'][$i]['cost']) && tep_not_null($quotes['methods'][$i]['cost'])) {

$rates[] = array('id' => $quotes['id'] . '_' . $quotes['methods'][$i]['id'],

'title' => $quotes['module'] . ' (' . $quotes['methods'][$i]['title'] . ')',

'cost' => $quotes['methods'][$i]['cost']);

}

}

}

}

 

$cheapest = false;

for ($i=0, $n=sizeof($rates); $i<$n; $i++) {

if (is_array($cheapest)) {

if ($rates[$i]['cost'] < $cheapest['cost']) {

$cheapest = $rates[$i];

}

} else {

$cheapest = $rates[$i];

}

}

 

return $cheapest;

}

}

}

?>

Link to comment
Share on other sites

These warning messages keep coming up when the user gets to the checkout:

 

Warning: Division by zero in /data/members/paid/s/l/sleepingbeautyshetland.co.uk/htdocs/www/includes/classes/shipping.php on line 61

 

Warning: Division by zero in /data/members/paid/s/l/sleepingbeautyshetland.co.uk/htdocs/www/includes/classes/shipping.php on line 62

The code in place is as follows, can someone tell me whats wrong?

<?php

/*

  $Id: shipping.php,v 1.23 2003/06/29 11:22:05 hpdl Exp $

 

  osCommerce, Open Source E-Commerce Solutions

  http://www.oscommerce.com

 

  Copyright ? 2003 osCommerce

 

  Released under the GNU General Public License

*/

 

  class shipping {

    var $modules;

 

// class constructor

    function shipping($module = '') {

      global $language, $PHP_SELF;

 

      if (defined('MODULE_SHIPPING_INSTALLED') && tep_not_null(MODULE_SHIPPING_INSTALLED)) {

        $this->modules = explode(';', MODULE_SHIPPING_INSTALLED);

 

        $include_modules = array();

 

        if ( (tep_not_null($module)) && (in_array(substr($module['id'], 0, strpos($module['id'], '_')) . '.' . substr($PHP_SELF, (strrpos($PHP_SELF, '.')+1)), $this->modules)) ) {

          $include_modules[] = array('class' => substr($module['id'], 0, strpos($module['id'], '_')), 'file' => substr($module['id'], 0, strpos($module['id'], '_')) . '.' . substr($PHP_SELF, (strrpos($PHP_SELF, '.')+1)));

        } else {

          reset($this->modules);

          while (list(, $value) = each($this->modules)) {

            $class = substr($value, 0, strrpos($value, '.'));

            $include_modules[] = array('class' => $class, 'file' => $value);

          }

        }

 

        for ($i=0, $n=sizeof($include_modules); $i<$n; $i++) {

          include(DIR_WS_LANGUAGES . $language . '/modules/shipping/' . $include_modules[$i]['file']);

          include(DIR_WS_MODULES . 'shipping/' . $include_modules[$i]['file']);

 

          $GLOBALS[$include_modules[$i]['class']] = new $include_modules[$i]['class'];

        }

      }

    }

 

    function quote($method = '', $module = '') {

      global $total_weight, $shipping_weight, $shipping_quoted, $shipping_num_boxes;

 

      $quotes_array = array();

 

      if (is_array($this->modules)) {

        $shipping_quoted = '';

        $shipping_num_boxes = 1;

        $shipping_weight = $total_weight;

 

        if (SHIPPING_BOX_WEIGHT >= $shipping_weight*SHIPPING_BOX_PADDING/100) {

          $shipping_weight = $shipping_weight+SHIPPING_BOX_WEIGHT;

        } else {

          $shipping_weight = $shipping_weight + ($shipping_weight*SHIPPING_BOX_PADDING/100);

        }

 

        if ($shipping_weight > SHIPPING_MAX_WEIGHT) { // Split into many boxes

          $shipping_num_boxes = ceil($shipping_weight/SHIPPING_MAX_WEIGHT);

          $shipping_weight = $shipping_weight/$shipping_num_boxes;

        }

 

        $include_quotes = array();

 

        reset($this->modules);

        while (list(, $value) = each($this->modules)) {

          $class = substr($value, 0, strrpos($value, '.'));

          if (tep_not_null($module)) {

            if ( ($module == $class) && ($GLOBALS[$class]->enabled) ) {

              $include_quotes[] = $class;

            }

          } elseif ($GLOBALS[$class]->enabled) {

            $include_quotes[] = $class;

          }

        }

 

        $size = sizeof($include_quotes);

        for ($i=0; $i<$size; $i++) {

          $quotes = $GLOBALS[$include_quotes[$i]]->quote($method);

          if (is_array($quotes)) $quotes_array[] = $quotes;

        }

      }

 

      return $quotes_array;

    }

 

    function cheapest() {

      if (is_array($this->modules)) {

        $rates = array();

 

        reset($this->modules);

        while (list(, $value) = each($this->modules)) {

          $class = substr($value, 0, strrpos($value, '.'));

          if ($GLOBALS[$class]->enabled) {

            $quotes = $GLOBALS[$class]->quotes;

            for ($i=0, $n=sizeof($quotes['methods']); $i<$n; $i++) {

              if (isset($quotes['methods'][$i]['cost']) && tep_not_null($quotes['methods'][$i]['cost'])) {

                $rates[] = array('id' => $quotes['id'] . '_' . $quotes['methods'][$i]['id'],

                                'title' => $quotes['module'] . ' (' . $quotes['methods'][$i]['title'] . ')',

                                'cost' => $quotes['methods'][$i]['cost']);

              }

            }

          }

        }

 

        $cheapest = false;

        for ($i=0, $n=sizeof($rates); $i<$n; $i++) {

          if (is_array($cheapest)) {

            if ($rates[$i]['cost'] < $cheapest['cost']) {

              $cheapest = $rates[$i];

            }

          } else {

            $cheapest = $rates[$i];

          }

        }

 

        return $cheapest;

      }

    }

  }

?>

 

not sure so best guess, I think you may have you max shipping weight set to zero.

you can set that in admin.

Treasurer MFC

Link to comment
Share on other sites

not sure so best guess, I think you may have you max shipping weight set to zero.

you can set that in admin.

As Amanda said the SHIPPING_MAX_WEIGHT setting must currently be zero...set it to something higher.

 

Bobby

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...