0

我创建了一个简单的php页面,需要验证输入的金额是否greater than 100或必须返回error. 我的函数虽然在发布时没有被调用,但金额是less than 100

<html>
    <head></head>
    <title></title>
    <style>
        .error {color: #FF0000;}
    </style>
    <body>

        <?php

        function test_input($data) {
            $data = trim($data);
            $data = stripslashes($data);
            $data = htmlspecialchars($data);
            return $data;
        }

        $amountErr = "";
        $amount = "";
        if ($_SERVER["REQUEST_METHOD"] == "POST") {
            if (($_POST["amount"]) > 100) {
                $amountErr = "Value must be equal or greater than 100";
            } else {
                $amount = test_input($_POST["amount"]);
            }
        }
        ?>
        <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
            <p><span class="error">*required field.</span></p>

            Amount:<input type="text" name="amount"/>
            <span class="error">*<?php echo $amountErr; ?></span>

            <input type="submit" value="Pay"/>
        </form>

    </body>
</html>
4

1 回答 1

0

因为你想在值小于 100 时出错,如果大于或等于则运行函数,如果<小于 100 则应该使用,它将设置错误变量,否则将运行函数。在 if 语句中,您也不需要括号中的 $_POST["amount"] ,除非当然有多个条件。

此外,在旁注中,缩进代码有很大帮助,因此您可以更轻松地阅读它。

<?php
function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
$amountErr="";
$amount="";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if ($_POST["amount"] < 100) {
        $amountErr = "Value must be equal or greater than 100";
    } else {
        $amount = test_input($_POST["amount"]);
    }
}

?>
于 2013-10-16T10:13:28.103 回答