php 处理表单里面的 单双引号

转载链接:http://developer.51cto.com/art/200911/165392.htm


我们今天要向大家介绍的是PHP magic_quotes_gpc的具体使用方法。大家都知道在PHP中一个特殊的函数魔术函数,它在引用的过程中只有在传递$_GET,$_POST,$_COOKIE时才会发生作用。

  • PHP函数preg_split的正确使用方法
  • 解读PHP函数explode()的具体使用方法
  • PHP函数implode()与explode()函数的不同
  • PHP类CMS如何自动获取关键字
  • 探讨PHP函数split()如何使用正则表达式切
1.
条件: PHP magic_quotes_gpc=off
写入数据库的字符串未经过任何过滤处理。从数据库读出的字符串也未作任何处理。

数据:  $data=”snow”’’sun” ; (snow和sun之间是四个连续的单引号).

操作: 将字符串:”snow”’’sun” 写入数据库,

结果: 出现sql语句错误,mysql不能顺利完成sql语句,写入数据库失败。

数据库保存格式:无数据。

输出数据格式:无数据。

说明: 对于未经处理的单引号在写入数据库时会使sql语句发生错误。

2.
条件: PHP magic_quotes_gpc=off
写入数据库的字符串经过函数addlashes()处理。从数据库读出的字符串未作任何处理。

数据:  $data=”snow”’’sun” ; (snow和sun之间是四个连续的单引号).

操作: 将字符串:”snow”’’sun” 写入数据库,

结果: sql语句顺利执行,数据成功写入数据库

数据库保存格式:snow”’’sun (和输入一样)

输出数据格式:snow”’’sun (和输入一样)

说明: addslashes()函数将单引号转换为\’的转义字符使sql语句成功执行,
但\’并未作为数据存入数据库,数据库保存的是snow”’’sun 而并不是我们想象的snow\’\’\’\’sun

3.
条件: PHP magic_quotes_gpc=on
写入数据库的字符串未经过任何处理。从数据库读出的字符串未作任何处理。

数据:  $data=”snow”’’sun” ; (snow和sun之间是四个连续的单引号).

操作: 将字符串:”snow”’’sun” 写入数据库,

结果: sql语句顺利执行,数据成功写入数据库

数据库保存格式:snow”’’sun (和输入一样)

输出数据格式:snow”’’sun (和输入一样)

说明: PHP magic_quotes_gpc=on 将单引号转换为\’的转义字符使sql语句成功执行,
但\’并未作为数据入数据库,数据库保存的是snow”’’sun而并不是我们想象的snow\’\’\’\’sun。

4.
条件: PHP magic_quotes_gpc=on
写入数据库的字符串经过函数addlashes()处理。从数据库读出的字符串未作任何处理。

数据:  $data=”snow”’’sun” ; (snow和sun之间是四个连续的单引号).

操作: 将字符串:”snow”’’sun” 写入数据库,

结果: sql语句顺利执行,数据成功写入数据库

数据库保存格式:snow\’\’\’\’sun (添加了转义字符)

输出数据格式:snow\’\’\’\’sun (添加了转义字符)

说明: PHP magic_quotes_gpc=on 将单引号转换为\’的转义字符使sql语句成功执行,
addslashes又将即将写入数据库的单引号转换为\’,后者的转换被作为数据写入
数据库,数据库保存的是snow\’\’\’\’sun

总结如下:
1. 对于PHP magic_quotes_gpc=on的情况,

我们可以不对输入和输出数据库的字符串数据作
addslashes()和stripslashes()的操作,数据也会正常显示。

如果此时你对输入的数据作了addslashes()处理,
那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。

2. 对于PHP magic_quotes_gpc=off 的情况

必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出
因为addslashes()并未将反斜杠一起写入数据库,只是帮助mysql完成了sql语句的执行。

补充:

