PHP Undefined index

5 Cevap php

Ben tekrar bu hata var:

Notice: Undefined index: E IDNumber: 5. satırdaki \ wamp \ www \ PHP \ create.php

İşte benim kod:

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

         }   ?>

İşte benim main.php olduğunu:

    <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>

Ve connection.php:

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

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

* Nerede burada tanımlanmamış tanımlamak gerekiyor?

5 Cevap

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="" />

Bu php form işleme komut uymuyor. Bu deneyin:

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" />

Temel olarak, $ _POST ['YXZ'] vars için name = "YXZ" params haritasına gerekir.

Idnumber:<input type="text" name="LName" value="" />
Isn't this supposed to be named IDNUMBER?

"Undefined index" uyarısı sadece aslında öyle değil zaman, bir dizi var bir dizin varsayarak olduğunu söyler.

Bu gibi durumlarda yapmanız gereken ilk şey söylemedim dizi indeksi (bu durumda, formu) oluşturulur nerede olduğunu bulmak ve her şeyin sırayla olmasını sağlamaktır. Bu hatalar genellikle sadece yazım hataları vardır.

Look at your code. Shouldn't this line

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

gibi bir şey

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

Herkesin sorunu işaret beri ben sadece create.php aslında içinde neler olduğunu görmek için üstündeki var_dump($_POST) kullanarak bu gibi durumlarda dizi dökümü gerektiğini önereceğiz. Bunu yaparsanız hiçbir IDNumber olduğunu görürsünüz.

Ayrıca, ben sadece çok seçici olabilir ama onlar gibi formun HTML gibi tanımlanmayan zaman vb lname, FName gibi tüm indeksler uppercased. Bu dil onsuz uzak olsun izin verirse ne olursa olsun tutarlı olmak en iyisidir.

Eğer söz konusu dizide yok anahtarı tarafından diziden değerini almaya çalıştığınızda Undefined index hata oluşur. Eğer dizi varsa, demek

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

ve bunu deneyin

print $array['yet_another_key'];

tanımsız dizin hatası almak için gidiyoruz. 'Yet_another_key' tuşuna $array dizide yok çünkü.

Yani şimdi tam olarak bu hata ne demek olduğunu anlamak gerekir, ve olmayan varolan bir anahtar kullanılarak hangi dizi anlamaya zor olacak değil bu yüzden de bir hata satır numarası var. Ve bunu düzeltmek.