【发布时间】:2014-02-06 11:55:12
【问题描述】:
我的数据正在保存在数据库中,但显示以下通知:
注意:未定义索引:D:\xampp\htdocs\savedata\saa.php 中的 fname 第 20 行
注意:未定义索引:lname in D:\xampp\htdocs\savedata\saa.php on 第 20 行
已添加 1 条记录
这是验证码:
<?php
$firstname=$lastname="";
$firstnameErr=$lastnameErr="";
if ($_SERVER['REQUEST_METHOD']== "POST") {
$valid = true; //Your indicator for your condition, actually it depends on what you need. I am just used to this method.
if(empty($_POST["fname"]))
{
$firstnameErr="*Name is Required";
$valid=false;
}
else
{
$firstname=test_input($POST["fname"]);
}
if(empty($_POST["lname"]))
{
$lastnameErr="*Name is Required";
$valid=false;
}
else
{
$$lastname=test_input($POST["lname"]);
}
//if valid then redirect
if($valid){
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=saa.php">';
exit;
// header('Location: datasubmitted.php');
// exit();
}
}
// Sanitize data
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
html表单代码
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
Firstname: <input type="text" name="fname" /><?php echo $firstnameErr;?><br />
Lastname: <input type="text" name="lname" /><?php echo $lastnameErr?>
<input type="submit" name="submit" value="Submit"/>
</form>
在数据库中插入数据的代码
<?php
$con = mysql_connect("localhost","root","geetha@99");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$sql="INSERT INTO nametable (firstname,lastname)
VALUES
('$_POST[fname]','$_POST[lname]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
?>
【问题讨论】:
-
$POST["fname"]是您在验证脚本中的错误,$_POST["fname"]是正确的。 -
同意@АндрейПочекуев
-
@АндрейПочекуев : 很好。但它不会抛出
error,而不是警告!! :) -
为什么会这样?它查找空数组
$POST,发现其索引"fname"和"lname"为空并发出通知。$$lastname虽然会引发错误,因为它会尝试使用空变量名,但代码永远不会到达该部分。
标签: php html mysql css undefined