php - 如何在 PHP 中获取 $_GET 变量

标签 php register-globals

我正在开发多年前构建的应用程序,该应用程序最近停止正常工作。老程序员说,他可能正在访问 $_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/

相关文章:

javascript - Vue.js 在一个组件内的另一个组件中使用变量

php - 弱类型 PHP : why use isset at all?

php - 在指定位置插入数组

php - 自 php 5.4 起链接不起作用

PHP:如何使用数组索引访问数组元素值

php - 如何对具有软件版本号的表中的列进行排序?

php - 使代码在 register_globals 关闭的情况下工作

php - 如何在 PHP 5.4 或更新版本中模拟 register_globals?

php 通过 .htaccess 注册全局变量开/关

php - 警告 : Unknown: Your script possibly relies on a session side-effect which existed until PHP 4. 2.3