表单提交PHP Undefined index错误

<form method="get" action="add.php">
name:<input type="text" name="name"><br/>
age:<input type="text" name="age"><br/>
job:<input type="text" name="job"><br/>
<input type="submit" name="submit" value="Submit">
</form>
<?php
$conn=@mysql_connect("localhost","root","") or die("链接错误");
mysql_select_db("test",$conn);
mysql_query("set names 'gbk'");
$sql="INSERT INTO test1 (id,name,age,job,date) values ('','$_GET[name]','$_GET[age]','$_GET[job]',now())";
mysql_query("$sql",$conn);
?>

错误信息:
Notice: Undefined index: name in ..................../add.php on line 11
Notice: Undefined index: age in ......................../add.php on line 11
Notice: Undefined index: job in ........................./add.php on line 11

这个报错不是什么大问题,只是不良习惯造成的提示。关联数组应该使用如$_GET["name"]或者$_GET['name']这样的表示方法,虽然php会在无法找到$_GET[name]时会自动将其识别为$_GET中下标为“name”的数组元素,但是会提示你上面的Notice信息。因此,正确的做法是为关联数组加上单引或双引号。

下面是摘自PHP中文手册的解释:
为什么 $foo[bar] 错了?
应该始终在用字符串表示的数组索引上加上引号。例如用 $foo['bar'] 而不是 $foo[bar]。但是为什么 $foo[bar] 错了呢?可能在老的脚本中见过如下语法:
<?php
$foo[bar] = 'enemy';
echo $foo[bar];
// etc
?>
这样是错的,但可以正常运行。那么为什么错了呢?原因是此代码中有一个未定义的常量(bar)而不是字符串('bar'-注意引号),而
PHP 可能会在以后定义此常量,不幸的是你的代码中有同样的名字。它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,如果没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之。追问

恩,谢谢。
但是我在这个页里加上了“” 提示:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

追答

你的本来就是双引号字符,因此这里再加双引号就会冲突了,给新加的双引号加上转义,也就是$_GET[\"name\"]

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-19
你是想在单引号里面解析变量吗?字符串的连接居然用逗号?关联数组居然又不加引号。你不用学PHP了!追问

面对你这样的人渣,我无话可说。

第2个回答  2012-10-19
<form method="get" action="add.php">
name:<input type="text" name="name" id="name"><br/> //虽然没什么用,建议你把id属性加上
age:<input type="text" name="age" id="age"><br/>
job:<input type="text" name="job" id="job"><br/>
<input type="submit" name="submit" value="Submit">
</form>
<?php
$name=$_GET['name'];//这里最好这样写,没事儿还可以echo 一下看看接没接收到传的值
$age=$_GET['age'];
$job=$_GET['job'];

$conn=@mysql_connect("localhost","root","") or die("链接错误");
mysql_select_db("test",$conn);
mysql_query("set names 'gbk'");
$sql="INSERT INTO test1 (id,name,age,job,date) values ('null','$_GET['name']','$_GET['age']','$_GET['job']','now()')";//看清楚这里我是怎么写的,不好好写小心插入不进去
mysql_query("$sql",$conn);
?>追问

受教了。但是那个ID属性不是css属性吗?

追答

没关系的,你不要管它是什么属性,先写上肯定不会有问题

第3个回答  2012-10-19
你把你的代码发一下啊~~~不然怎么知道追问

你回答太快了,我正在发。。。现在发上来了。

追答

这个这样写~~sname=isset($_get["name"])?$_get[name]:''
因为页面第一次加进去的时候是没有GET事件的,所以先给空字符

sname=isset($_GET["name"])?$_GETt["name"]:'';
那个最后面的''是两个单引号,这个你应该懂的,给分把

追问

$name=isset($_GET["name"])?$_GET["name"]:'';这样吧?

你打字打错就算了 代码也乱给啊

追答

甩椒胡,就这样的,你试试,我在登录界面的时候就遇到过这个问题~~就是这样解决~不会的继续问

undefined是什么意思PHPUndefinedindex报错的修复方法
在PHP中,`Undefined index`报错指的是试图访问数组中不存在的索引。例如,如果尝试访问数组`$myArray['nonExistent']`,则会抛出此错误。修复方法有很多,以下是一些常用的解决策略:方法1:修改服务器配置 通过修改`php.ini`文件中的`error_reporting = E_ALL & ~E_NOTICE`,可以过滤掉警告级别的...

undefined什么意思php解决undefinedindex的办法总结。
综上所述,解决PHP中"undefined"index问题可以通过修改错误报告配置、使用抑制错误功能、进行条件判断以及合理使用$_GET变量等方式实现。通过综合应用这些方法,可以显著提高代码的健壮性和稳定性。

PHP 出现这个错误:undefined index
Undefined index错误的程序里面的数组下标不存在,你这里$row['Secenic_Id']错,没有下标'Secenic_Id',因为你的查询语句是“$query = "select Scenic_Id”,查询的第一个字段是Sc,你使用的是Sec,有区别。

php提示Undefined index怎么回事
解决方法:方法1:服务器配置修改 修改 php.ini 中的 error配置下错误显示方式:将error_reporting = E_ALL 修改为 error_reporting = E_ALL & ~E_NOTICE 修改后重启下APCHE服务器,方可生效。方法2:对变量进行初始化。方法3:做判断isset($_post['']),empty($_post['']) if --else 方法4...

...表单中的值传不过去,而是出现Notice: Undefined index提示...
Notice: Undefined index 警告:未定义的索引号 从提示信息来看,你需要检查下传递的表单各参数值是否设置正确。===补充回答:从给出的代码来看,有三种用到的超全局数组:(1) $_POST 比如:input name="video_title"(2) $_GET 比如:backstage_ac.php?action=video"(3) $_FILES 比...

表单中PHP的错误提示: Notice: Undefined index: submit in C:\\wam...
将if ($_POST['submit']){ 改为if (isset($_POST['submit']))原因是数组键submit不存在。

php Notice: Undefined index: 错误提示
那不是代码的问题,是php的配置文件的错误报告引起的。error_reporting(E_ALL ^ E_NOTICE);会显示所有的错误报告,可以考虑用 \/\/ Turn off all error reporting error_reporting(0);或 \/\/ Report simple running errors error_reporting(E_ERROR | E_WARNING | E_PARSE);

PHP Notice: Undefined index: page in D:\\freehost\\biaoshao\\web\\admin...
接收表单POST过来的数据时报Undefined index错误,如下:act=$_POST['username'];用以上代码用可能提示 Notice: Undefined index 当没有username这个这个post数据到服务器就会有这个提示

【求助】PHP程序中的 Notice: Undefined index:
首先,这个不是错误,是warning。所以如果服务器不能改,每个变量使用前应当先定义。方法1:服务器配置修改 修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE 方法2:对变量进行初始化,规范书写(比较烦琐,因为有大量的变量)。但还没有找到好定义方法,望大家指教 方法3:每个文件头部加...

Notice: Undefined index: 信息怎么办?
Undefined index:是指你的代码里存在:“变量还未定义、赋值就使用”的错误,这个不是致命错误,不会让你的php代码运行强行中止,但是有潜在的出问题的危险,因此建议修改~~~notice的内容都是这类不很影响使用的非致命问题用E_ALL & ~ E_NOTICE可以关闭notice的显示,不过,建议还是改代码更好一点:)...

相似回答