PHP magic_quotes_gpc作用范围是:WEB客户服务端;作用时间:请求开始时,例如当脚本运行时.
magic_quotes_runtime 作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;作用时间:每次当脚本访问运行状态中产生的数据
 

【责任编辑:曹凯 TEL:(010)68476606】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云插件新版发布,多特性助力提升开发者体验

好消息!阿里云 Cloud Toolkit 新版本于近日正式发布,推出了面向 IntelliJ 和 Eclipse 两个平台的新款插件,多个重大特性,持续提升开发者体验,本文将带大家快速预览该新版本。 本文只挑选下面三个重大特性进行解读&…

海鸥表表带太长了怎么拆_表带安装,表带太长了,怎么拆解和安装?

表带太长了,怎么拆解和安装?1、准备拆表带前请看清楚表带背面的箭头。2、有箭头的带粒是可拆卸的。3、拧松拆带器把手,将表带放入表槽,并保持拆带器的钢针对准针孔,如图二,且拆带器的钢针顺着箭头的指示方向…

python类库31[文件和目录os+os.path+shutil]

一 常用函数 os模块 os.sep 表示默认的文件路径分隔符,windows为\, linux为/os.walk(spath): 用来遍历目录下的文件和子目录os.listdir(dirname):列出dirname下的目录和文件os.mkdir() : 创建目录os.makedirs(): 创建目录,包含中间…

上一轮中奖信息公布

大家好,我是若川,抽奖活动其实挺耗时耗力的,尤其是留言和在看抽奖。比如我这篇文章写完就已经23:50了。特别想说的是:有126人点击了在看,但我的好友展示只有93人在看。说明还有30多人点击了在看,但忘记加我…

css判断不同分辨率显示不同宽度布局实现自适应宽度

转载链接:http://www.jb51.net/css/151312.html 点评:CSS判断不同分辨率浏览器(显示屏幕)显示不同宽度布局CSS3技术支持IE6到IE8。将用到css3 media样式进行判断,但IE9以下版本不支持CSS3技术,这里DIVCSS5给…

安卓相机 高帧率_Android MediaCodec和摄像头:如何实现更高的帧速率从相机获取帧原始数据?...

