首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

php基础学习- 关于register_globals的有关问题

2012-10-08 
php基础学习-- 关于register_globals的问题最近发现关于register_globals在版里经常被问起,所以特别专门就

php基础学习-- 关于register_globals的问题

最近发现关于register_globals在版里经常被问起,所以特别专门就这个问题进行一下讲解。

register_globals是

  • <input type="text" name="user_name" id="user_name">;
  • <input type="password" name="user_pass" id="user_pass">;
  • <input type="submit" value="login">;
  • </form>;复制代码

    当register_globals=Off的时候,下一个程序接收的时候应该用$_GET['user_name']和$_GET['user_pass']来接受传递过来的值。(注:当<form>;的method属性为post的时候应该用$_POST['user_name']和$_POST['user_pass'])

    当register_globals=On的时候,下一个程序可以直接使用$user_name和$user_pass来接受值。

    顾名思义,register_globals的意思就是注册为全局变量,所以当On的时候,传递过来的值会被直接的注册为全局变量直接使用,而Off的时候,我们需要到特定的数组里去得到它。所以,碰到上边那些无法得到值的问题的朋友应该首先检查一下你的register_globals的设置和你获取值的方法是否匹配。(查看可以用phpinfo()函数或者直接查看php.ini)

    那我们为什么要使用Off呢?原因有2:
    1、php以后的新版本默认都用Off,虽然你可以设置它为On,但是当你无法控制
    1. <?php
    2. if ( !ini_get('register_globals') )
    3. {
    4. ? ? extract($_POST);
    5. ? ? extract($_GET);
    6. ? ? extract($_SERVER);
    7. ? ? extract($_FILES);
    8. ? ? extract($_ENV);
    9. ? ? extract($_COOKIE);
    10. ? ??
    11. ? ? if ( isset($_SESSION) )
    12. ? ? {
    13. ? ?? ???extract($_SESSION);
    14. ? ? }
    15. }
    16. ?>;
    复制代码

  • 热点排行