PHP中未定义的索引

时间:2010-01-17 09:40:54

标签: php dreamweaver wampserver

我再次遇到此错误:

  

注意:未定义的索引:第5行的E:\ wamp \ www \ PHP \ create.php中的IDNUMBER

这是我的代码:

    <?php
        include 'E:\wamp\www\PHP\connection.php';

        $IDNUMBER = $_POST['IDNUMBER'];
        $LNAME    = $_POST['LNAME'];
        $FNAME    = $_POST['FNAME'];
        $MNAME    = $_POST['MNAME'];
        $GRADEYR  = $_POST['GRADEYR'];
        $ADDRESS  = $_POST['ADDRESS'];
        if(!$_POST['submit']) {
            echo "please fill out the form";
            header('E:\wamp\www\PHP\main.php');
         } else {
             mysql_query("INSERT INTO students(`IDNUMBER`,`LNAME`,`FNAME`,`MNAME`,`GRADEYR`,`ADDRESS`)
                          VALUES (NULL, '$IDNUMBER', '$LNAME', '$FNAME', '$MNAME', '$GRADEYR', '$ADDRESS')") or die(mysql_error());

             echo "User has been added!";
             header('E:\wamp\www\PHP\main.php');

         }   ?>

这是我的main.php:

    <html xmlns="http://www.w3.org/1999/xhtml">

        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>Untitled Document</title>
        </head>

            <?php
                include 'E:\wamp\www\PHP\connection.php';
                $query = "SELECT * FROM students";
                $result = mysql_query($query);
                while($students = mysql_fetch_array($result)) {
                    echo "<h3>".$students['LNAME'] ."</H3>";
                }
            ?>
            <h1>Create A user</h1>
                <form action="create.php" method="post">
                    Idnumber:<input    type="text"   name="LName"       value="" />
                    LastName:<input    type="text"   name="LName"       value="" />
                    Firstname:<input   type="text"   name="FName"       value="" />
                    Middlename:<input  type="text"   name="MName"       value="" />
                    GradeOrYear:<input type="text"   name="GradeOrYear" value="" />
                    Address:<input     type="text"   name="Address"     value="" />
                    <br/>
                    <input             type="submit" name="Submit"      value="" />
                </form>
            <body>
            </body>
        </html>

我的connection.php:

    <?php
        $dbhost = 'localhost';
        $dbuser= 'root';
        $dbpass= '';
        $dbname = 'koro';

        $conn =mysql_connect($dbhost, $dbuser, $dbpass);
        mysql_select_db($dbname);
    ?>

*我应该在哪里定义undefined?

5 个答案:

答案 0 :(得分:5)

Idnumber:<input type="text" name="LName" value="" />
这不应该被命名为IDNUMBER吗?

“Undefined index”警告只是告诉您假设存在一个数组中的索引,而事实上它并不存在。

在这些情况下,您应该做的第一件事是找出创建所述数组索引的位置(在本例中为表单),并确保一切正常。这些错误通常只是错别字。

答案 1 :(得分:3)

Idnumber:<input type="text" name="LName" value="" />
LastName:<input type="text" name="LName" value="" />
Firstname:<input type="text" name="FName" value="" />
Middlename:<input type="text" name="MName" value="" />
GradeOrYear:<input type="text" name="GradeOrYear" value="" />
Address:<input type="text" name="Address" value="" />
<br/>
   <input type="submit" name="Submit" value="" />

这不适合您的PHP表单处理脚本。试试这个:

Idnumber:<input type="text" name="IDNUMBER" value="" />
LastName:<input type="text" name="LNAME" value="" />
Firstname:<input type="text" name="FNAME" value="" />
Middlename:<input type="text" name="MNAME" value="" />
GradeOrYear:<input type="text" name="GRADEYR" value="" />
Address:<input type="text" name="ADDRESS" value="" />
<br/>
   <input type="submit" name="submit" value="submit" />

基本上,您需要将name =“YXZ”参数映射到$ _POST ['YXZ']变量。

答案 2 :(得分:2)

看看你的代码。 不应该这行

Idnumber:<input type="text" name="LName" value="" />

类似

Idnumber:<input type="text" name="IDNUMBER" value="" />

答案 3 :(得分:2)

由于每个人都指出了这个问题,我建议你应该使用var_dump($_POST)顶部的create.php在这种情况下转储数组,以查看其实际内容。如果你这样做,你会发现没有IDNUMBER。

另外,我可能只是太挑剔了,但是当你没有在表单的HTML中定义它们时,你会将所有索引(如LNAME,FNAME等)大写。无论语言是否让你在没有它的情况下逃脱,最好保持一致。

答案 4 :(得分:1)

当您尝试通过该特定数组中不存在的键从数组中获取值时,会发生未定义的索引错误。如果你有数组,请说

$array = array('key' => 'value', 'another_key' => 'another_value');

你尝试做

print $array['yet_another_key'];

您将获得未定义的索引错误。因为$array数组中不存在'yet_another_key'键。

所以现在你应该明白这个错误究竟意味着什么,而且你还有一个错误行号,所以要弄清楚哪个数组使用的是一个不存在的密钥并不难。并解决它。