我已经创建了一个表单,我试图将数据发布到MySQL数据库,但是在提交表单后,我得到以下错误。
注意:未定义索引:第14行C:\xampp\htdocs\auto\insert_ac.php中的月份
注意:未定义索引: listner_name在第15行的C:\xampp\htdocs\auto\insert_ac.php中
注意:未定义索引: rj_name在第16行的C:\xampp\htdocs\auto\insert_ac.php中
注意:未定义索引:第17行C:\xampp\htdocs\auto\insert_ac.php中的通道
注意:未定义的索引:第18行的C:\xampp\htdocs\auto\insert_ac.php中的年份
注意:未定义的索引:第19行C:\xampp\htdocs\auto\insert_ac.php中的国家( )
当我检查插入到数据库中的空行项时
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username`
$password=""; // Mysql password
$db_name="auto"; // Database name
$tbl_name="song_request"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Get values from form
$month=mysql_real_escape_string($_POST['month']);
$listner_name=mysql_real_escape_string($_POST['listner_name']);
$rj_name=mysql_real_escape_string($_POST['rj_name']);
$channel=mysql_real_escape_string($_POST['channel']);
$year=mysql_real_escape_string($_POST['year']);
$country=mysql_real_escape_string($_POST['country']);
// Insert data into mysql
$sql="INSERT INTO song_request (month, listner_name, rj_name, channel, year, country)VALUES('$month', '$listner_name', '$rj_name', '$channel', '$year', '$country')";
$result=mysql_query($sql) or die ('error Updating database');
// if successfully insert data into database, displays message "Successful".
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='index.html'>Back to main page</a>";
}
else {
echo "ERROR";
}
// close connection
mysql_close();
?>我的HTML表单代码是
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Radio Mantra Song Request</title>
<link href="css/jquery.autocomplete.css" rel="stylesheet" type="text/css">
<link href="css/main.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery-1.5.2.min.js">
</script>
<script type="text/javascript" src="js/jquery.autocomplete.pack.js">
</script>
<script type="text/javascript" src="js/script.js">
</script>
</head>
<body>
<div class="container">
<form name="form" method="post" action="insert_ac.php">
<p><label>Location:</label> <input id="month" type="text" autocomplete="off"></p>
<p><label>Listner Name:</label> <input id="listner_name" type="text" autocomplete=
"off"></p>
<p><label>RJ Name:</label> <input id="rj_name" type="text" autocomplete="off"></p>
<p><label>Channel:</label> <input id="channel" type="text" autocomplete="off"></p>
<p><label>Show Name:</label> <input id="year" type="text" autocomplete="off"></p>
<p><label>Song:</label> <input id="country" type="text" autocomplete="off"></p>
<h2>Radio Mantra</h2>
<table>
<tr>
<td align="center"><input type="submit" name="submit" value="Submit"></td>
</tr>
</table>
</form>
</div>
</body>
</html>发布于 2011-12-22 11:31:51
除了使用name属性(如SeanNieuwoudt所指出的那样)之外,您还应该在插入数据库之前检查request方法是否为POST。如果您不这样做,并且有人决定将您的insert_ac.php页面视为GET请求,它将生成与以前相同的通知,并插入空白数据。
例如
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// go ahead and insert
}发布于 2011-12-22 10:54:03
您需要表单元素上的名称属性来访问$_POST中的值。
<input id="month" name="month" type="text" autocomplete="off">发布于 2011-12-23 10:38:11
表单元素中应该有一个name属性。
由于未填充值,可能会出现此错误。
Notice: Undefined index: month in C:\xampp\htdocs\auto\insert_ac.php on line 14
Notice: Undefined index: listner_name in C:\xampp\htdocs\auto\insert_ac.php on line 15
Notice: Undefined index: rj_name in C:\xampp\htdocs\auto\insert_ac.php on line 16
Notice: Undefined index: channel in C:\xampp\htdocs\auto\insert_ac.php on line 17
Notice: Undefined index: year in C:\xampp\htdocs\auto\insert_ac.php on line 18
Notice: Undefined index: country in C:\xampp\htdocs\auto\insert_ac.php on line 19如果您有类似于$_POST["test"]的内容,您必须通过这样做来检查是否存在这样的索引:
if(isset($_POST["test"]))所以,只需像下面这样使用
if(isset($_POST['submit']))
{
$month=mysql_real_escape_string($_POST['month']);
$listner_name=mysql_real_escape_string($_POST['listner_name']);
$rj_name=mysql_real_escape_string($_POST['rj_name']);
$channel=mysql_real_escape_string($_POST['channel']);
$year=mysql_real_escape_string($_POST['year']);
$country=mysql_real_escape_string($_POST['country']);
// Insert data into mysql
$sql="INSERT INTO song_request (month, listner_name, rj_name, channel, year, country)VALUES('$month', '$listner_name', '$rj_name', '$channel', '$year', '$country')";
$result=mysql_query($sql) or die ('error Updating database');
}https://stackoverflow.com/questions/8602789
复制相似问题