在php.ini中修改
设置register_globals=ON ;// [Off]可以直接传取php中的变量.
不过这个方法是不够安全.如下ini所说.
-> register_globals = Off [安全,性能]
; 不再为输入数据注册全局变量(POST, GET, cookies, 环境变量, 服务器变量)
; 不要使用$foo,而要使用$_REQUEST["foo"](包含任何通过请求传送的数据,即:POST, GET, cookies, 环境变量, 服务器变量),
; 或使用指定的$_GET["foo"], $_POST["foo"], $_COOKIE["foo"], $_FILES["foo"](不包含在$_REQUEST数组中), 这取决于请求来自何处。
; 同时,你可以查看import_request_variables()函数(将 GET/POST/Cookie 变量导入到全局作用域中)。
; 注意,register_globals将在下一个版本中被废除(默认关闭),因为它总是带来太多的安全问题。
但是老代码中若存在非_POST类型包括的代码,可以直接通过在inc文件中添加变换不用修改以前变量.而且这样更可以延续以前的对变量处理方式.
foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
foreach($$_request as $_k => $_v) {
${$_k} = $_v; //直接将$_Post,$_Get等中的变量替换出来.
}
}
当然必须考虑到处理post,get的数据,故对$_v作为参数传入处理函数.
function MagicQuotes(&$svar) {
if(!get_magic_quotes_gpc()) {
if( is_array($svar) ) {
foreach($svar as $_k => $_v)
$svar[$_k] = MagicQuotes($_v);
} else
$svar = addslashes($svar);
}
return $svar;
}
则需要修改上为即可.
${$_k}=MagicQuotes($_v);