POST、GET、COOKIE、REQUEST等全局变量编码
来源:互联网 发布:数据分析 ab测试 编辑:程序博客网 时间:2024/05/16 17:02
1--addslashes
(PHP 4, PHP 5)
addslashes — 使用反斜线引用字符串
说明:
string addslashes ( string $str )
返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是:
单引号(')、
双引号(")、
反斜线(\)
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()进行检测。
Example #1 addslashes() 例子
<?php
$str = "Is your name O'reilly?";
// 输出:Is your name O\'reilly?
echo addslashes($str);
?>
2--Stripslashes()
函数删除由addslashes() 函数生成的斜杠。
语法:
stripslashes(string)
string 必需的参数,是规定要检查的字符串。
提示和注释:
该函数用于清理从数据库或html表单中取回的数据。
例一:
<?php
echo stripslashes("Who\'s John Adams?");
?>
本例输出:
Who's John Adams?
addslashes()
函数在指定的预定义字符前添加反斜杠。
这些预定义字符是:
单引号(‘)
双引号(“)
反斜杠(\)
NULL
语法:
addslashes(string)
参数:
String必需。规定要检查的字符串。
提示:
该函数 可用于为储存在数据库中的字符串 以及 数据库查询语句准备合适的字符串。
注释:
默认情况下,PHP 指令 magic_quotes_gpc 为 on,意味着插入数据库中会自动转换,对所有的GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数get_magic_quotes_gpc() 进行检测。
如果get_magic_quotes_gpc为0,则表示未启用,此时POST/GET/COOKIE中的敏感字符就不会自动转义,此时就调用addslashes
例二:
测试在本例中,我们要向字符串中的预定义添加反斜杠:
<?php
$str = "Who's John Adams?";
echo $str . " This is not safe in a database query.<br />";
echo addslashes($str) . " This is safe in a database query.";
?>
本例输出:
Who's John Adams? This is not safe in a database query.
Who\'s John Adams? This is safe in a database query.
向mysql写入数据
当magic_quotes_gpc = On时,系统会自动处理单引号等问题,用不用addslashes()和stripslashes()都没关系,但是如果添加数据时用了addslashes(),那么显示数据时必须要stripslashes()。
当magic_quotes_gpc = Off时,系统不会处理单引号等问题,所以插入数据时必须要使用addslashes(),显示数据时则不需要使用stripslashes()。
既然有了分析,做程序时要怎么办呢?
根据以上两种情况,可得:
不管magic_quotes_gpc是On还是Off,添加数据时都用addslashes(),当On时,必须使用stripslashes(),Off时则不能用stripslashes()。
如何判断On还是Off呢?用get_magic_quotes_gpc()。
例三:
<?php
//$content 从数据库里读取内容
if(get_magic_quotes_gpc()){ $Content=stripslashes($Content); }
echo $Content;
?>
- POST、GET、COOKIE、REQUEST等全局变量编码
- PHP学校 get post等全局变量
- 客户端请求编码POST/GET方式----RequestDispatcher----Cookie
- get post request区别
- $GET $POST 和 $REQUEST
- REQUEST , GET , POST
- get 、post、request详解
- request post get
- Get,Post和Request
- PHP-$GET/$REQUEST/$POST
- iOS 中的编码问题(get请求 post请求等)
- API Request Get和Post
- PHP之get,post,request
- Django中的request.GET和request.POST
- Django中的request.GET和request.POST
- Django中的request.GET和request.POST
- Django中的request.GET和request.POST
- get,post,cookie,session,localStorage,sessionStorage等数据传输和缓存技术
- IOS 启动画面和图标设置(适配IOS7 and Xcode5)
- android中dip、dp、px、sp和屏幕密度
- PHP中HTML实体编码函数
- html页面出现404错误
- Linux反空闲设置的两种方式
- POST、GET、COOKIE、REQUEST等全局变量编码
- VC MFC工具栏(CToolBar)控件以及如何设置按钮图片集
- CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web
- oracle 数据分组
- nyoj-171-聪明的kk-数塔变形
- Linux Oracle服务启动&停止脚本与开机自启动
- 程序猿的悲哀
- PHP网站开发实用技巧集锦
- #yii框架学习之路#想使用自动填充时,填充不上去