功能未验证

时间:2013-10-16 10:05:30

标签: php function validation

我创建了一个简单的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>

1 个答案:

答案 0 :(得分: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"]);
    }
}

?>