0

I have created a simple php page that needs to validate if the amount entered is greater than 100 or must return an error. My function though does not get called when posting and the amount is 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 に答える