Неопределенный индекс в PHP - PullRequest
0 голосов
/ 17 января 2010

У меня снова есть эта ошибка:

Примечание: неопределенный индекс: IDNUMBER в E: \ wamp \ www \ PHP \ create.php в строке 5

Вот мой код:

    <?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);
    ?>

* Где я должен определить здесь неопределенное?

Ответы [ 5 ]

5 голосов
/ 17 января 2010

Idnumber:<input type="text" name="LName" value="" />
Разве это не должно называться IDNUMBER?

Предупреждение "Неопределенный индекс" просто говорит о том, что вы предполагаете, что индекс в массиве существует, а на самом деле его нет.

Первое, что вы должны сделать в этих случаях, это выяснить, где создается указанный индекс массива (в данном случае форма) и убедиться, что все в порядке. Эти ошибки обычно просто опечатки.

3 голосов
/ 17 января 2010
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 голосов
/ 17 января 2010

Поскольку все указали на проблему, я просто предлагаю вам выгрузить массив в таких случаях, используя var_dump($_POST) в верхней части create.php, чтобы увидеть, что на самом деле в нем. Если вы сделаете это, вы увидите, что IDNUMBER нет.

Кроме того, я могу быть слишком разборчивым, но вы прописали все индексы, такие как LNAME, FNAME и т. Д., Когда они не определены как таковые в HTML формы как таковой. Лучше быть последовательным независимо от того, позволяет ли язык вам обойтись без него.

2 голосов
/ 17 января 2010

Посмотрите на свой код. Не должна ли эта строка

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

быть чем-то вроде

Idnumber:<input type="text" name="IDNUMBER" value="" />
1 голос
/ 17 января 2010

Ошибка неопределенного индекса возникает, когда вы пытаетесь получить значение из массива по ключу, который не существует в этом конкретном массиве. Если у вас есть массив, скажем

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

а ты попробуй сделать

print $array['yet_another_key'];

вы получите неопределенную ошибку индекса. Потому что ключ 'Yet_another_key' не существует в массиве $array.

Итак, теперь вы должны понять, что именно означает эта ошибка, а также у вас есть номер строки ошибки, поэтому не составит труда определить, какой массив использует несуществующий ключ. И исправить это.

...