Php 未定义索引

Php 未定义索引,php,database,Php,Database,这句话有错吗 错误返回: 注意:未定义索引:inputBlock 注意:未定义索引:inputHouseUnit 代码: PHP数组索引是数字或字符串 如果inputBlock和inputHouseUnit是字符串变量的标识符,则必须在它们前面加上$(例如,$\u POST[$inputBlock]) 如果它们是文字字符串,请将它们用'(单引号)或“(双引号)(例如,$\u POST[“inputBlock”]) 显然,您必须小心转义单引号和双引号。此外,在尝试将用户输入放入数据库之前,您应该验

这句话有错吗

错误返回:

注意:未定义索引:inputBlock

注意:未定义索引:inputHouseUnit

代码:


PHP数组索引是数字或字符串

如果
inputBlock
inputHouseUnit
是字符串变量的标识符,则必须在它们前面加上
$
(例如,
$\u POST[$inputBlock]

如果它们是文字字符串,请将它们用
'
(单引号)或
(双引号)(例如,
$\u POST[“inputBlock”]


显然,您必须小心转义单引号和双引号。此外,在尝试将用户输入放入数据库之前,您应该验证用户输入。

是的,有。它应该如下所示

if($conn){
    $insertData = "INSERT INTO ESTATEUNIT (BLOCK, UNIT) VALUES ('" . $_POST["inputBlock"] . "', '" . $_POST["inputHouseUnit"] . "')";
}
我使用了字符串concation,这样就不必转义引号了


您还应该考虑安全性,因为将原始post数据传递到数据库是非常不安全的-永远不要相信您的用户。

这里的所有答案都是错误的。甚至与问题相矛盾,其中显然指出,
inputBlock
被识别为数组索引

$insertData = "INSERT INTO ESTATEUNIT (BLOCK, UNIT) VALUES ('".$_POST['inputBlock']."', '".$_POST['inputHouseUnit']."')";
这句话有错吗

不,你的陈述完全正确

获取这些消息的原因是空的$\u POST数组。很可能是使用GET方法调用此代码

将代码放入此if语句中:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // your code goes here
}

此外,您必须始终正确设置查询的格式。至少按照所述方式确保这些变量是从

$\u POST[输入块] $\邮政[inputHouseUnit]

在$sql之前打印它们


另外,请确保指定了method=POST。如果没有,这些变量将作为GET带来。

将各个POST操作的值存储在单独的变量中,然后在
echo
函数中使用它们…如下所示

$x=$_POST[inputBlock];
<br>$y=$_POST[inputHouseUnit];
$x=$\u POST[inputBlock];

$y=$_POST[inputHouseUnit];
然后替换
echo
函数中的变量

还要检查post方法是否接收到任何值,因为您可能只向php页面发送了一个值。。。
当变量没有从
$\u POST
数组中获取任何值时,未定义的索引通常会被反击。

不要直接使用
$\u POST
,在查询中未验证。它表示在$\u POST中没有具有这些名称的键->检查
$\u POST
中是否有任何内容,我认为在发布之前执行这些代码您可以n尝试
'或'1'='1'/*'
;删除表tablename
这真是太神奇了,我的意思是你的代码容易受到sql注入的攻击。如果你不想让其他人破坏你的数据库,请逃避所有请求。你对文本字段的名称进行了什么分类?@Bryan抱歉,我不明白?inputBlock是文本字段的名称/id。在这里情况下,它是否被视为字符串?是的,它是一个文字字符串。为什么每个人在这个问题上投票没有明显的理由或评论为什么这已经完成了?
$x=$_POST[inputBlock];
<br>$y=$_POST[inputHouseUnit];