Pregunta

Tengo este error de nuevo:

  

Notice: Undefined index: IDNumber en E: \ wamp \ www \ PHP \ create.php en la línea 5

Aquí está mi código:

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

         }   ?>

Aquí está mi 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>

Y mi connection.php:

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

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

* ¿Dónde se supone que definir lo indefinido aquí?

¿Fue útil?

Solución

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

Esto no encaja la secuencia de comandos de procesamiento de formularios php. Prueba esto:

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

Básicamente, es necesario asignar el nombre de "params = YXZ" a tu $ _POST [ 'YXZ'] vars.

Otros consejos

Idnumber:<input type="text" name="LName" value="" />
¿No se supone que se nombrará IDNUMBER?

El "índice Indefinido" advertencia sólo le dice que usted está asumiendo un índice en una matriz existe, cuando en realidad no lo hace.

La primera cosa que debe hacer en estos casos es para averiguar dónde se crea dicho índice de la matriz (la forma, en este caso) y asegurarse de que todo está en orden. Estos errores son por lo general sólo errores tipográficos.

Mire a su código. En caso de que no esta línea

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

ser algo como

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

Como todo el mundo señaló el problema que voy a sugerir que usted debe volcar la matriz en casos como este usando var_dump($_POST) en la parte superior de create.php para ver qué hay realmente en él. Si usted hace que usted verá que no hay IDNumber.

También, que sólo podría ser demasiado exigente pero uppercased todos los índices como LName FNAME, etc., cuando no se definen como tales en el HTML de la forma como tal. Lo mejor es ser consistente sin importar si el idioma le permite alejarse sin él.

error Undefined index se produce cuando intenta obtener el valor de la matriz por la llave que no existe en esa matriz particular. Si tiene arreglo, decir

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

y se intenta hacer

print $array['yet_another_key'];

que se va a obtener el índice de error no definido. Debido clave 'yet_another_key' no existe en la matriz $array.

Así que ahora usted debe entender exactamente lo que significa este error, y también tener un número de línea de error por lo que no va a ser difícil de averiguar qué matriz está utilizando una clave no existente. Y solucionarlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top