我在我的网站上使用全局变量GET,POST,FILES,SESSION
。我在register_globals is on
的服务器上写了我的网站。我只是将我的网站移动到register_globals is off
的另一台服务器,我实际上不知道如何处理它。
例如,我有这个代码:
$do = $_GET['do'];
或
$name = $_POST['name'];
我怎么理解,我不能这样做,php无法提取这些数据。如何更改我的代码以从GET,POST,SESSION,FILES接收数据?
谢谢
答案 0 :(得分:7)
你误解了。 $_GET
& co是superglobals,它们始终可用且无法禁用,您的代码将始终有效。
register_globals使这些$_GET
值可直接作为变量使用。即而不是$_GET['do']
,您可以使用$do
。
答案 1 :(得分:1)
这是访问变量的正确方法,适用于register_globals_gpc = off
:
$do = $_GET['do'];
如果register_globals_gpc = on
自动提取$_GET
,这将有效:
echo $do;
所以如果你按照你表现的方式这样做,那么一切都很顺利。 $_GET
,$_POST
,$_COOKIE
以及$_SERVER
和$_SESSION
已经是超全球的,可以在任何地方使用。
答案 2 :(得分:1)
快速简便的方法是使用extract
功能。
extract($_POST);
extract($_GET);
extract($_COOKIES);
但是从安全性和可维护性方面来看,这是非常非常糟糕的!如果可能,您应该将代码重写为:
$variable = $_POST['variable'];
..
答案 3 :(得分:1)
当我搜索此问题并打开它给我the solution的第一个搜索结果时。试试这个,希望它能为你效用