`
cuckoosnest
  • 浏览: 103614 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP基础002: 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法

阅读更多
PHP基础002: 魔法引用函数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的值。

分享到:
评论

相关推荐

    get_magic_quotes函数详解

    `get_magic_quotes_gpc()` 和 `get_magic_quotes_runtime()` 函数是PHP早期版本中用于自动转义用户提交的数据以防止SQL注入等安全问题的两个函数。本文将详细介绍这两个函数的功能、使用方法以及它们在PHP中的作用。...

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

    magic_quotes_gpc与magic_quotes_runtime是PHP语言中用于自动转义特殊字符的两个配置指令,它们的主要目的是为了防止SQL注入等安全问题。这两个指令对于处理用户输入的数据,尤其是从GET、POST、COOKIE等超全局变量...

    php magic_quotes_gpc的一点认识与分析

    2. magic_quotes_runtime:如果启用,从外部源获取数据的大多数函数,包括数据库和文本文件,将自动转义引号。可以在运行时设置,并且默认是关闭的。 3. magic_quotes_sybase:如果启用,单引号将被单引号转义,而...

    PHP 转义使用详解

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

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

    例如,如果检测到magic_quotes_gpc关闭(get_magic_quotes_gpc()返回0),则可以使用addslashes()函数: ```php if (!get_magic_quotes_gpc()) { $prot = addslashes($prot); } ``` 在使用addslashes()函数时,...

    深入PHP magic quotes的详解

    特地查看了下手册,关于php magic quotes,常见的几个设置如下,magic_quotes_gpc,magic_quotes_sybase,magic_quote_runtime,这几个函数是在php.ini中去配置的,从手册中可以看出从php5.3后已经废除了这些特性,...

    PHP daddslashes 使用方法介绍

    在PHP的早期版本中,有两个名为`magic_quotes_gpc`和`magic_quotes_runtime`的魔法引用函数。如果它们在`php.ini`配置文件中被设置为`ON`,则系统会自动对来自客户端的数据(如GET、POST、COOKIES)进行转义。然而,...

    php参数过滤、数据过滤类

    中开启magic_quotes_gpc和magic_quotes_runtime。magic_quotes_gpc可以把get,post,cookie里的引号变为斜杠。magic_quotes_runtime对于进出数据库的数据可以起到格式话的作用。其实,早在以前注入很疯狂时,这个参数...

    PHP字符转义相关函数小结(php下的转义字符串)

    文章中有不正确的或者说辞不清的地方,麻烦大家指出了~~~与PHP字符串转义相关的配置和函数如下: 1.magic_quotes_runtime 2.magic_quotes_gpc 3.addslashes()和stripslashes() 4.mysql_escape_string() 5....

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

    中开启magic_quotes_gpc和magic_quotes_runtime。magic_quotes_gpc可以把get,post,cookie里的引号变为斜杠。magic_quotes_runtime对于进出数据库的数据可以起到格式话的作用。其实,早在以前注入很疯狂时,这个参数...

    基于PHP编程注意事项的小结

    在PHP编程中,需要注意一些关键点以确保代码的正确性和高效性。以下是对这些要点的详细解释: ...同时,时刻关注服务器配置,如`magic_quotes_gpc`和`magic_quotes_runtime`,确保数据处理的一致性和安全性。

    php常用的安全过滤函数集锦

    在讨论mysql_real_escape_string()和addslashes()之前,了解get_magic_quotes_gpc()和get_magic_quotes_runtime()两个函数同样重要。这两个函数用于检查PHP配置文件php.ini中是否开启了magic_quotes_gpc和magic_...

    汇总PHP编程注意事项.doc

    此外,`magic_quotes_gpc` 和 `magic_quotes_runtime` 配置会影响序列化数据的处理。如果这两个配置开启,需分别使用 `stripslashes()` 进行处理,以防止额外的反斜杠干扰反序列化过程。 4. **处理magic_quotes**:...

    PHP中的序列化和反序列化

    `magic_quotes_gpc`和`magic_quotes_runtime`是两个旧版的PHP配置选项,它们会影响数据的处理方式。如果`magic_quotes_gpc`开启,所有通过GET、POST和COOKIE传递的数据都会自动加上反斜杠,所以在反序列化前需要用`...

    PHP 选项及相关信息函数库

     get_magic_quotes_gpc : 取得 PHP 环境变量 magic_quotes_gpc 的值。 get_magic_quotes_runtime : 取得 PHP 环境变量 magic_quotes_runtime 的值。 getlastmod : 返回该网页的最后

    discuz源码分析

    - **Magic Quotes GPC检查**:通过`define('MAGIC_QUOTES_GPC',get_magic_quotes_gpc())`来确定PHP是否开启了Magic Quotes GPC功能,并根据结果对输入的数据进行相应的处理,增强安全性。 - 对于特定的请求方法(如`...

Global site tag (gtag.js) - Google Analytics