一旦用户输入了起始温度并增加了温度,该代码应该为用户输出温度转换表

时间:2020-07-02 02:32:38

标签: php converters error-code

我的错误,因为用户输入了非数字值,如果用户输入了负值,则if else语句将递增值的值更改为正数,而如果起始值大于终止值,则更改为正值也不起作用。

<?php
$banner = "Self-referring Forms w/Data Validation";
include ("./header.php");
$start = "";
$stop = "";
$incr = "";
$error = "";
$output = "";
$checkResult = false;
$MAX_ITERATIONS = 100;
?>
<h2><?php echo $output; ?></h2>
<h3><?php echo $error; ?></h3>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" >
    <p id="para6">Starting Temperature:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input 
type="text" name="starting_number" size="12"<?php ?>/><br/>
    <p id="para6">Stop Temperature :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<input type="text" name="stop_number" size="12" /><br/>
    <p id="para6">Temperature Increment:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" 
name="increment_number" size="12" /><br/></p>
    <input id="para6" type="submit" value="Create Temperature Conversion Table" name="calculate"/> 



<?php
    error_reporting(E_ERROR | E_PARSE);
    try 
    {
        if($_SERVER["REQUEST_METHOD"] == "GET"){
        $start = "";
        $stop = "";
        $incr = "";
    }
    else if($_SERVER["REQUEST_METHOD"] == "POST")
    {
        $start=(double)trim($_POST["starting_number"]);
        $stop=(double)trim($_POST["stop_number"]);
        $incr=(double)trim($_POST["increment_number"]);
        $num = (double)($stop-$start)/$incr;
        if($start == "" || $stop == "" || $incr == "" || $num == "")
        {
            //means the user did not enter anything
            $error .= "The text boxes cannot be blank.";
            echo $error;
        }
        else if($num>$MAX_ITERATIONS)
        {
            $error .= "The conditions will cause too many iterations (max. 100), therefore (for the 
 sake of server resources) your request is denied.";
            echo $error;
        }

这是我需要帮助的地方

            else if($start >= $stop)
        {
            $start == $stop;
            $stop == $start;
        }
        else if($incr == "0")
        {
            $error .= "You must enter a non-zero increment.";
            echo $error;
        }
        else if($incr < "0")
        {
            $incr == $incr * (-1);
        }
        else if($start == input type="text" || $stop == input type="text" ||$incr == input 
type="text" || $num == input type="text")
        {
            $error .= "You must enter a numerical value";
            echo $error;
        }

其余的只是供您查看我其余代码的样子

            else
        {  
            echo "<table border='1'>";
            echo "<tr>";
            echo "<th>Celcius</th>";
            echo "<th>Fahrenheit</th>";
            echo "</tr>";
            for($i=$start; $i<=$stop; $i += $incr)
            {
                echo "<tr>";
                echo "<td>". $i . "°</td>";
                echo "<td>". (($i * 9/5) + 32 ). "°</td>";
                echo "</tr>";
            }
                echo "</table>";
                }
                if($error == "")
                {
                    $output = "";
                }
                else
                {
                    $error .= "<br/>Please try again.";
                }
        }
    }
    catch(DivisionByZeroError $e)
    {
        echo "The text boxes cannot be blank.";
    }
        catch(Exception $e) 
    {
        echo 'Please Enter correctly';
    }
?>
</form>
<?php
include ("./footer.php");
?>

0 个答案:

没有答案
相关问题