我们在向mysql写入数据时,比如:
mysql_query(”update table set `title`=’kuhanzhu’s blog’”);
那就会出错。同asp时一样,数据库都会对单引号过敏。而addslashes在这个时候就最长面子了,跟asp的replace(”‘”,”””,”kuhanzhu’s blog”)功能一样。

PHP为了安全性,所以引入了个magic_quotes_gpc = On的功能,可以不需要做任何处理就能直接把单引号插入数据库中,那么对于Off时,则需要考虑单引号的问题了,而不是一味地信任运行环境。


magic_quotes_gpc = On时,使用了addslashes()处理后的数据在数据库中将以\’形式保存,如果此时直接输出的话,就会发现比自己期待的内容多了个\,因此stripslashes()出场了,它能把\去掉(区别于str_replace(”\”, “”,$Str))。


magic_quotes_gpc = Off时,使用了addslashes()处理后的数据在数据库中将以’形式保存,没有上面说的有\的问题,addslashes()起到插入数据不出错的作用,如果此时直接输出的话,数据正常。不需要再用stripslashes()。


addslashes()和stripslashes()正好是相反的,直接记忆:addslashes()加个\,stripslashes()去个\


那么什么时候用呢? 简单说:


当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()。

 代码 

 //提交数据,或者变量准备:

 $Content=addslashes(”这里面是数据,不管有没单引号或者还是变量”);

 //插入数据到数据库,代码省略

 //开始显示数据

 $Content=”从数据库读取的数据”;

 if(get_magic_quotes_gpc()){
$Content=stripslashes($Content);
} echo $Content;
												

最新文章

  1. [LeetCode] Shortest Palindrome 最短回文串
  2. 如何装最多的水? — leetcode 11. Container With Most Water
  3. HDU 5795 A Simple Nim 打表求SG函数的规律
  4. [Web API] Web API 2 深入系列(5) 特性路由
  5. 用vuejs实现一个todolist项目
  6. 一个关于AdaBoost算法的简单证明
  7. vbox 网络配置文件
  8. 特殊集合 Stack Queue Hashtable
  9. 论文笔记之:Co-saliency Detection via A Self-paced Multiple-instance Learning Framework
  10. ESP8266 TCP传输AT指令顺序
  11. sql-----点点滴滴
  12. 第三章 AOP 编程选择
  13. Win CE 6.0 获取手持机GPS定位2----示例代码 (C#)
  14. JavaScript--我发现,原来你是这样的JS:面向对象编程OOP[1]--(理解对象和对象属性类型)
  15. Minix3信号处理分析
  16. vue学习:props,scope,slot,ref,is,slot,sync等知识点
  17. what?iView的DropDown没有element的split-button?提issure?等不及了,自己实现一个
  18. lnmp一键安装包安装失败,或者安装下载缓慢的解决办法
  19. 59.phpstudy升级Mysql的正确姿势
  20. FileStream文件流

热门文章

  1. VC 对话框背景颜色、控件颜色
  2. HDU 1599 find the mincost route (无向图floyd最小环详解)
  3. Principle of Computing (Python)学习笔记(5) BFS Searching + Zombie Apocalypse
  4. HDU 3966 Aragorn's Story(树链剖分)
  5. nginx+memcached+ftp上传图片+iis
  6. 升级版:深入浅出Hadoop实战开发(云存储、MapReduce、HBase实战微博、Hive应用、Storm应用)
  7. 在命令行获取标准输入序列的反互序列,pep序列和长度信息
  8. EXT2/EXT3文件系统(一)
  9. .NET - 代码重构技巧
  10. 14.8.3 Identifying the File Format in Use 确认使用的文件格式;