设为首页收藏本站

就爱编程论坛

 找回密码
 注册

人人连接登陆

无需注册,直接登录

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 520|回复: 0
打印 上一主题 下一主题

php全局变量禁用(register_globals)的变通办法 [复制链接]

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    2025-5-27 03:37:20
  • 签到天数: 366 天

    [LV.9]以坛为家II

    论坛先锋 学习至圣 荣誉成员 论坛元老 活跃之星 终极领袖

    我玩的应用:

    跳转到指定楼层
    楼主
    发表于 2011-7-20 12:55:09 |只看该作者 |倒序浏览
    为了程序安全,一般虚拟主机都关闭了register_globals(自动全局变量),而我们写程序大多都有习惯不写$_GET、$_POST,那么碰上一些关闭自动全局变量的虚拟主机时怎么办呢?不想重新去加$_GET、$_POST的可以用import_request_variables这个函数来实现.使用方法是将这个函数放到一个公用的包含函数里面或者在每个程序前面使用。
    register_globals(自动全局变量)



    bool import_request_variables ( string $types [, string $prefix ] )
    将 GET/POST/Cookie 变量导入到全局作用域中。如果虚拟主机禁止register_globals,但又想用到一些全局变量,那么此函数就很有用。
    你可以使用 types 参数指定需要导入的变量。可以用字母‘G’、‘P’和‘C’分别表示 GET、POST 和 Cookie。这些字母不区分大小写,所以你可以使用‘g’、‘p’和‘c’的任何组合。POST 包含了通过 POST 方法上传的文件信息。注意这些字母的顺序,当使用“gp”时,POST 变量将使用相同的名字覆盖 GET 变量。任何 GPC 以外的字母都将被忽略。
    prefix 参数作为变量名的前缀,置于所有被导入到全局作用域的变量之前。所以如果你有个名为“userid”的 GET 变量,同时提供了“pref_”作为前缀,那么你将获得一个名为 $pref_userid 的全局变量。
    如果你对导入其它全局变量(例如 SERVER 变量)感兴趣,请考虑使用 extract()
    注: 虽然 prefix 参数是可选的,但如果不指定前缀,或者指定一个空字符串作为前缀,你将获得一个 E_NOTICE 级别的错误。使用默认错误报告级别是不显示注意(Notice)级别的错误的。

    <?php// 此处将导入 GET 和 POST 变量// 使用“yl_”作为前缀
    import_request_variables("gP","yl_");    
    print$yl_foo;?>

    附件: 你需要登录才可以下载或查看附件。没有帐号?注册 人人连接登陆
    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    分享分享0 收藏收藏0 支持支持0 反对反对0 分享到人人 转发到微博
    [img=http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=fRUcHhYWGAQ9GxIFEBwUEVMeEhA]http://rescdn.qqmail.com/zh_CN/htmledition/images/function/qm_open/ico_mailme_02.png[/img]

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册 人人连接登陆

    晴云孤魂's Blog|就爱编程搜帖|手机版|Archiver|就爱编程论坛     

    GMT+8, 2025-7-2 05:04 , Processed in 0.091916 second(s), 29 queries .

    Powered by Discuz! X2

    © 2001-2011 Comsenz Inc.

    回顶部