php中的Html多选择字段问题

php中的Html多选择字段问题,php,html,Php,Html,我有一个带有多个选择字段的html表单。我试图用php验证它。但是我不能用php验证这个多选字段。这是一条未经任何验证的“向我展示成功”消息 请告诉我我的代码有什么问题。多谢各位 Php代码: <?php if(isset($_POST['Submit']) && $_POST['Submit'] == "Send SMS") { if(isset($_POST['number'])) $number = $_POST['number'];

我有一个带有多个选择字段的html表单。我试图用php验证它。但是我不能用php验证这个多选字段。这是一条未经任何验证的“向我展示成功”消息

请告诉我我的代码有什么问题。多谢各位

Php代码:

<?php
if(isset($_POST['Submit']) && $_POST['Submit'] == "Send SMS")
{

    if(isset($_POST['number']))
        $number = $_POST['number'];

    $msg = inputvalid($_POST['txt']);
    $err = array();

    if(isset($msg) && isset($number)) 
    {
        if(empty($msg) && empty($number))
            $err[] = "All field require";
        else
        {
            if(empty($msg)) 
                $err[] = "Your message require";
            if(empty($number))  
                $err[] = "Select your mobile number";
        }
    }   

    if(!empty($err))
    {
        echo "<div class='error'>"; 
        foreach($err as $er)
        {
            echo "<font color=red>$er.</font><br/>";                
        }
        echo "</div>";
        echo "<br/>";
    }
    else
    {
        echo "good";
    }
}
?>  
<form name="frm" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>">  
    <table width="800" border="0" cellspacing="10" cellpadding="0">
        <tr>
            <td valign="top">Number</td>
            <td>
                <select multiple="multiple" size="10" name="number[]">  
                    <option value="">--Select Member--</option>
                    <?php
                    $class = mysql_query("SELECT * FROM e_members");
                    while($res =  mysql_fetch_array($class))
                    {
                        $phone = $res['phone'];
                    ?>
                    <option value="<?php echo $phone; ?>"> <?php echo $phone; ?></option>
                    <?php
                    }
                    ?>
                </select>
            </td>
        </tr> 
        <tr>
            <td valign="top">Write message</td>
            <td>
                <textarea class="textarea" placeholder="Your message" name="txt" onkeyup="counter(this);">
                    <?php if(isset($_POST['txt'])) echo $_POST['txt']; ?>
                </textarea>
                <br/>
                <input type="" name="lbl" style="border:none;">
                <br/>
            </td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>
                <input type="submit" name="Submit2" value="Save SMS" class="view"/>
                <input type="submit" name="Submit" value="Send SMS" class="submit"/>
            </td>
        </tr>
    </table>
</form>
如果不选择,则显示:

NULL

您正在尝试使用
空($number)
验证数组
$number
。它不会像你期望的那样工作


您可以将其验证为
if(is_array($number)&&count($number)>0)

问题是,您对空值的检查在
if(isset($msg)&&isset($number))的检查中。
一旦您发布表单,这些变量就设置好了。由于您已经在检查post是否已设置,请删除此外部if语句,然后只检查空值,它应该可以工作。

请发布
var\u dump($number)
@Barmar我正在这样做。@Barmar检查我的更新文档说明
empty
对于空数组将返回
true
NULL