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);
    }


  • 相关阅读:
    The Quad
    将OrCAD Capture CIS的设计文件(.dsn)导入到PADS Logic VX.2.3
    OrCAD Capture CIS 16.6 将版本16.6的设计文件另存为版本16.2的设计文件
    Eclipse IDE 添加jar包到Java工程中
    PADS Logic VX.2.3 修改软件界面语言
    切换Allegro PCB Editor
    Allegro PCB Design GXL (legacy) 将brd文件另存为低版本文件
    Allegro PCB Design GXL (legacy) 设置自动保存brd文件
    Could not create an acl object: Role '16'
    windows 下apache开启FastCGI
  • 原文地址:https://www.cnblogs.com/see7di/p/2239896.html
Copyright © 2011-2022 走看看