Domanda

Non ho ancora questo errore:

  

Notice: Undefined index: IDnumber in E: \ wamp \ www \ PHP \ create.php sulla linea 5

Qui è il mio codice:

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

         }   ?>

Ecco la mia 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>

E il mio connection.php:

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

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

* Dove dovrei definire l'indefinito in qui?

È stato utile?

Soluzione

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

Questo non va bene per lo script di elaborazione modulo php. Prova questo:

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

In sostanza, è necessario mappare i name = "params YXZ" al tuo $ _POST [ 'YXZ'] Vars.

Altri suggerimenti

Idnumber:<input type="text" name="LName" value="" />
Non è questo dovrebbe essere nominato IDNUMBER?

L'avviso "non definita indice" solo ti dice che si stanno assumendo un indice in una matrice esiste, quando in realtà non è così.

La prima cosa da fare in questi casi è quello di scoprire dove si crea detto indice di array (la forma, in questo caso) e assicurarsi che tutto sia in ordine. Questi errori sono di solito solo errori di battitura.

Guardate il vostro codice. Non dovrebbe questa linea

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

essere qualcosa del tipo

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

Dal momento che tutti sottolineato il problema mi limiterò a suggerire che si dovrebbe scaricare la matrice in casi come questo usando var_dump($_POST) in cima create.php per vedere cosa c'è realmente in esso. Se lo fai vedrete che non v'è alcuna IDNumber.

Inoltre, potrei essere troppo esigente, ma si maiuscolo tutti gli indici come LNAME, FNAME, ecc quando non sono definiti come tali in HTML del form in quanto tale. E 'meglio essere coerenti a prescindere se la lingua lascia ottenere via senza di esso.

errore Undefined index si verifica quando si tenta di ottenere valore dalla matrice dalla chiave che non esiste in quella particolare matrice. Se si dispone di matrice, dire

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

e si tenta di fare

print $array['yet_another_key'];

che si sta per ottenere l'errore di indice indefinito. Perché chiave 'yet_another_key' non esiste nella matrice $array.

Così ora si dovrebbe capire che cosa esattamente significa questo errore, e anche di avere un numero di linea di errore, quindi non sarà difficile capire quale matrice utilizza una chiave non esistente. E risolvere il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top