求助: php中 Notice: Undefined index:,该如何解决?请前辈们帮帮忙!

php中 为接收表单参数而定义的变量 在执行时总显示

Notice: Undefined index: main in D:\apweb\phppage\fortest 0807c\admin.php on line 3

以下是相关代码:
<?php

$main=$_GET['main'];

if($main=="art_add")
{
require("art_add.php");
exit;
}
其他相关代码:
<?php
$action=$_GET["action"];

?>
<?php
if($action=="add")
{
//////文章增加
$art_title=trim($_POST["title"]);
$art_user=trim($_POST["user"]);
$art_content=$_POST["content"];
echo $art_addtime=date("Y-m-d H:i:s");
///trim去除首位空格

Notice: Undefined index: action in D:\apweb\phppage\fortest 0807c\art_manage.php on line 2

另:相关的表单action值
<form name="form1" method="post" action="admin.php?main=art_manage&action=add">

注:程序运行是正确的,就是多 了这个NOTICE,看起来很另类,大哥大姐帮忙解决下了!!

是因为有时候$main=$_GET['main'];,没有获取到值。可以黑他个默认值,或者写成这样 就不会有报错了$main=@$_GET['main'];追问

管用的!谢谢!但是这块内容我是按着网上的学习视频操作的,视频上的没有加@,运行结果也没有出现Notice! 这是怎么办到的呢!??

追答

那是因为人家的那个一直有值把,你可以看他的url 应该有&main=art_add 这种的
这种问题 不必纠结他为啥不报错 你解决了就好 要么关报错 要么给默认值

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-07
首先看你的这个这个语句:$main=$_GET['main']; 还没有将GET值传过来之前 当然是没有定义了 这样写:if(isset($_GET['main'])){$main=$_GET['main'];}包括post提交时都应该做个判断
比如:if(isset($_POST)){}
作为程序员这点逻辑还是要搞清楚的
第2个回答  2011-08-07
在运行程序之前要判断一下有没有GET或是POST上来数据,这样就避免了直接获取GET数据出错的问题.例如:

if($_GET){
$action=$_GET["action"];
}

这样,判断一下有没有GET,如果有就获取GET数据,这样就不会在第一次没有提交数据的情况下就获取没有索引的空数据了!
第3个回答  2011-08-07
接收post或者get传过来的参数,发生PHP Notice: Undefined index:
可以定义一个函数判断是否是空值
<?php

$main=_request('main');
function _request($str){
$val=!empty($_REQUEST[$str])?$_REQUEST[$str]:null;
return $val;
}追问

你好! 梦萱_75
我用下面的语句测试,
<?php
$main=$_GET['main'];
if($main) echo "main有值";
else echo "main值为空";
输出结果为:
Notice: Undefined index: main in D:\apweb\phppage\fortest 0807c\admin.php on line 2
main值为空

不过,在表单还未提交前,它的值自然是空的吧?
所以,这要如何修改,调整程序,才不会出现Notice呢?
期待中……

相关了解……

你可能感兴趣的内容

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