我再次遇到此错误:
注意:未定义的索引:第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?
答案 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'键。
所以现在你应该明白这个错误究竟意味着什么,而且你还有一个错误行号,所以要弄清楚哪个数组使用的是一个不存在的密钥并不难。并解决它。