`
yushine
  • 浏览: 196399 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

set_magic_quotes_runtime(0)函数作用解释

    博客分类:
  • PHP
阅读更多
    set_magic_quotes_runtime(0);

    可以修改php.ini中 magic_quotes_runtime boolean的设置

    当你的数据中有一些
    \
    "
    '
    这样的字符要写入到数据库里面,又想不被过滤掉的时候,它就很有用,会在这些字符前加上\

    中国\地大物博"哈哈"

    中国\\地大物博\"哈哈\"


    set_magic_quotes_runtime是用来设置PHP 环境配置的变量 magic_quotes_runtime 值。
    0-关闭 1-打开

    程序中检测状态用get_magic_quotes_runtime,返回 0 表示关闭本功能;返回 1 表示本功能打开。若 magic_quotes_runtime 打开时,所有外部引入的数据库资料或者文件等等都会自动转为含有反斜线溢出字符的资料。

在php.ini的配置文件中,有个布尔值的设置,就是magic_quotes_runtime,当它打开时,php的大部分函数自动的给从外部引入的 (包括数据库或者文件)数据中的溢出字符加上反斜线。

当然如果重复给溢出字符加反斜线,那么字符串中就会有多个反斜线,所以这时就要用set_magic_quotes_runtime()与 get_magic_quotes_runtime()设置和检测php.ini文件中magic_quotes_runtime状态。

为了使自己的程序不管服务器是什么设置都能正常执行。可以在程序开始用get_magic_quotes_runtime检测设置状态秋决定是否要手工处理,或者在开始(或不需要自动转义的时候)用set_magic_quotes_runtime(0)关掉。

magic_quotes_gpc设置是否自动为GPC(get,post,cookie)传来的数据中的'"\加上反斜线。可以用 get_magic_quotes_gpc()检测系统设置。如果没有打开这项设置,可以使用addslashes()函数添加,它的功能就是给数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。

回复 引用

订阅 TO



魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法
PHP提供两个方便我们引用数据的魔法引用函数 magic_quotes_gpc和magic_quotes_runtime,这两个函数如果在php.ini设置为ON的时候,就会为我们引用的数据碰到 单引号' 和 双引号" 以及 反斜线\ 时自动加上反斜线,帮我们自动转译符号,确保数据操作的正确运行,可是我们在php不同的版本或者不同的服务器配置下,有的 magic_quotes_gpc和magic_quotes_runtime设置为on,有的又是off,所以我们写的程序必须符合on和off两种情况。那么magic_quotes_gpc和magic_quotes_runtime两个函数有什么区别呢?看下面的说明:

magic_quotes_gpc
作用范围是:WEB客户服务端;
作用时间:请求开始是,例如当脚本运行时。

magic_quotes_runtime
作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;
作用时间:每次当脚本访问运行状态中产生的数据。

所以

magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据
例子说明:
$data1 = $_POST['aaa'];
$data2 = implode(file('1.txt'));
if(get_magic_quotes_gpc()){
   //把数据$data1直接写入数据库 (自动转译)
}else{
   $data1 = addslashes($data1);
   //把数据$data1写入数据库,用函数(addslashes()转译)
}
if(get_magic_quotes_runtime()){
   //把数据$data2直接写入数据库(自动转译)
//从数据库读出的数据要经过一次stripslashes()之后输出stripslashes()的作用是去掉:\ ,和addslashes()作用相反
}else{
   $data2 = addslashes($data2);
    //把数据$data2写入数据库


//从数据库读出的数据直接输出
}
最关键的区别是就是上面提到的2点:他们针对的处理对象不同
magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据
在这里顺便在提几个想关联的函数:


set_magic_quotes_runtime():
设置magic_quotes_runtime值. 0=关闭.1=打开.默认状态是关闭的.可以通过 echo phpinfo(); 查看magic_quotes_runtime
get_magic_quotes_gpc():
查看magic_quotes_gpc值.0=关闭.1=打开

get_magic_quotes_runtime():
查看magic_quotes_runtime值。0=关闭.1=打开.
注意的是没有 set_magic_quotes_gpc()这个函数,就是不能在程序里面设置magic_quotes_gpc的值。
分享到:
评论

相关推荐

    php set_magic_quotes_runtime() 函数过时解决方法

    把函数: set_magic_quotes_runtime($new_setting); 替换成: ini_set(“magic_quotes_runtime”, $new_setting);

    get_magic_quotes函数详解

    quget_magic_quotes函数详解oget_magic_quotes函数详解get_magic_quoget_magic_quotes函数详解get_magic_quotes函数详解get_magic_quotes函数详解get_magic_quotes函数详解tes函数详解get_magic_quotes函数详解get_...

    基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍

    本篇文章小编为大家介绍,基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍。需要的朋友参考下

    php中get_magic_quotes_gpc()函数说明

    get_magic_quotes_gpc函数是一个用来判断是否为用户提供的数据增加斜线了,这个在php.ini配置文件中哦,下面我来介绍一下get_magic_quotes_gpc()函数说明. get_magic_quotes_gpc函数介绍 取得 PHP 环境变数 magic_...

    phpmailer v5.1 新版本,支持gmail,有各种示例

    请先下载v5.1版本(gmail和网易本人测试通过)。... set_magic_quotes_runtime(0); } 5、如果您的包比较老(v2.3之前)在windows 下要注释掉: //$mail->IsSendmail(); // tell the class to use Sendmail

    深入PHP magic quotes的详解

    特地查看了下手册,关于php  magic quotes,常见的几个设置如下,magic_quotes_gpc,magic...get_magic_quotes_gpc()){$post=addslashes($post);}如果开启了它们,会自动给你转义单引号(’)、双引号(”)、反斜线(\

    php参数过滤、数据过滤类

    magic_quotes_runtime对于进出数据库的数据可以起到格式话的作用。其实,早在以前注入很疯狂时,这个参数就很流行了。 3)在使用系统函数时,必须使用escapeshellarg(),escapeshellcmd()参数去过滤,这样你也就可以...

    php参数过滤、数据过滤类.zip

    magic_quotes_runtime对于进出数据库的数据可以起到格式话的作用。其实,早在以前注入很疯狂时,这个参数就很流行了。 3)在使用系统函数时,必须使用escapeshellarg(),escapeshellcmd()参数去过滤,这样你...

    PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法

    php $magic_quotes_gpc = get_magic_quotes_gpc(); @extract(daddslashes($_COOKIE)); @extract(daddslashes($_POST)); @extract(daddslashes($_GET)); if(!$magic_quotes_gpc) { $_FILES = daddslashes($_FILES); }...

    php magic_quotes_gpc的一点认识与分析

    Magic Quotes 代码: Magic Quotes is a process that automagically escapes incoming data to the PHP script. It’s preferred to code with magic quotes off and to instead escape the data at runtime, as ...

    PHP数据的提交与过滤基本操作实例详解

    分享给大家供大家参考,具体如下: ...1)提交变量进数据库时,我们必须使用addslashes()进行过滤,像我们的注入问题,一个addslashes()也就...magic_quotes_runtime对于进出数据库的数据可以起到格式话的作用。其实,早

    iProber v0.01PHP探针

    增加 magic_quotes_gpc 和 magic_quotes_runtime 两个参数的控测 修正数据IO检测在某些服务器下报错的BUG 修正空余空间检测在某些服务器下报错的BUG

    基于PHP magic_quotes_gpc的使用方法详解

    本篇文章是对PHP中magic_quotes_gpc的使用方法进行了详细的分析介绍,需要的朋友参考下

    PHP 转义使用详解

    php中数据的魔法引用函数 magic_quotes_gpc 或 magic_quotes_runtime  设置为on时,为我们引用的数据碰到 单引号’ 和 双引号” 以及 反斜线\ 时自动加上反斜线,帮我们自动转译符号,确保数据操作的正确运行两者...

    PHP 选项及相关信息函数库

    error_log : 送出一个错误信息。 error_reporting : 配置错误信息回报的等级。... get_magic_quotes_runtime : 取得 PHP 环境变量 magic_quotes_runtime 的值。 getlastmod : 返回该网页的最后

    PHP的特殊字符转译函数使用.pdf

    PHP的特殊字符转译函数使用 get_magic_quotes_gpc() long get_magic_quotes_gpc()

    php-magic-quotes-gpc:在PHP 5.4更高版本上为旧版代码实现magic_quotes_gpc

    PHP魔术引号实现在PHP 5.4更高版本上为旧版代码实现magic_quotes_gpc 如果您要将旧版源代码迁移到上述PHP 5.4版的环境中,但是根据Magic Quotes magic_quotes_gpc SQL保护,其中包括许多易受攻击的数据库查询代码。...

Global site tag (gtag.js) - Google Analytics