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

我的程序首选是没有错误的,可以执行,当时程序总是提示Notice:Undefinedindex:这样的信息。程序代码如下:<?phpinclude("conn.php")... 我的程序首选是没有错误的,可以执行,当时程序总是提示 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>
展开
 我来答
百度网友b0026fc
推荐于2017-10-12 · TA获得超过8431个赞
知道大有可为答主
回答量:8845
采纳率:60%
帮助的人:1.7亿
展开全部
首先,这个不是错误,是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=”";
hhlva72
2010-11-27 · TA获得超过263个赞
知道答主
回答量:552
采纳率:0%
帮助的人:329万
展开全部
constant=>常量
因为 $arr2[a];一般写法为 $arr2['a'];所以会报notice,问题不大,但是最好不要关闭提示,这样有助于提高代码的规范性,常变量使用前最好声明。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0c90796
2010-11-26 · TA获得超过1611个赞
知道大有可为答主
回答量:2638
采纳率:0%
帮助的人:1081万
展开全部
在程序之前加上
error_reporting(E_ALL & ~ E_NOTICE);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d10a568c9
2010-11-26 · TA获得超过226个赞
知道小有建树答主
回答量:206
采纳率:0%
帮助的人:171万
展开全部
最上面的那个If的地方是不是有点问题?就是插入之前

参考资料:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
binjly
2010-11-25 · TA获得超过3063个赞
知道大有可为答主
回答量:2017
采纳率:0%
帮助的人:2699万
展开全部
$_POST[title],$_POST[content]等等,里面没有用单引号括起来,这种方式是不建议用的,所以才会有这个提示。
这个只是一个提示,脚本是没有问题的。
如果你不想要这个提示,那么报错误报告等级调一下
error_reporting(E_ALL ^ E_NOTICE);
这样,所有NOTICE的报告就会被忽略。
不过建议你优化下你的代码,减少这种不推荐的方式出现。
例如,可以事先用
$title=$_POST['title'];
SQL里直接用$title
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式