验证时未定义的索引错误 - PHP

时间:2012-10-01 17:29:19

标签: php

嗨首先让我告诉你我在这里发布我的代码的“摘要”并不是因为我没有尝试解决我的问题或者我很懒。由于我对PHP的了解很少,现在正在努力破解错误3.5小时!

如果有人能指出为什么会发生这种错误,那就非常感激。该错误表示第4行中未定义的错误。

        <?php 
    function validate(&$x,&$y)
    {if(isset($_POST['sub1']))
        {if($_POST['optMe'] == "") {echo "Empty dropdown"; return false;}}
    }
    function display($x,$y)
    {
    ?>
    <html>
    <head><title></title></head>
    <body>
    <form method="POST">
      <table id="tab2" border="1">
      <tr><td>
            <select id="optMe">
            <option value=""></option>
            <option value="one">one</option>
            <option value="two">two</option>
            </select>
      </td>
      <td><input type="submit" id="sub1" name="sub1" value="Click here"></td>
      </tr> 
      </table>
    </form>
    <form method="POST">
      <table id="tab2" border="1">
      <tr>
        <td><input type="text"></td>
        <td><input type="submit" id="send" name="send" value="send now"></td>
      </tr>     
      </table>
    </form>
    </body>
    </html>
    <?php
    }
    function process($x)
    {
    // I will add my code here to print something.
    }
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
        {$formValues = $_POST;$formErrors = array();
        if (!validate($formValues, $formErrors))
        display($formValues, $formErrors);
        else
        process($formValues);
        }
        else
        display(null, null);
    ?>

2 个答案:

答案 0 :(得分:2)

您的<select>没有name属性,因此无法发送,因此$_POST['optMe']不存在,因此您收到错误。

答案 1 :(得分:1)

您尚未为表单字段指定名称属性:

<select id="optMe">

应该是:

<select name="optMe" id="optMe">