Like the title said I'm getting a divided by zero error on a function. I'm pretty new so I don't know if I'm formatting the equation wrong or if I am not setting my arguments right...
<form name="terminal" action="" method="post">
Mass of Object(kg): <input class="inputbox" type="number" name="mass" value="" /><br />
Drag Coefficient: <select name="drag">
<option value="1.28">Flat Plate = 1.28</option>
<option value="1.14">Prism = 1.14</option>
<option value="0.3">Bullet Shape = 0.3</option>
<option value="0.1">Sphere = 0.1</option>
<option value="0.05">Airfoil = 0.05</option>
</select><br>
Frontal Area(m^2): <input class="inputbox" type="number" name="area" value="" /><br />
<input type="submit" class="submit" name="submit" value="Calculate Terminal Velocity!" />
</form>
<br>
<br>
<?php
if ($_POST['submit']) {
$mass = $_POST['mass'];
$drag = $_POST['drag'];
$area = $_POST['area'];
}
function terminalVelocity() {
$num1 = (19.6 * $mass) / ($drag * 1.229 * $area);
$terminal = sqrt($num1);
return $terminal;
}
if ($mass == '' OR $drag == '' OR $area == '') {
echo "Please enter values.";
} else if ($mass <= 0 OR $area <= 0) {
echo "Please enter values above 0.";
} else {
echo "The terminal velocity of the object is " . terminalVelocity() . "m/s.";
}
?>
Since you are using global variables inside your function you need to use them like this
function terminalVelocity()
{
global $mass,$drag,$area; //Global variables
$num1 = (19.6 * $mass) / ($drag * 1.229 * $area);
$terminal = sqrt($num1);
return $terminal;
}
or you may use function with arguments.
There are several other corrections you need to make. The complete code is
<?php
if (isset($_POST['submit']))
{
$mass = $_POST['mass'];
$drag = $_POST['drag'];
$area = $_POST['area'];
function terminalVelocity() {
global $mass,$drag,$area;
$num1 = (19.6 * $mass) / ($drag * 1.229 * $area);
$terminal = sqrt($num1);
return $terminal;
}
if ($mass == '' OR $drag == '' OR $area == '') {
echo "Please enter values.";
} else if ($mass <= 0 OR $area <= 0) {
echo "Please enter values above 0.";
} else {
echo "The terminal velocity of the object is " . terminalVelocity() . "m/s.";
}
}
?>
That being said, always try to avoid use of global. Either use arguments or have it inside a class.