gpt4 book ai didi

php - 如何在发布表单时自动填充 PHP 全局变量(即 $email)?

转载 作者:搜寻专家 更新时间:2023-10-31 21:14:35 25 4
gpt4 key购买 nike

我在其他人的表单验证器代码中发现了一些代码。它应该从发布的表单数据中返回一个值。不管怎样,它总是返回NULL。这就是该函数的全部内容(假设这段代码确实在某一时刻起作用):

function _getValue($field)
{
global ${$field};
return ${$field};
}

从其他函数的上下文中,我可以看出它正在尝试从(在本例中)$_POST 变量中获取值。当我将函数更改为以下内容时,一切都很顺利:

function _getValue($field)
{
// $_REQUEST should hold $_GET and $_POST values
return $_REQUEST[$field];
}

所以我的问题是……global ${$field} 在这种情况下到底是什么意思?我知道 ${$field} 是什么,但假设他们将 email 传递给该函数。这个全局 $email 变量来自哪里?

原始功能应该如何工作?我知道有一种叫做“Super Globals”的东西,那很糟糕。这有关系吗?这可能是它停止工作的原因吗?主持人是否关闭了 Super Globals?

[编辑] 我表述问题的方式明显有些困惑。我知道 ${$field} 和 $$field 是什么意思,但我不知道怎么说

global ${$field};
return ${$field};

返回用户在表单中输入的值,例如

<input name="email">

当你打电话时

$this->_getValue('email');

最佳答案

因为 register_globals,在您期望 POST 变量位于全局空间之前的程序员指示。值得庆幸的是,此功能在 PHP 4.2 中默认关闭并在 PHP 5.4 中删除。

引用文档:

When on, register_globals will inject your scripts with all sorts of variables, like request variables from HTML forms.

我想知道怎么会有人认为这是个好主意:)

关于php - 如何在发布表单时自动填充 PHP 全局变量(即 $email)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11837949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com