1. 云栖社区>
  2. PHP教程>
  3. 正文

关闭php.ini 魔法引用 _转转转

作者:用户 来源:互联网 时间:2017-12-01 10:52:26

php引用ini关闭魔法转转

关闭php.ini 魔法引用 _转转转 - 摘要: 本文讲的是关闭php.ini 魔法引用 _转转转, PHP魔术引号是在编程过程中必须注意的,否则会带来灾难性的麻烦,汗,今天就有客户找我了,我排查错误半天,发现是PHP魔术引号在作怪。真是很郁闷的一件事,我就纳闷儿了,PHP默认魔术引号是关闭的,那个破网管闲的没事,给打开了。后来,偶找到他


PHP魔术引号是在编程过程中必须注意的,否则会带来灾难性的麻烦,汗,今天就有客户找我了,我排查错误半天,发现是PHP魔术引号在作怪。真是很
郁闷的一件事,我就纳闷儿了,PHP默认魔术引号是关闭的,那个破网管闲的没事,给打开了。后来,偶找到他,他还给偶谈一些什么SQL注入的大道理,唉,
真是无语。。


PHP的魔术引号给程序编写带来了一丁点方便,但却严重影响的程序的可移植性,在开启magic_quotes_gpc的环境下写的程序到没开启的环境下就有可能出现错误。所以通常情况下,我们会关闭magic_quotes_gpc以避免它带来的问题。


手册里介绍了三种方法,在些整理一下:


1 修改PHP配置文件php.ini


这种方法只适于自己有权管理服务器的情况下,如果用的虚拟空间,那就只能采用后两条方法。


在PHP配置文件php.ini中将magic_quotes_gpc、magic_quotes_runtime、magic_quotes_sybase全部设为off。如下所示:


; Magic quotes


;


; Magic quotes for incoming GET/POST
/Cookie
data.


magic_quotes_gpc = Off


; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.


magic_quotes_runtime = Off


; Use Sybase-style magic quotes (escape ‘ with ” instead of ’).


magic_quotes_sybase = Off


2 利用.htaccess文件


该方法只在服务器支持htaccess的情况下,现在的服务器一般都会支持的


在程序目录下.htaccess文件中增加下面一句:


php_flag magic_quotes_gpc Off


3 在代码中屏蔽


该方法是移植性最强的,不用考虑服务器的配置,只要支持PHP就可以使用。


在所有PHP文件开始处增加下面代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<?php
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
 
return $value;
}
 
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
?>

自由转载,转载请注明:
转载自WEB开发笔记
www.chhua.com

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 引用 , ini , 关闭 , 魔法 转转 ,以便于您获取更多的相关知识。