访问$ _POST变量会导致错误

时间:2009-12-06 16:00:34

标签: php variables

我想知道你是否可以帮我解决以下问题:

我将表格中填写的一些信息传递到下一页以显示。我正在使用$_POST方法。虽然在检查代码时,浏览器中显示的信息显示 Notice:undefined index 错误,并且没有传递值的跟踪(在代码中)。我认为这与上述错误有关。

我称之为的方式是ex:

$name = $_POST['name'];

此外,我试图在一些隐藏字段中获取相同的信息,以便在数据库中存储它们(在查看页面之后),但这里也没有传递任何值。隐藏中的值为空。

很抱歉,如果这看起来很愚蠢......但是赌注并且不知道我做错了什么。 真的很感激任何帮助。非常感谢Francesco

2 个答案:

答案 0 :(得分:6)

在PHP中,您无法读取不存在的变量。对于不存在的常规变量,例如$foo$bar,您将获得未定义变量通知,用于不存在的数组索引,例如$array['foo']或{{1}您将收到未定义索引通知,对于$array['bar']$object->foo这样的非现有对象属性,您将收到未定义属性通知。

这是因为在PHP中必须在读取访问权限之前声明变量。 PHP具有函数isset来测试变量是否存在,array_key_exists表示数组索引,property_exists表示对象属性。此外,$object->bar是一种测试存在的通用工具。 (请注意,值 null 等同于不存在。)

因此,在您尝试阅读之前,您应该测试isset是否存在:

$_POST['name']

但请注意,if (array_key_exists($_POST, 'name')) { $name = $_POST['name']; } // or if (isset($_POST['name']) { $name = $_POST['name']; } 的存在现在取决于$name的存在。

答案 1 :(得分:1)

出于调试目的,您可以尝试:

的print_r($ _ POST);

它将显示一个post数组中的所有变量。 看看你的变量是否在那里,如果没有 - 你的表单有问题。

Leonti