【求助】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> 展开
程序代码如下:
<?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> 展开
5个回答
展开全部
首先,这个不是错误,是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:服务器配置修改
修改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=”";
展开全部
constant=>常量
因为 $arr2[a];一般写法为 $arr2['a'];所以会报notice,问题不大,但是最好不要关闭提示,这样有助于提高代码的规范性,常变量使用前最好声明。
因为 $arr2[a];一般写法为 $arr2['a'];所以会报notice,问题不大,但是最好不要关闭提示,这样有助于提高代码的规范性,常变量使用前最好声明。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在程序之前加上
error_reporting(E_ALL & ~ E_NOTICE);
error_reporting(E_ALL & ~ E_NOTICE);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最上面的那个If的地方是不是有点问题?就是插入之前
参考资料: 鍩
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$_POST[title],$_POST[content]等等,里面没有用单引号括起来,这种方式是不建议用的,所以才会有这个提示。
这个只是一个提示,脚本是没有问题的。
如果你不想要这个提示,那么报错误报告等级调一下
error_reporting(E_ALL ^ E_NOTICE);
这样,所有NOTICE的报告就会被忽略。
不过建议你优化下你的代码,减少这种不推荐的方式出现。
例如,可以事先用
$title=$_POST['title'];
SQL里直接用$title
这个只是一个提示,脚本是没有问题的。
如果你不想要这个提示,那么报错误报告等级调一下
error_reporting(E_ALL ^ E_NOTICE);
这样,所有NOTICE的报告就会被忽略。
不过建议你优化下你的代码,减少这种不推荐的方式出现。
例如,可以事先用
$title=$_POST['title'];
SQL里直接用$title
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询