zoukankan      html  css  js  c++  java
  • set_magic_quotes_runtime()和get_magic_quotes_gpc()

    1、PHP中set_magic_quotes_runtime()函数的作用:

    此函数来修改PHP.ini文件中的 magic_quotes_runtime 变量的状态,如果想获得magic_quotes_runtime 变量的状态用get_magic_quotes_runtime这个函数如果返回0表示本功能被关闭,如果返回1表示本功能已经开启。 magic_quotes_runtime的功能是当它被开启的时候所有外部引入的数据库资料或者文件等等都会自动转为含有反斜线溢出字符的资料。比如: 用户向数据库提交的数据中含有\" '这些符号的时候它就会在这些符号的前面自动加上"\"转义符。
    这个属性在PHP4以前的版本都是默认关闭的,PHP4.0以后的版本如果程序要用到将它关闭的时候直接写成set_magic_quotes_runtime(0)将其关闭。

    2.get_magic_quotes_gpc函数作用:

    此函数取得 PHP 环境配置的变量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示关闭本功能;返回 1 表示本功能打开。当

    magic_quotes_gpc 打开时,所有的 ' (单引号), " (双引号), \ (反斜线) and 空字符会自动加上转义符\;

    默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

    其实这个函数就是判断有PHP有没有自动调用addslashes 这个函数,

    下面是例子

    echo get_magic_quotes_gpc(); // 很不好意思,我的这个是0
    echo

    tiny_mce_marker

    POST['name']; // jason'name
    echo addslashes(

    tiny_mce_marker

    POST['name']); // jason\'name


    if (!get_magic_quotes_gpc()) {
    $name = addslashes(

    tiny_mce_marker

    POST['name']);
    } else {
    $name =

    tiny_mce_marker

    POST['name'];
    }


    echo $name; // jason\'name
    //这样输入的数据可以安全的写入到数据库了。
    ?>

    比如下面的一段代码,把两个函数都做了处理。

    if(version_compare(PHP_VERSION,'6.0.0','<') ) {
    @set_magic_quotes_runtime (0);
    define('MAGIC_QUOTES_GPC',get_magic_quotes_gpc()?True:False);
    }


  • 相关阅读:
    英特尔“硬盘内存一体化”首款产品正式发布,读写速度超千倍,存储密度扩充十倍
    程序员,你为什么值这么多钱?
    不懂程序看的明白《黑客帝国》吗?
    程序员的工作、学习与绩效
    架构设计师能力模型
    .net平台的MongoDB使用
    转载-30分钟搞定后台登录界面(103个后台PSD源文件、素材网站)
    XAF-DevExpress.ExpressApp.DC.Xpo.XpoTypeInfoSource 生成实体的过程-学习笔记
    谈谈敏捷开发
    XAF-由于try catch导致的性能问题一例
  • 原文地址:https://www.cnblogs.com/see7di/p/2239896.html
Copyright © 2011-2022 走看看