gpt4 book ai didi

php - 是否使用 $GLOBALS ['HTTP_GET_VARS' ] 已弃用?

转载 作者:可可西里 更新时间:2023-10-31 23:52:31 26 4
gpt4 key购买 nike

我知道使用$HTTP_GET_VARS已弃用,但如何使用 $GLOBALS['HTTP_GET_VARS'] ?该数组键将来可能会消失吗?

我基本上在遗留项目中拥有以下所有内容,我需要将其与 CMS 集成,除非绝对必要,否则我真的不想更新它。

function table_manager_import_vars($var) {
$vars = explode(",", $var);

foreach($vars AS $var) {
switch ($var) {
case "G":
$var = "HTTP_GET_VARS";
break;
case "P":
$var = "HTTP_POST_VARS";
break;
case "C":
$var = "HTTP_COOKIE_VARS";
break;
case "S":
$var = "HTTP_SESSION_VARS";
//session_start();
break;
case "E":
$var = "HTTP_SERVER_VARS";
break;
}
if (isset($GLOBALS[$var])) {
if (is_array($GLOBALS[$var])) {
foreach($GLOBALS[$var] AS $var1 => $value) {
if ($var1 != $var) {
$GLOBALS[$var1] = $value;
}
}
}
}
}
}
// called like this
table_manager_import_vars("G,P,C,S,E");

是的,您猜对了,项目的每个方面都有这样的功能,只是每次的名称不同!!

最佳答案

您的问题:

Is using $GLOBALS['HTTP_GET_VARS'] deprecated?

回答:

是的。

http://www.php.net/manual/en/reserved.variables.get.php

此页面明确指出 $HTTP_GET_VARS 已被弃用,您应该改用 $_GET

$HTTP_GET_VARS$GLOBALS['HTTP_GET_VARS'] 相同。因此它也因此被弃用。 (请注意,可以使用 $GLOBALS['variablename'] 引用在全局范围内定义的所有变量)

顺便说一下:当涉及到使用 $HTTP_GET_VARS 的遗留代码时,我知道您说过如果可以避免,您希望避免更改代码,但值得指出的是这个时代的代码在现代 PHP 安装中运行时可能会出现大问题,因为旧版本的 PHP 会假设正在使用 magic_quotes 之类的东西。如果您在较新版本的 PHP 中运行相同的代码,您将不会有 magic_quotes,因此您应该确保数据被正确转义。

查看您获得的整个代码,它看起来像是在尝试将各种 HTTP_***_VARS 数组中的所有变量复制到全局范围中。这是在 真正 PHP 的旧版本中自动完成的功能,但由于它会导致大量安全问题而被删除。我强烈建议放弃所有代码并将所有代码转换为使用 $_GET。你可能想要 google for register_globals有关为什么这是一件坏事的更多信息。

关于php - 是否使用 $GLOBALS ['HTTP_GET_VARS' ] 已弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6044995/

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