下面这段代码录入数据正常,但是总会提示这个错误:Notice: Undefined index: ok in D:\www\abc\insert.php on line 2
这是什么原因?请说说具体解决办法。谢谢。
<?php
if ($_POST["ok"]){
$link_id = mysql_connect("localhost", "root", "")
or die ("连接失败");
if($link_id){
mysql_select_db("my_test");
$sql = "insert into userinfo values ($_POST[id],$_POST[name]," .
"$_POST[gender],$_POST[age],$_POST[regdate])";
$result = mysql_query($sql);
if($result){
echo "记录已经成功录入<br><a href='insert.php'>继续录入数据</a>";
}else
echo "录入数据失败";
mysql_close($link_id);
}
}
else{
?>
<form action="insert.php" method="POST">
编号<input type="text" name="id" /><br>
姓名<input type="text" name="name" /><br>
性别<input type="text" name="gender" /><br>
年龄<input type="text" name="age" /><br>
注册时间<input type="text" name="regdate" /><br>
<input type="submit" name="ok" value="value"/>
</form>
<?
}
?>
修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE
让系统只显示错误
2.把使用数组的地方,先用isset判断一下,比如:
if ($_POST["ok"]){
改成
if (isset($_POST["ok"])&&$_POST["ok"]){
不过这个方法比较麻烦
改为
if ($_SERVER['REQUEST_METHOD'] == "POST"){
就强壮了当 E_NOTICE 警告没有被屏蔽时,读取尚未定义的变量时就会发出 Notice: Undefined ....
的警告信息。
通常这不算错误,但有时也会影响到程序的正确执行
//do somthing..
}