我一直在自己学习 PHP,并且我使用了一个 Web 主机帐户来测试我的脚本,默认情况下它们在其中启用了 register_globals。我知道这不安全,但在测试示例代码时我没有打扰。
现在,我正在为我所属的一个非营利组织开发一个小型实时站点,他们使用的主机默认情况下关闭了 register_globals,这是应该的。
所以,现在我的问题。我已经习惯了这种工作方式(使用 register_globals ):
假设我们正在加载 index.php?pID=1。index.php 的代码将包含这一行:
if($pID==1) include('content1.php');
请注意,我使用了 $pID 而不是 $_GET['pID'] 并且我没有在代码中的任何地方将 $_GET['pID'] 分配给 $pID。无论如何,这工作得很好。所以(当然)我想知道当我在我的 orgs 主机上使用相同的代码时,这是否是因为 register_globals 关闭而突然不起作用?
如果是这样,是否有一种解决方法可以再次使超全局变量变得神奇,或者我是否必须手动将所有 $_GET 变量分配给我自己的全局变量?