我想知道你是否可以帮我解决以下问题:
我将表格中填写的一些信息传递到下一页以显示。我正在使用$_POST
方法。虽然在检查代码时,浏览器中显示的信息显示 Notice:undefined index 错误,并且没有传递值的跟踪(在代码中)。我认为这与上述错误有关。
我称之为的方式是ex:
$name = $_POST['name'];
此外,我试图在一些隐藏字段中获取相同的信息,以便在数据库中存储它们(在查看页面之后),但这里也没有传递任何值。隐藏中的值为空。
很抱歉,如果这看起来很愚蠢......但是赌注并且不知道我做错了什么。 真的很感激任何帮助。非常感谢Francesco
答案 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