访问$ _POST变量会导致错误

fra*_*pet 2 php variables

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

我将表格中填写的一些信息传递到下一页以显示.我正在使用$_POST方法.虽然在检查代码时显示在浏览器中的信息显示一个通知:未定义的索引错误,并且没有传递值的跟踪(在代码中).我认为这与上面的错误有关.

我称之为的方式是ex:

$name = $_POST['name'];
Run Code Online (Sandbox Code Playgroud)

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

对不起,如果这似乎是一件愚蠢的事......但是赌注并且不知道我做错了什么.真的很感激任何帮助.非常感谢Francesco

Gum*_*mbo 6

在PHP中,您无法读取不存在的变量.对于不存在的常规变量,$foo或者$bar您将获得未定义的变量通知,对于不存在的数组索引,$array['foo']或者$array['bar']您将获得未定义的索引通知,对于不存在的对象属性,$object->foo或者$object->bar您将获得未定义的属性通知.

这是因为在PHP中必须在完成读访问之前声明变量.PHP具有isset测试变量是否存在的函数,array_key_exists数组索引和property_exists对象属性.此外isset,还有一种测试存在的通用工具.(注意,null值等于不存在.)

因此,在您的情况下,您应该$_POST['name']在尝试阅读之前测试是否存在:

if (array_key_exists($_POST, 'name')) {
    $name = $_POST['name'];
}
// or
if (isset($_POST['name']) {
    $name = $_POST['name'];
}
Run Code Online (Sandbox Code Playgroud)

但请注意,$name现在的存在取决于存在$_POST['name'].