我正在开发多年前构建的应用程序,该应用程序最近停止正常工作。老程序员说,他可能正在访问 $_GET
或 $_POST
变量而不从 $_GET[] array
中读取它们, 但通过 register_globals
我想问:访问$_GET
有哪些不同的方式?不使用 $_GET[]
的变量数组(例如直接方式?),如果知道,我如何检查此应用程序是否使用其中任何一种方式?
提前致谢
编辑:我记得的其他方式是 register_globals
, 不是 magic_quotes
.此外,我不希望使用它,而是检测它是否被使用以及在最新的服务器更新中被弃用(什么可以解释为什么应用程序停止正常工作)
编辑:我今天的英语很糟糕。正如我在其中一个答案中解释的那样:我需要检查,原始程序员是否使用了一些模糊和/或弃用的方法从查询字符串获取变量到 PHP,因此应用程序现在使用的值是错误的/未初始化强>
重要编辑:import_request_variables
不在桌面上,它没有被使用。全部$_
数组也不在讨论范围内,因为最新的更新不会破坏它们(=>它们仍然有效)。我如何检测哪些变量是用 register_globals
初始化的? ?
又一次编辑:我发现了这个:
foreach ($_POST as $k => $v) {
eval("\$".$k." = '".$v."';");
}
foreach ($_GET as $k => $v) {
eval("\$".$k." = '".$v."';");
}
它会不会被最新更新之一破坏(最多 1 周前)?
最佳答案
你的意思是通过Register Globals而不是 Magic Quotes ... BTW Register Globals 是纯粹的邪恶从不使用它们(从 PHP 5.3.0 开始不推荐使用它们)!
编辑:如果您想检查应用程序是否使用了全局寄存器,请尝试搜索 $_GET
值作为变量。例如对于 index.php?id=123
尝试在 PHP 代码中查找 $id
。如果您发现它,这并不意味着该脚本使用了 Register Globals,但是如果 $id
不知从何而来并且从未被初始化/设置,则这是一个好(坏!)迹象表明该应用程序使用了 Register Globals.. .
关于php - 如何在 PHP 中获取 $_GET 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4155156/