在每个PHP文件头上加上
<?php
extract($_REQUEST);
?>

解决方案 »

  1.   

    register_globals=On 会造成安全上的隐患.
      

  2.   

    如果他们不肯将register_globals=On最简单的办法就是
    在有$_GET和$_POST的程序页面,使用表单或URL传递的变量之前加上下面的语句
    extract($_POST);
    extract($_GET);
    这样你就可以相应的得到你想要的变量了
      

  3.   

    还是用 extract($_REQUEST);因为$_REQUEST预定义变量收集了$_POST,$_GET和$_COOKIE的所有信息
      

  4.   

    http://bbs.chinaunix.net/forum/viewtopic.php?t=161690&sid=f59f07531e6f50eb050614014616e092
    关于register_globals的问题,PHP新手必看
      

  5.   

    用extract函数可以解决啊,谢谢各位。学习……
      

  6.   

    $_REQUEST[]数组只能在要求不太严格的情况下使用,因为变量覆盖比较混乱。从安全的角度来看,我一般认为是这个覆盖顺序:$_GET,$_POST,$_COOKIE,$_SESSION,后面的覆盖前面的因为越往后,数据就越难伪造,因此就越安全。(一家之言)也就是说,应该使用下面的语句:
    extract($_GET,EXTR_OVERWRITE);
    extract($_POST,EXTR_OVERWRITE);
    extract($_COOKIE,EXTR_OVERWRITE);
    extract($_SESSION,EXTR_OVERWRITE);这样就最大限度的限制了数据的伪造,因为后面的变量会覆盖前面的。
      

  7.   

    register_globals=On 很方便但很危险。出于安全考虑isp供应商肯定是关闭的,同时还会屏蔽掉执行外部命令的函数你应该按供应商提供的环境设置来配置你的php环境使用extract函数可以有较好的兼容性能,但你也只能在确认没有非法的成员的情况下使用
      

  8.   

    其实一般都是用在off下的环境下编程的,参数就可以用$_post,$_GET,url等来传递了,或者用会话来传递也可以的
      

  9.   

    强烈建议使用$_GET[] $_POST[]等传值方法
    最好改掉register_globals=On的习惯