【求助】PHP程序中的 Notice: Undefined index:

我的程序首选是没有错误的,可以执行,当时程序总是提示 Notice: Undefined index: 这样的信息。
程序代码如下:
<?php
include("conn.php");

if($_POST['submit']){

$sql="insert into message (id,user,title,content,lastdate) " .
"values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";
mysql_query($sql);
echo "<script language=\"javascript\">alert('添加成功');history.go(-1)</script>";

}
include("head.php");
?>
<SCRIPT language=javascript>
function CheckPost()
{
if (myform.user.value=="")
{
alert("请填写用户名");
myform.user.focus();
return false;
}
if (myform.title.value.length<5)
{
alert("标题不能少于5个字符");
myform.title.focus();
return false;
}
if (myform.content.value=="")
{
alert("必须要填写留言内容");
myform.content.focus();
return false;
}
}
</SCRIPT>

<form action="add.php" method="post" name="myform" onsubmit="return CheckPost();">
用户:<input type="text" size="10" name="user" /><br>
标题:<input type="text" name="title" /><br/>
内容:<textarea name="content" cols="60" rows="9"></textarea><br/>

<input type="submit" name="submit" value="发布留言"/>

</form>

首先,这个不是错误,是warning。所以如果服务器不能改,每个变量使用前应当先定义。

方法1:服务器配置修改
修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE

方法2:对变量进行初始化,规范书写(比较烦琐,因为有大量的变量)。但还没有找到好定义方法,望大家指教

方法3:每个文件头部加上:error_reporting(0); 如果不行,只有打开php.ini,找到display_errors,设置为display_errors = Off。以后任何错误都不会提示。
方法4 :做判断:isset($_GET["page"]) if-else判断

或者加上’@'表示这行如果有错误或是警告不要输出
如:@$page=$_GET["page"]

方法5:file1.php文件把$xx变量付一个值,用post 传递给file2.php,
如果file2.php没有$xx的定义,而直接使用$yy=$xx; 系统就会报错:”undifined variaable $xx”, 如果file2.php的文件开始用$xx=”";定义,那么file1.php的$xx值就传不过来了!

file2.php里可以这样
if(!isset($xx)) $xx=”";
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-27
constant=>常量
因为 $arr2[a];一般写法为 $arr2['a'];所以会报notice,问题不大,但是最好不要关闭提示,这样有助于提高代码的规范性,常变量使用前最好声明。
第2个回答  2010-11-26
在程序之前加上
error_reporting(E_ALL & ~ E_NOTICE);
第3个回答  2010-11-26
最上面的那个If的地方是不是有点问题?就是插入之前

参考资料:

第4个回答  2010-11-25
$_POST[title],$_POST[content]等等,里面没有用单引号括起来,这种方式是不建议用的,所以才会有这个提示。
这个只是一个提示,脚本是没有问题的。
如果你不想要这个提示,那么报错误报告等级调一下
error_reporting(E_ALL ^ E_NOTICE);
这样,所有NOTICE的报告就会被忽略。
不过建议你优化下你的代码,减少这种不推荐的方式出现。
例如,可以事先用
$title=$_POST['title'];
SQL里直接用$title本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网