获取未定义的索引错误

时间:2011-10-10 08:40:23

标签: php mysql undefined-index

我的php非常“弱”,所以我遇到了麻烦 -

<?php

include_once "../scripts/connect_to_mysql.php";

$title = $_POST['title'];
$desc = $_POST['description'];

$query = mysql_query("UPDATE images SET title='$title', description='$desc'") or die (mysql_error());

echo 'Operation Completed Successfully! <br /><br /><a href="index.php">Click Here</a>';
exit();
?>

第9行的未定义索引错误是description $desc = $_POST['description'];,数据库拼写中的“description”也是正确的。

4 个答案:

答案 0 :(得分:1)

您的表单需要将此信息发送到php文件。您的表单似乎只有title而不是description。您应该发布表单以获得更好的帮助。

<form ...>
  <input type="text" name="description" value="">
  <input type="text" name="title" value="">
</form>

您应该始终转义您在SQL查询中使用的数据。

答案 1 :(得分:1)

显然,description数组中不存在$_POST字段,因此索引description不指向任何内容。

var_dump($_POST);打印什么?

另外,这是一个内部系统吗?如果没有,您应该阅读SQL注入。

答案 2 :(得分:0)

description数组中没有索引为$_POST的元素。

在该行之前尝试var_dump($_POST);以检查数组。 (或者,如果某些信息被删除,请使用print_r($_POST);

答案 3 :(得分:-2)

尝试做:

if(isset($_POST['description'])){echo "yes";}else{echo "no";}

这不会修复它,但它有助于确定$ _POST ['description']是否存在..此外,$_POST['description']的来源是什么?是否设置在../scripts/connect_to_mysql.php?怎么样?

除非执行更复杂的任务(即AJAX),否则POST变量通常是通过提交表单来设置的 - 您的代码是在表单提交后加载页面之后吗?如果没有,您可能会错误地使用_POST变量......

如果在$_POST['description']的代码中某处设置了../scripts/connect_to_mysql.php,并且通过包含您希望的文件然后检索其值 - 您可能会错误地处理错误 - 您能否提供有关原点的信息是$_POST['description']