博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP中set_magic_quotes_runtime()和get_magic_quotes_gpc()
阅读量:6551 次
发布时间:2019-06-24

本文共 1407 字,大约阅读时间需要 4 分钟。

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

 还可以用ini_get和ini_set读取和设置系统配置
!ini_get('magic_quotes_runtime') && ini_set('magic_quotes_runtime', 0);  //自动转义功能关

 

转载地址:http://pbnco.baihongyu.com/

你可能感兴趣的文章
C++ 文本查询2.0(逻辑查询)
查看>>
Objective-C学习总结-13协议1
查看>>
web学习方向
查看>>
寒假训练营第四次作业
查看>>
SQLServer 维护脚本分享(05)内存(Memory)
查看>>
A*算法实现
查看>>
第一周 从C走进C++ 002 命令行参数
查看>>
【java】itext pdf 分页
查看>>
看看这个电脑的配置
查看>>
用户自定义控件(.ascx)
查看>>
[转]【NoSQL】NoSQL入门级资料整理(CAP原理、最终一致性)
查看>>
RequireJS进阶(二)
查看>>
.NET中数组的隐秘特性
查看>>
Console-算法-一个偶数总能表示为两个素数之和
查看>>
我设计的网站的分布式架构
查看>>
python基础学习笔记(十三)
查看>>
背景图片的知识点
查看>>
[你必须知道的.NET]第十七回:貌合神离:覆写和重载
查看>>
linux extract rar files
查看>>
用CS的思维可以指导BS的项目吗?
查看>>