PHP Warning: Division by zero

Chip picture Chip · Aug 23, 2013 · Viewed 112.6k times · Source

I'm learning php and built an experimental form-based calculator (also using html & POST method) that returns values to a table. The calculator is functional when I enter my values and click submit, but I keep getting two "Division by zero" errors on the last line when I first run the code. I can't seem seem to find a logical solution or explanations when searching here or via Google. Any explanation you can provide to a newb will be appreciated.

<?php 

error_reporting(E_ALL ^ E_NOTICE);

//calculate the difference in price

$itemQty = $_POST['num1'];

$itemCost = $_POST['num2'];

$itemSale = $_POST['num3'];

$shipMat = $_POST['num4'];

$diffPrice = $itemSale - $itemCost;

$actual = ($diffPrice - $shipMat) * $itemQty;

$diffPricePercent = (($actual * 100) / $itemCost) / $itemQty ;

?>

Answer

S.A picture S.A · Aug 23, 2013

You need to wrap your form processing code in a conditional so it doesn't run when you first open the page. Something like so:

if($_POST['num1'] > 0 && $_POST['num2'] > 0 && $_POST['num3'] > 0 && $_POST['num4'] > 0){

  $itemQty = $_POST['num1'];
  $itemCost = $_POST['num2'];
  $itemSale = $_POST['num3'];
  $shipMat = $_POST['num4'];

  $diffPrice = $itemSale - $itemCost;
  $actual = ($diffPrice - $shipMat) * $itemQty;
  $diffPricePercent = (($actual * 100) / $itemCost) / $itemQty ;
}