php基础知识-魔术引用
示例代码下载页
http://xieye.iteye.com/blog/1336095(在附件)
魔术引用是指:服务器对一些字符做自动转换,以方便程序员的做法。
来源:最开始,php的设计者为了方便程序员将表单数据添加到数据库,在配置文件中加了一个设置,当选项打开时,魔术引用启用,当选项关闭时,魔术引用不启用。
php.ini大约441行
magic_quotes_gpc = Off
注释是; Magic quotes for incoming GET/POST/Cookie data.
注释表明为on时会对进入服务器的get/post/cookie数据做自动转换。
1)addslashes函数
介绍魔术引用之前,先介绍addslashes函数
该函数返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。
一个使用 addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O'reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \ 作为转义符:O\'reilly。这样可以将数据放入数据库中,而不会插入额外的 \。当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ' 时将使用 ' 进行转义。
默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
例子 1. addslashes() 示例
http://localhost/command/peixun/magicquote/1.php
<?php
$str = "Is your name O'reilly?";
// 输出:Is your name O\'reilly?
echo addslashes($str);
2)测试配置选项magic_quotes_gpc
首先确保magic_quotes_gpc = On,如果是off或0,则需要修改,并重启apache服务器。
http://localhost/command/peixun/magicquote/2.php
<?php
require_once('Public/CommandLine.php');
$isget = ($_SERVER['REQUEST_METHOD'] == 'GET') ? 1 : 0;
if ($isget) {
$html = <<<longs
<html>
<body>
<form method="post">
请输入字符:<input type="text" name="name1" value=''>
</form>
</body>
</html>
longs;
echo $html;
} else {
echo $_POST['name1'];
}
然后修改magic_quotes_gpc = Off,并重启apache服务器,再次测试程序。
最后要说明的是,这些都是学习概念用的,实际的大部分应用中,都将魔术引用关闭,手动的进行转换。
分享到:
相关推荐
jQuery源码分析-魔术方法
PHP程序设计-3期(KC016) 拓展知识2-2 魔术常量.doc 学习资料 复习资料 教学资源
少儿编程scrtach课程-魔术表演
深度报告-20221111-开源证券-炬光科技-688167.SH-光子魔术大师_35页_3mb.pdf 深度报告-20221111-开源证券-炬光科技-688167.SH-光子魔术大师_35页_3mb.pdf 深度报告-20221111-开源证券-炬光科技-688167.SH-光子魔术...
高中想象作文-魔术垃圾桶.pdf
电信设备-魔术卡杯托盘.zip
配套课件的少儿编程scrtach程序-魔术表演
Scratch少儿编程项目音效音乐素材-【事件】声音-魔术.zip
139.jQuery源码分析-魔术方法.rar
魔术伪原创工具 v1.4 更新说明:1、修复了图片链接包含中文句号的问题。2、修复了部分FTP无法正常上传问题。3、新增post数据包格式化。4、修改不填写标题返回内容不全的问题。5、发布模块优化,解决发布编码问题。6...
php代码-魔术方法php
matlab开发-魔术师猜中你的号码。这个游戏会猜中你脑海中的数字。它的魔力!!
c语言实现:创建循环链表,放牌顺序计算
经典的一款绿色看图工具,可以打开大部分的图片.
魔术棒选取算法这个是标准的魔术棒选取算法程序,希望可以给E语言图形带来大点的帮助
魔术方法:魔术函数是PHP中内置的语言特性,当程序执行到某种情况时,如果定义了这些魔术函数 (php手册中称之为“Overloading”),则PHP会调用他们,同时也会传入相应的参数,可以认为是PHP执行过程中的钩子函数
光影魔术手,处理图片的工具,简单,方便,可以一试。
“nEO iMAGING”〖光影魔术手〗是一个对数码照片画质进行改善及效果处理的软件。 简单、易用,不需要任何专业的图像技术,就可以制作出专业胶片摄影的色彩~