PHP:从(输入)文本字段检索浮点值,非格式良好的数值错误

时间:2017-10-11 14:50:07

标签: php

我正在编写一个简单的PHP程序来计算用户BMI并返回一个字符串,指示他是在正常范围还是肥胖。我刚开始所以我需要从html输入元素中检索用户输入。问题是,我得到一个非常好的数值错误。这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>

        <?php require("header.php") ?>

        <title></title>
    </head>

    <body>

        <h1>Lab #05 -- BMI Calculator</h1>

        <br /><br /><br />

        <form action="Lab05b.php" method="post">
            <input id="imperial" name="imperial" type="text" value="0.00" /> &nbsp;&nbsp; <label for="imperial">Height in inches / centimeters</label>
            <br />
            <input id="metric" name="metric" type="text" value="0.00" /> &nbsp;&nbsp; <label for="metric">Weight in pounds / kilograms</label>
            <br /><br />
           <input type="radio" name="imperial" id="imperial" value="imperial" /> Imperial 
           <br />
           <input type="radio" name="metric" id="metric" value="metric" />  Metric
           <br /><br />
           <input type="submit" />
           &nbsp;
           <input type="reset" />
        </form>

        <?php require("footer.php"); ?>

    </body>
</html>

这里是Lab05b.php包括:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>

        <?php require("header.php") ?>
        <?php require("Lab05b_Functions.php") ?>;

        <title></title>
    </head>

    <body>

        <h1>Lab #05 -- BMI Calculator</h1>

        <br /><br /><br />

        <?php echo "<p style='color: <?php echo $color; ?>' ?>Your body mass index is in the {$result} range</p>" ?>

        <?php require("footer.php"); ?>

    </body>
</html>

这是函数文件:

<?php

$imperial = filter_input(INPUT_POST,'imperial');
$metric = filter_input(INPUT_POST, 'metric');

    echo $imperial. " " + "imperial units";
    $color = "red";
    $result = "Obese";

?>

对于此分配,可以将值作为整数输入到文本字段中。所以现在我只关注跟踪非wel形成的数值错误。

感谢您的帮助, DB

1 个答案:

答案 0 :(得分:2)

使用:

&#x2007;

而不是:

echo $imperial . " " . "imperial units";

echo $imperial. " " + "imperial units"; 用于添加,+用于连接。

来自docs

  

字符串可以使用&#39;连接。&#39; (点)运算符。请注意&#39; +&#39; (附加)操作员不会为此工作。