我的PHP程序一直报这样的错:Notice: Undefined index: act in C:\xampp\htdocs\shownews.php on line 5

源程序为:if($_GET['act']=="")
{
$id=$_GET["id"];
$teachedit=$db->query("select * from news where id='$id'");
mysql_query("set names 'gb2312'");
$show=$db->getarray($teachedit);
$keywords=$show['keywords'];
$hits=$show['hits']+1;
$db->update("update news set hits='$hits' where id='$id'");
?>,像“act”这个错很多啊,这是什么原因?

Notice: Undefined index。。。。

警告:为定义的索引。。。。

这只是个警告,不是错误,不会影响程序的执行,如果你不想看到这个警告,你可以
1. @$_GET['act'] 前面加个@关闭警告
2. 配置php的error report把警告关掉
3. 代码上写严格一点:if ( array_key_exist("act", $_GET) && $_GET['act']=="" )追问

继续报错:Fatal error: Call to undefined function array_key_exist() in C:\xampp \htdocs\ shownews.php on line 5,这是怎么回事啊?还有这一句if($_GET['act']=="")是干什么的?act我没定义过啊。

追答

拼写错了,是:array_key_exists

$_GET['act']我是从你的提问中拷贝下来的

真汗~~~~~

追问

谢谢你这么晚了还回答我的问题,但是,结果还没出来。虽然没错了,但调出来了一个空页面,我还是屏蔽掉警告吧。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-17
你第一行是错的,应该是判断 存在 $_GET['act'] 这个变量才进入里面的处理,但你写成变量为空时就处理。避免这个错误应先判断这个值是否存在
改成这样

if(isset($_GET['act']) && $_GET['act'] != "")追问

改过之后,在133行也有错:if($_GET['act']=="show"),我改为了:if(isset($_GET['act']) && $_GET['act'] == "show"),之后,程序不报错了,但是我的网页点击后出现空白页面。原来有错时点击新闻标题时,还能显示新闻内容,现在出现空白页面,地址栏上是对的如:。

追答

你要先理解 $_GET['act']
如果你用这个地址

那么程序就会接收到
$_GET['id'] 这个值等于15,同理

就会收到
$_GET['act'] 这个值 就是 show

出现空白是因为显示新闻内容的 程序部分在你的
if(isset($_GET['act']) && $_GET['act'] == "show")
{
中间
}

如果判断act没有值,就不会进入。你可以把显示新闻的部分写在这个if的外面

相关了解……

你可能感兴趣的内容

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