1

フォームのフィールドを単純に検証しようとしていますが、何らかの理由で mcHandle フィールドに何も入力しないと、if ステートメントの elseif 部分が $errormsg の値をエコーアウトしません。

<?php include('header.php'); ?>
<div id="mainContent">
<?php
    if ($_POST['submitted'] == 1) {
        $errormsg = "";
        if (isset($_POST['mcHandle'])) {
            $mcHandle = $_POST['mcHandle'];
        } else if (!isset($_POST['mcHandle'])) {
            $errormsg ="Please enter your mc handle.";
            echo("<p>".$errormsg."</p>");
        }
    }
?>
            <div id="donateForm">
                <form action="" method="post" enctype="multipart/form-data">
                    <ul>
                        <li><label>Minecraft Username:</label><input type="text" name="mcHandle" value=""></li>
                        <li><label>First Name:</label><input type="text" name="firstName" value=""></li>
                        <li><label>Last Name:</label><input type="text" name="lastName" value=""></li>
                        <li>
                            <label>Choose a plan:</label>
                                <select name="planName">
                                    <option>Donator 2$/month</option>
                                    <option>VIP 4$/month</option>
                                    <option>Celebrity 6$/month</option>
                                    <option>Saint 8$/month</option>
                                    <option>Legendary 10$/month</option>
                                </select>
                        </li>
                        <li>
                            <label>How many months?</label>
                                <select name="planLength">
                                    <option>1</option>
                                    <option>2</option>
                                    <option>3</option>
                                </select>
                        </li>
                        <li>
                            <br><input value="Submit" class="submit" type="submit">
                            <input type="hidden" value="1" name="submitted">
                        </li>
                    </ul>
                </form>
            </div>
4

2 に答える 2

3

$_POST['mcHandle']値として空の文字列 ("") を設定できます。それは、まったく設定されていないこととは異なります。

于 2012-07-04T04:57:25.140 に答える
0

$_POST['mcHandle'] が設定されているためです。これを試して:

var_dump($_POST)

フォームのすべてのフィールドが $_POST スーパーグローバルでどのように設定されているかがわかります。

于 2012-07-04T05:03:50.370 に答える