正确取消设置超全局变量

Unsetting Superglobal Variable Properly

我最近从 Dreamweaver 切换到 Netbeans,并且由于对干净代码的内置责任,我意识到我在编写 proper/clean 代码方面还有一些工作要做。

目前,我正在尝试从直接访问 SuperGlobals(例如 $_POST)进行调整。对于这个问题,具体来说,我试图弄清楚如何临时处理取消设置 SuperGlobal 变量。

$sampleArray = ["Designer_Name" => "someName",
            "Designer_Key" => "someName's UID",
            "Designer_Store" => "someStoreName",
            "Group_Name" => "someGroupName",
            "Dropbox_Key" => "someUID"
            ];

通常情况下,我可能会这样做:

unset($_POST['Dropbox_Key']);

在这个特定问题中,我尝试使用少量代码。我知道我可以 filter/sanitize 数组的每个元素并将其分配给一个变量,但是由于 $_POST 数组不是用户输入的,所以我不太关心这个。

对于这个数组,我会将整个数组插入数据库 table,减去最后一个元素。对于与数组其余部分相同的 table,我不需要 'Dropbox_Key'。我稍后会将该元素用于另一个 table.

插入代码如下所示:

$insert = $dbs->insert('sometable', filter_input_array(INPUT_POST));

所以,我要问的问题是,尽管忽略访问 SuperGlobals 的 netbeans 警告更容易,但是否有一些 current/cleaner 方法可以实现我的意图(取消设置 $_POST 元素) ,还是忽略警告是前往此处的最佳方式?

我们在超级全局输入(如 $_POST)上使用 filter_input() 的原因是因为它往往是我们无法信任的用户输入数据。通过过滤,我们可以转义和清理输入以帮助防止 XSS(跨站点脚本)和 SQL 注入。

如果在您自己的代码中取消设置超级全局,则不会带来任何风险(您可以控制您的代码),因此我们可以安全地直接取消设置 unset($_POST['Dropbox_Key']);