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_gpc()` 和 `get_magic_quotes_runtime()` 函数是PHP早期版本中用于自动转义用户提交的数据以防止SQL注入等安全问题的两个函数。本文将详细介绍这两个函数的功能、使用方法以及它们在PHP中的作用。...
magic_quotes_gpc与magic_quotes_runtime是PHP语言中用于自动转义特殊字符的两个配置指令,它们的主要目的是为了防止SQL注入等安全问题。这两个指令对于处理用户输入的数据,尤其是从GET、POST、COOKIE等超全局变量...
2. magic_quotes_runtime:如果启用,从外部源获取数据的大多数函数,包括数据库和文本文件,将自动转义引号。可以在运行时设置,并且默认是关闭的。 3. magic_quotes_sybase:如果启用,单引号将被单引号转义,而...
php中数据的魔法引用函数 magic_quotes_gpc 或 magic_quotes_runtime 设置为on时,为我们引用的数据碰到 单引号’ 和 双引号” 以及 反斜线\ 时自动加上反斜线,帮我们自动转译符号,确保数据操作的正确运行两者...
例如,如果检测到magic_quotes_gpc关闭(get_magic_quotes_gpc()返回0),则可以使用addslashes()函数: ```php if (!get_magic_quotes_gpc()) { $prot = addslashes($prot); } ``` 在使用addslashes()函数时,...
特地查看了下手册,关于php magic quotes,常见的几个设置如下,magic_quotes_gpc,magic_quotes_sybase,magic_quote_runtime,这几个函数是在php.ini中去配置的,从手册中可以看出从php5.3后已经废除了这些特性,...
在PHP的早期版本中,有两个名为`magic_quotes_gpc`和`magic_quotes_runtime`的魔法引用函数。如果它们在`php.ini`配置文件中被设置为`ON`,则系统会自动对来自客户端的数据(如GET、POST、COOKIES)进行转义。然而,...
中开启magic_quotes_gpc和magic_quotes_runtime。magic_quotes_gpc可以把get,post,cookie里的引号变为斜杠。magic_quotes_runtime对于进出数据库的数据可以起到格式话的作用。其实,早在以前注入很疯狂时,这个参数...
文章中有不正确的或者说辞不清的地方,麻烦大家指出了~~~与PHP字符串转义相关的配置和函数如下: 1.magic_quotes_runtime 2.magic_quotes_gpc 3.addslashes()和stripslashes() 4.mysql_escape_string() 5....
中开启magic_quotes_gpc和magic_quotes_runtime。magic_quotes_gpc可以把get,post,cookie里的引号变为斜杠。magic_quotes_runtime对于进出数据库的数据可以起到格式话的作用。其实,早在以前注入很疯狂时,这个参数...
在PHP编程中,需要注意一些关键点以确保代码的正确性和高效性。以下是对这些要点的详细解释: ...同时,时刻关注服务器配置,如`magic_quotes_gpc`和`magic_quotes_runtime`,确保数据处理的一致性和安全性。
在讨论mysql_real_escape_string()和addslashes()之前,了解get_magic_quotes_gpc()和get_magic_quotes_runtime()两个函数同样重要。这两个函数用于检查PHP配置文件php.ini中是否开启了magic_quotes_gpc和magic_...
此外,`magic_quotes_gpc` 和 `magic_quotes_runtime` 配置会影响序列化数据的处理。如果这两个配置开启,需分别使用 `stripslashes()` 进行处理,以防止额外的反斜杠干扰反序列化过程。 4. **处理magic_quotes**:...
`magic_quotes_gpc`和`magic_quotes_runtime`是两个旧版的PHP配置选项,它们会影响数据的处理方式。如果`magic_quotes_gpc`开启,所有通过GET、POST和COOKIE传递的数据都会自动加上反斜杠,所以在反序列化前需要用`...
get_magic_quotes_gpc : 取得 PHP 环境变量 magic_quotes_gpc 的值。 get_magic_quotes_runtime : 取得 PHP 环境变量 magic_quotes_runtime 的值。 getlastmod : 返回该网页的最后
- **Magic Quotes GPC检查**:通过`define('MAGIC_QUOTES_GPC',get_magic_quotes_gpc())`来确定PHP是否开启了Magic Quotes GPC功能,并根据结果对输入的数据进行相应的处理,增强安全性。 - 对于特定的请求方法(如`...