如何验证PHP表单中的数组?

时间:2010-03-18 18:38:46

标签: php

我对php很新,想知道如何验证数组的状态以及我在哪里放置php代码?我已经完成了地址部分,但我被困在州的一部分。

这是验证码。

if (isset($_POST['contact_info_submitted'])) { // Handle the form.

    $address = mysqli_real_escape_string(htmlentities($_POST['address']));

}

这是表单代码。

<li><label for="address-1">Address 1: </label><input type="text" name="address-1" id="address-1" size="25" class="input-size" value="<?php if (isset($_POST['address'])) echo $_POST['address']; ?>" /></li>

<li><label for="state-province">State/Province: </label>
<?php
echo '<select name="state-province" id="state-province">' . "\n";
    foreach($state_options as $option) {
        if ($option == $state) {
            echo '<option value="' . $option . '" selected="selected">' . $option . '</option>' . "\n";
            } else {
              echo '<option value="'. $option . '">' . $option . '</option>'."\n";
            }
        }
            echo '</select>';

?>
</li>
<li><input type="submit" name="submit" value="Save Changes" class="save-button" />
    <input type="hidden" name="contact_info_submitted" value="true" />

1 个答案:

答案 0 :(得分:1)

如果您想知道如何检查某人是否提交了州的有效值,只需检查他们发布的值是否在您的状态数组中。如果不存在则无效:

if (!in_array($_POST['state-province'], $state_options)) {
    // not valid
}

如果您只是尝试像其他表单值一样存储在数据库中,那么它与任何文本字段都没有区别:

if (isset($_POST['contact_info_submitted'])) { // Handle the form.
    $state= mysqli_real_escape_string($_POST['state-province']);
}