摄像机API有两个不同的参数用于控制帧速率:setPreviewFrameRate,它采用单帧速率值并且不推荐使用,setPreviewFpsRange采用一系列FPS值,是当前推荐的控制.单FPS设置控制不充分的原因是,有时您希望相机在黑暗条件下降低帧速率以使取景器保持明亮(静态相机取景器就是这…

开发、测试与QA的区别以及其他

觉得这个比喻比较新颖,觉得蛮有意思的,故转自过来。 最近部门中有同事在问这个问题,我想应该还是有满多人对这三个角色的定位还不是很清楚,因此就这三个角色谈谈我个人的认识。 网络上关于这三种角色的定义已经够多,在…

CentOS7Jenkins安装

2019独角兽企业重金招聘Python工程师标准>>> CentOS7Jenkins安装 2017年05月07日 20:20:32 申明霜 阅读数:13945 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sms15732621690/article/details/713…

2020 全球 JS 现状调查报告

大家好,我是若川。偷偷告诉你,今天推文的第二条是在我的公众号回复「网盘」免费领取百度网盘会员,欢迎大家分享转发。给大家分享一篇好文,往期类似好文:2020 前端技术发展回顾2020年大前端技术趋势解读以下是正文&…

ie兼容响应式布局的实现总结 和 针对ie浏览器的CSS

参考链接:http://zhidao.baidu.com/link?urlbQioDKMnG_eQoE6dCxzd2hPtMyiB7phu6hBdOupn1Pjk1hV-ItXFZS5GDUBoH5qrfi9LXkUoSciXTiGN36G6LK 参考链接:http://blog.sina.com.cn/s/blog_601b97ee0101aszo.html ie浏览器hack .demo {padding:10px;padding:9…

group by 保留哪一条数据_使用R语言绘制一维数据统计图总结

加载数据 绘制茎叶图 绘制直方图 绘制概率密度曲线 绘制小提琴图 绘制箱线图 绘制小提琴图箱线图 集中趋势统计 分散程度 apply的使用加载数据模拟数据下载library(tidyverse) cjb <- read.csv("/home/wy/Downloads/cjb.csv",header TRUE,stringsAsFactors FALS…

npm安装和Vue运行

一、开始&#xff1a; 下载地址&#xff1a;http://nodejs.cn/download/ 下载安装&#xff1a; 直到 二、打开CMD,检查是否正常 在安装目录里新增两个文件夹 然后运行命令&#xff1a;如下图&#xff1a; npm config set prefix "D:\InstallSoftWare\nodejs\node_global&q…

Scott 32 岁前端年终总结,探寻另一种可能

今年一年都是飞快 这 10 年编程好时光&#xff0c;花费在不经意间&#xff0c;而立的第三年也即将用完&#xff1a;23 到 26 岁&#xff0c;花在了阿里&#xff0c;从入门到职业迷茫&#xff0c;27 到 29 岁&#xff0c;花在了创业&#xff0c;从热血到倒闭还钱&#xff0c;30 …

跨页数据传递的两种方式

选择具有PostBackUrl属性的三个控件Button、LinkButton、ImageButton。PostBackUrl属性的值就是投递的页面URL。 要在接收页面按对象的方式接收投递页面的表单中的值有两种方式&#xff1a; 1、PreviousPage.FindControl(“控件变量名”)&#xff0c;这个方法返回的是Control类…

linux批量杀进程_Linux下批量杀JAVA进程

在工作中经常需要停止JAVA进程&#xff0c;停止时间也比较长&#xff0c;那么有时候因为一些情况&#xff0c;需要把 linux 下JAVA所有进程kill 掉&#xff0c;又不能用killall 直接杀掉某一进程名称包含的所有运行中进程(我们可能只需要杀掉其中的某一类或运行指定参数命令的进…

用jquery1.9版本判断ie浏览器及ie6浏览器

参考链接&#xff1a;http://www.my0832.com/158182/blog-117887.html jQuery 从 1.9 版开始&#xff0c;移除了 $.browser 和 $.browser.version &#xff0c; 取而代之的是 $.support 。 在更新的 2.0 版本中&#xff0c;将不再支持 IE 6/7/8。 以后&#xff0c;如果用户需要…

嵌入式操作系统 NuttX 5.0 发布

Nuttx 是一个实时嵌入式操作系统&#xff08;RTOS&#xff09;&#xff0c;它有一个小巧是在微控制器的环境中使用。这是完全可扩展&#xff0c;从小型&#xff08;8位&#xff09;至中型嵌入式&#xff08;32位&#xff09;系统。它的目的还 在于要完全符合标准&#xff0c;完…

Windows下Mysql 的安装和卸载

2019独角兽企业重金招聘Python工程师标准>>> 一、安装 1、下载zip文件 2、解压&#xff0c;在bin目录下新建my.ini [mysql] # 设置mysql客户端默认字符集 default-character-setutf8 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirC:\Program Fil…

现在学前端还来得及吗?总听人说饱和了

“前端已经饱和了&#xff0c;现在学前端没有前途了”每次听到这种论调我都气不打一处来。自己技艺不精&#xff0c;然后就说市场饱和了。是&#xff0c;现在的确不是那个会切个图&#xff0c;懂点htmlCSS就能找到工作的年代了。现在对前端的技术要求稍微高了点&#xff0c;但这…

jquery网页刷新后控件失效_jquery动态增减控件如何才能不刷新页面

已结贴√问题点数&#xff1a;20 回复次数&#xff1a;9jquery动态增减控件如何才能不刷新页面用jquery动态管理控件&#xff0c;可是每一次增减控件都会刷新页面&#xff0c;然后控件里面原来输入的值就都不在了&#xff0c;可以怎么来实现在动态增减控件时不刷新页面呢&#…